9 mAudioBuffer.setSize(1, size);
12 void setSize(
int size)
14 mAbstractFifo.setTotalSize(size);
15 mAudioBuffer.setSize(1, size);
18 template <
typename T>
void addToFifo(
const T *data,
int numSamples)
20 const auto scope = mAbstractFifo.write(numSamples);
22 if (scope.blockSize1 > 0)
23 mAudioBuffer.copyFrom(0, scope.startIndex1, data, scope.blockSize1);
24 if (scope.blockSize2 > 0)
25 mAudioBuffer.copyFrom(0, scope.startIndex2, data + scope.blockSize1, scope.blockSize2);
28 template <
typename T>
void readFromFifo(T *destination,
int numSamples)
30 const auto scope = mAbstractFifo.read(numSamples);
32 const float *buffer = mAudioBuffer.getReadPointer(0);
34 if (scope.blockSize1 > 0)
35 std::copy(buffer + scope.startIndex1, buffer + scope.startIndex1 + scope.blockSize1, destination);
37 if (scope.blockSize2 > 0)
38 std::copy(buffer + scope.startIndex2, buffer + scope.startIndex2 + scope.blockSize2,
39 destination + scope.blockSize1);
44 return mAbstractFifo.getNumReady();
47 juce::AbstractFifo mAbstractFifo;
50 juce::AudioBuffer<float> mAudioBuffer;