8 mAudioBuffer.setSize(1, size);
11 void setSize(
int size)
13 mAbstractFifo.setTotalSize(size);
14 mAudioBuffer.setSize(1, size);
17 template <
typename T>
void addToFifo(
const T *data,
int numSamples)
19 const auto scope = mAbstractFifo.write(numSamples);
21 if (scope.blockSize1 > 0)
22 mAudioBuffer.copyFrom(0, scope.startIndex1, data, scope.blockSize1);
23 if (scope.blockSize2 > 0)
24 mAudioBuffer.copyFrom(0, scope.startIndex2, data + scope.blockSize1, scope.blockSize2);
27 template <
typename T>
void readFromFifo(T *destination,
int numSamples)
29 const auto scope = mAbstractFifo.read(numSamples);
31 const float *buffer = mAudioBuffer.getReadPointer(0);
33 if (scope.blockSize1 > 0)
34 std::copy(buffer + scope.startIndex1, buffer + scope.startIndex1 + scope.blockSize1, destination);
36 if (scope.blockSize2 > 0)
37 std::copy(buffer + scope.startIndex2, buffer + scope.startIndex2 + scope.blockSize2,
38 destination + scope.blockSize1);
43 return mAbstractFifo.getNumReady();
46 juce::AbstractFifo mAbstractFifo;
49 juce::AudioBuffer<float> mAudioBuffer;