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

◆ readStreamData()

bool fl::third_party::TJpgInstanceDecoder::readStreamData ( )
private

Definition at line 48 of file driver.cpp.hpp.

48 {
49 if (!input_stream_) {
50 setError("No input stream");
51 return false;
52 }
53
54 // Read all data from stream
55 fl::vector<fl::u8> temp_buffer;
56 temp_buffer.reserve(4096);
57
58 fl::u8 chunk[256];
59 while (true) {
60 fl::size bytes_read = input_stream_->read(chunk, sizeof(chunk));
61 if (bytes_read == 0) break;
62
63 fl::size old_size = temp_buffer.size();
64 temp_buffer.resize(old_size + bytes_read);
65 fl::memcpy(temp_buffer.data() + old_size, chunk, bytes_read);
66 }
67
68 input_size_ = temp_buffer.size();
69 if (input_size_ == 0) {
70 setError("Empty input stream");
71 return false;
72 }
73
75 fl::memcpy(input_buffer_.get(), temp_buffer.data(), input_size_);
76
77 // Set up embedded state for input
78 embedded_tjpg_.array_data = input_buffer_.get();
79 embedded_tjpg_.array_index = 0;
80 embedded_tjpg_.array_size = input_size_;
81
82 return true;
83}
struct fl::third_party::TJpgInstanceDecoder::EmbeddedTJpgState embedded_tjpg_
fl::unique_ptr< fl::u8[]> input_buffer_
Definition driver.h:86
void setError(const fl::string &msg) FL_NOEXCEPT
fl::size size() const FL_NOEXCEPT
T * data() FL_NOEXCEPT
Definition vector.h:619
void reserve(fl::size n) FL_NOEXCEPT
Definition vector.h:591
void resize(fl::size n) FL_NOEXCEPT
Definition vector.h:593
unsigned char u8
Definition coder.h:132
void * memcpy(void *dest, const void *src, size_t n) FL_NOEXCEPT

References fl::vector< T >::data(), embedded_tjpg_, FL_NOEXCEPT, input_buffer_, input_size_, input_stream_, fl::memcpy(), fl::vector< T >::reserve(), fl::vector< T >::resize(), setError(), and fl::vector_basic::size().

Referenced by beginDecodingStream().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: