Merge 428726eb99
into 492a5beba4
This commit is contained in:
commit
1e651d3d0c
|
@ -179,6 +179,27 @@ void AudioFileSourceBuffer::fill()
|
|||
}
|
||||
}
|
||||
|
||||
bool AudioFileSourceBuffer::fill(uint32_t len, uint32_t max_delay)
|
||||
{
|
||||
if (!src->isOpen()) {
|
||||
Serial.printf_P(PSTR("Source file not open\n"));
|
||||
return false;
|
||||
}
|
||||
if (!src->loop()) return false;
|
||||
fill();
|
||||
|
||||
uint32_t toFill = (len < buffSize) ? len : buffSize;
|
||||
uint32_t startTimestamp = millis();
|
||||
while (length < toFill && millis() - startTimestamp < max_delay) {
|
||||
delay(100);
|
||||
if (!src->loop()) return false;
|
||||
fill();
|
||||
}
|
||||
filled = true;
|
||||
if (length < len) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool AudioFileSourceBuffer::loop()
|
||||
|
|
|
@ -39,6 +39,7 @@ class AudioFileSourceBuffer : public AudioFileSource
|
|||
virtual uint32_t getPos() override;
|
||||
virtual bool loop() override;
|
||||
|
||||
virtual bool fill(uint32_t len, uint32_t max_delay);
|
||||
virtual uint32_t getFillLevel();
|
||||
|
||||
enum { STATUS_FILLING=2, STATUS_UNDERFLOW };
|
||||
|
|
Loading…
Reference in New Issue