31 lines
693 B
C++
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;
|
|
};
|