59 bool deleteSourceWhenDeleted,
60 int numberOfSamplesToBuffer,
61 int numberOfChannels = 2,
62 bool prefillBufferOnPrepareToPlay =
true);
73 void prepareToPlay (
int samplesPerBlockExpected,
double sampleRate)
override;
76 void releaseResources()
override;
83 void setNextReadPosition (int64 newPosition)
override;
86 int64 getNextReadPosition()
const override;
102 Range<int> getValidBufferRange (
int numSamples)
const;
103 bool readNextBufferChunk();
104 void readBufferSection (int64 start,
int length,
int bufferOffset);
105 int useTimeSlice()
override;
110 int numberOfSamplesToBuffer, numberOfChannels;
114 int64 bufferValidStart = 0, bufferValidEnd = 0;
115 std::atomic<int64> nextPlayPos { 0 };
116 double sampleRate = 0;
117 bool wasSourceLooping =
false, isPrepared =
false;
118 const bool prefillBuffer;
121 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BufferingAudioSource)
int64 getTotalLength() const override
bool isLooping() const override
virtual bool isLooping() const =0
virtual int64 getTotalLength() const =0