2024-01-25 11:21:15 +08:00

31 lines
693 B
C++

#pragma once
#include "CoreMinimal.h"
#include "ChannelInterface.h"
class FMixerTrack;
class FAudioBuffer
{
public:
float** GetHeaders() { return Headers.GetData(); }
const TArray<float*>& 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<TArray<float>> Buffer;
TArray<float*> Headers;
TArray<float> Peak;
FCriticalSection CriticalSection;
};