11template<
class SampleType>
25 InternalBuffer.
Init(0, MaxLength);
36 ReadIndex = InternalBuffer.
Num() +
Delta;
47 if (ReadIndex > WriteIndex)
49 return WriteIndex + InternalBuffer.
Num() - ReadIndex;
53 return WriteIndex - ReadIndex;
60 WriteIndex = WriteIndex % InternalBuffer.
Num();
61 InternalBuffer[WriteIndex++] =
InSample;
66 for (
int32 ChannelIndex = 0; ChannelIndex < NumChannels; ChannelIndex++)
75 ReadIndex = ReadIndex % InternalBuffer.
Num();
76 return InternalBuffer[ReadIndex++];
89 ReadIndex = ReadIndex % InternalBuffer.
Num();
97 if (ReadIndex <= WriteIndex)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition VoiceDelayBuffer.h:13
void SetDelay(int32 NumSamples)
Definition VoiceDelayBuffer.h:31
void PushFrame(const SampleType *InFrame, int32 NumChannels)
Definition VoiceDelayBuffer.h:64
void PushSample(const SampleType &InSample)
Definition VoiceDelayBuffer.h:58
void Init(int32 MaxLength)
Definition VoiceDelayBuffer.h:22
SampleType PopSample()
Definition VoiceDelayBuffer.h:73
int32 PopBufferedAudio(SampleType *OutBuffer, int32 MaxNumSamples)
Definition VoiceDelayBuffer.h:87
void ProcessSample(const SampleType &InSample, SampleType &OutSample)
Definition VoiceDelayBuffer.h:80
int32 GetBufferCount()
Definition VoiceDelayBuffer.h:45
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160