Files
UnrealEngineUWP/Engine/Source/Runtime/AudioMixer/Public/FileDecoder.h
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

44 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "DSP/Dsp.h"
#include "SampleBuffer.h"
#include "AudioDecompress.h"
#include "GenericPlatform/GenericPlatformFile.h"
#include "Interfaces/IAudioFormat.h"
class AUDIOMIXER_API FAudioFileReader
{
public:
// Constructor. Takes a file path and immediately loads info.
// Optionally, CallbackSize can be used to indicate the size of chunks
// that will be popped off of this instance.
// When set to 0, the entire file is decompressed into memory.
FAudioFileReader(const FString& InPath);
// Returns file information.
void GetFileInfo(FSoundQualityInfo& OutInfo);
bool PopAudio(float* OutAudio, int32 NumSamples);
private:
FAudioFileReader();
// Handle back to the file this was constructed with.
TUniquePtr<IFileHandle> FileHandle;
// Actual decompressor in question.
TUniquePtr<ICompressedAudioInfo> Decompressor;
TArray<uint8> CompressedFile;
TArray<Audio::DefaultUSoundWaveSampleType> DecompressionBuffer;
FSoundQualityInfo QualityInfo;
ICompressedAudioInfo* GetNewDecompressorForFile(const FString& InPath);
FString GetExtensionForFile(const FString& InPath);
};