// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "SoundFile.h" #include "SoundFileIOEnums.h" namespace Audio { class FSoundFileIOManagerImpl; class FSoundFileIOManager { public: FSoundFileIOManager(); ~FSoundFileIOManager(); TSharedPtr CreateSoundFileReader(); TSharedPtr CreateSoundDataReader(); TSharedPtr CreateSoundFileWriter(); bool GetSoundFileDescription(const FString& FilePath, FSoundFileDescription& OutputDescription, TArray& OutChannelMap); bool GetSoundFileDescription(const FString& FilePath, FSoundFileDescription& OutputDescription); bool GetFileExtensionForFormatFlags(int32 FormatFlags, FString& OutExtension); ESoundFileError::Type GetSoundFileInfoFromPath(const FString& FilePath, FSoundFileDescription& Description, TArray& ChannelMap); ESoundFileError::Type LoadSoundFileFromPath(const FString& FilePath, FSoundFileDescription& Description, TArray& ChannelMap, TArray& BulkData); private: TUniquePtr Impl; }; bool SoundFileIOManagerInit(); bool SoundFileIOManagerShutdown(); } // namespace Audio