FastLED 3.10.8
Loading...
Searching...
No Matches

◆ fillBuffer()

bool fl::third_party::Mp3StreamDecoderImpl::fillBuffer ( )
private

Definition at line 399 of file mp3.cpp.hpp.

399 {
400 // Shift remaining data to beginning of buffer
401 if (mBufferPos > 0 && mBufferFilled > mBufferPos) {
402 fl::size remaining = mBufferFilled - mBufferPos;
403 for (fl::size i = 0; i < remaining; i++) {
404 mBuffer[i] = mBuffer[mBufferPos + i];
405 }
406 mBufferFilled = remaining;
407 mBufferPos = 0;
408 } else if (mBufferPos >= mBufferFilled) {
409 mBufferPos = 0;
410 mBufferFilled = 0;
411 }
412
413 // Fill the rest of the buffer from stream
414 fl::size spaceAvailable = BUFFER_SIZE - mBufferFilled;
415 if (spaceAvailable > 0 && mStream && mStream->available(1)) {
416 fl::size bytesRead =
417 mStream->read(mBuffer.get() + mBufferFilled, spaceAvailable);
418 mBufferFilled += bytesRead;
419 return bytesRead > 0;
420 }
421
422 return false;
423}
fl::unique_ptr< fl::u8[], Mp3MemoryDeleter< fl::u8 > > mBuffer
Definition mp3.cpp.hpp:306
static constexpr fl::size BUFFER_SIZE
Definition mp3.cpp.hpp:282

References BUFFER_SIZE, fl::FL_NO_EXCEPT, mBuffer, mBufferFilled, mBufferPos, and mStream.

Referenced by decodeNextFrame().

+ Here is the caller graph for this function: