From bf5927c78d2c007ea5d147827ea22d408dce0c2d Mon Sep 17 00:00:00 2001 From: getnamo Date: Mon, 29 Jan 2024 02:19:02 -0800 Subject: [PATCH] add pcm->wav converter --- SocketIOClient.uplugin | 2 +- Source/CoreUtility/Private/CUBlueprintLibrary.cpp | 7 +++++++ Source/CoreUtility/Public/CUBlueprintLibrary.h | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/SocketIOClient.uplugin b/SocketIOClient.uplugin index b1eb0c0..6e16f8f 100644 --- a/SocketIOClient.uplugin +++ b/SocketIOClient.uplugin @@ -1,7 +1,7 @@ { "FileVersion": 3, "Version": 1, - "VersionName": "2.7.4", + "VersionName": "2.7.5", "EngineVersion": "5.3", "FriendlyName": "Socket.IO Client", "Description": "Real-time WebSocket networking via Socket.IO protocol usable from blueprints and c++.", diff --git a/Source/CoreUtility/Private/CUBlueprintLibrary.cpp b/Source/CoreUtility/Private/CUBlueprintLibrary.cpp index c10fefb..93fa23b 100644 --- a/Source/CoreUtility/Private/CUBlueprintLibrary.cpp +++ b/Source/CoreUtility/Private/CUBlueprintLibrary.cpp @@ -143,6 +143,13 @@ TArray UCUBlueprintLibrary::Conv_OpusBytesToWav(const TArray& InBy return WavBytes; } +TArray UCUBlueprintLibrary::Conv_PCMToWav(const TArray& InPCM, int32 SampleRate, int32 Channels) +{ + TArray WavBytes; + SerializeWaveFile(WavBytes, InPCM.GetData(), InPCM.Num(), Channels, Channels); + return WavBytes; +} + TArray UCUBlueprintLibrary::Conv_WavBytesToOpus(const TArray& InBytes) { //FCUScopeTimer Timer(TEXT("Conv_WavBytesToOpus")); diff --git a/Source/CoreUtility/Public/CUBlueprintLibrary.h b/Source/CoreUtility/Public/CUBlueprintLibrary.h index fc9740b..ae923a1 100644 --- a/Source/CoreUtility/Public/CUBlueprintLibrary.h +++ b/Source/CoreUtility/Public/CUBlueprintLibrary.h @@ -82,6 +82,13 @@ class COREUTILITY_API UCUBlueprintLibrary : public UBlueprintFunctionLibrary UFUNCTION(BlueprintPure, meta = (DisplayName = "To Wav Bytes (Opus Bytes)", BlueprintAutocast), Category = "CoreUtility|Conversion") static TArray Conv_OpusBytesToWav(const TArray& InBytes); + + /** + * Audio conversion - Convert PCM bytes + definition to wav + */ + UFUNCTION(BlueprintPure, meta = (DisplayName = "To Wav Bytes (PCM Bytes)", BlueprintAutocast), Category = "CoreUtility|Conversion") + static TArray Conv_PCMToWav(const TArray& InPCM, int32 SampleRate, int32 Channels); + /** * Audio compression - Convert wav to opus (currently raw serialized) */