This commit is contained in:
h3ndrik 2024-04-25 17:43:05 -07:00 committed by GitHub
commit 1e651d3d0c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View File

@ -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()

View File

@ -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 };