27 : isLooping (shouldLoop)
47 auto& dst = *bufferToFill.
buffer;
48 auto channels = jmin (dst.getNumChannels(), buffer.
getNumChannels());
49 auto max = 0, pos = 0;
53 for (i = position; (i < n || isLooping) && (pos < m); i += max)
55 max = jmin (m - pos, n - (i % n));
58 for (; ch < channels; ++ch)
59 dst.copyFrom (ch, bufferToFill.
startSample + pos, buffer, ch, i % n, max);
61 for (; ch < dst.getNumChannels(); ++ch)
62 dst.clear (ch, bufferToFill.
startSample + pos, max);
68 dst.clear (bufferToFill.
startSample + pos, m - pos);
MemoryAudioSource(AudioBuffer< float > &audioBuffer, bool copyMemory, bool shouldLoop=false)
void setDataToReferTo(Type **dataToReferTo, int newNumChannels, int newStartSample, int newNumSamples)
void prepareToPlay(int samplesPerBlockExpected, double sampleRate) override
void releaseResources() override
Type ** getArrayOfWritePointers() noexcept
void getNextAudioBlock(const AudioSourceChannelInfo &bufferToFill) override
int getNumChannels() const noexcept
AudioBuffer< float > * buffer
void makeCopyOf(const AudioBuffer< OtherType > &other, bool avoidReallocating=false)
int getNumSamples() const noexcept