FastLED 3.9.15
Loading...
Searching...
No Matches

◆ read()

fl::size fl::ByteStreamMemory::read ( fl::u8 * dst,
fl::size bytesToRead )
overridevirtual

Implements fl::ByteStream.

Definition at line 20 of file bytestreammemory.cpp.

20 {
21 if (!available(bytesToRead) || dst == nullptr) {
22 FASTLED_WARN("ByteStreamMemory::read: !available(bytesToRead): "
23 << bytesToRead
24 << " mReadBuffer.size(): " << mReadBuffer.size());
25 return 0;
26 }
27
28 fl::size actualBytesToRead = MIN(bytesToRead, mReadBuffer.size());
29 fl::size bytesRead = 0;
30
31 while (bytesRead < actualBytesToRead) {
32 fl::u8 &b = dst[bytesRead];
33 mReadBuffer.pop_front(&b);
34 bytesRead++;
35 }
36
37 if (bytesRead == 0) {
38 FASTLED_WARN("ByteStreamMemory::read: bytesRead == 0");
39 }
40
41 return bytesRead;
42}
CircularBuffer< fl::u8 > mReadBuffer
#define MIN(a, b)
Definition math_macros.h:41
int available()
Definition io.cpp:117
unsigned char u8
Definition int.h:17
#define FASTLED_WARN
Definition warn.h:7

References fl::available(), FASTLED_WARN, MIN, and mReadBuffer.

+ Here is the call graph for this function: