Files
UnrealEngine/Engine/Source/Runtime/AudioMixer/Private/SoundFileIO/SoundFileIOManager.h
2025-05-18 13:04:45 +08:00

35 lines
1.2 KiB
C++

// 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<ISoundFileReader> CreateSoundFileReader();
TSharedPtr<ISoundFileReader> CreateSoundDataReader();
TSharedPtr<ISoundFileWriter> CreateSoundFileWriter();
bool GetSoundFileDescription(const FString& FilePath, FSoundFileDescription& OutputDescription, TArray<ESoundFileChannelMap::Type>& OutChannelMap);
bool GetSoundFileDescription(const FString& FilePath, FSoundFileDescription& OutputDescription);
bool GetFileExtensionForFormatFlags(int32 FormatFlags, FString& OutExtension);
ESoundFileError::Type GetSoundFileInfoFromPath(const FString& FilePath, FSoundFileDescription& Description, TArray<ESoundFileChannelMap::Type>& ChannelMap);
ESoundFileError::Type LoadSoundFileFromPath(const FString& FilePath, FSoundFileDescription& Description, TArray<ESoundFileChannelMap::Type>& ChannelMap, TArray<uint8>& BulkData);
private:
TUniquePtr<FSoundFileIOManagerImpl> Impl;
};
bool SoundFileIOManagerInit();
bool SoundFileIOManagerShutdown();
} // namespace Audio