#pragma once #include "CoreMinimal.h" #include "ChannelInterface.h" class FMixerTrack; class FAudioBuffer { public: float** GetHeaders() { return Headers.GetData(); } const TArray& GetHeaderArray() const { return Headers; } int32 GetChannelCount() const { return Headers.Num(); } int32 GetBufferSize() const { return Buffer[0].Num(); } void Resize(int32 NumChannels, int32 NumSamples); void ZeroBuffer(); void AddBuffer(FAudioBuffer& Other, float Gain = 1.0f); void CalculatePeak(); float GetPeak(int32 Channel); void Multiple(float In); private: TArray> Buffer; TArray Headers; TArray Peak; FCriticalSection CriticalSection; };