59 bool readSamples (
int*
const* destSamples,
int numDestChannels,
int startOffsetInDestBuffer,
60 juce::int64 startSampleInFile,
int numSamples)
override;
71 bool allSamplesRead =
false;
76 struct ScopedSlotAccess
83 BufferedBlock* getBlock()
const {
return block; }
84 void setBlock (BufferedBlock*);
88 const size_t slotIndex = 0;
89 BufferedBlock* block =
nullptr;
92 int useTimeSlice()
override;
94 enum class PositionStatus
96 positionChangedByAudioThread,
102 PositionStatus readNextBufferChunk();
104 static constexpr int samplesPerBlock = 32768;
115 size_t numBlocksToBuffer = 0;
117 const bool isFullyBuffering =
false;
119 size_t getSlotIndexFromSamplePosition (
juce::int64 samplePos);
121 void markSlotUseState (
size_t slotIndex,
bool isInUse);