36 const fl::size total = in.
size();
40 const fl::size got = in.
read(buf.
data(), total);
56 bytes, hdr.version, hdr.pixelFormat, hdr.payloadOffset, env));
67 fl::move(bytes), hdr.version, hdr.pixelFormat, hdr.payloadOffset, env));
94 return mImpl ?
mImpl->payloadLen() : fl::size(0);
98 if (!
mImpl || ledCount == 0)
return 0;
100 if (bpp == 0)
return 0;
101 const fl::size perFrame = ledCount *
static_cast<fl::size
>(bpp);
102 if (perFrame == 0)
return 0;
103 return mImpl->payloadLen() / perFrame;
112 return mImpl->envelope();
116 if (!
mImpl)
return 0;
117 return static_cast<fl::size
>(
mImpl->envelope().keys().size());
121 if (!
mImpl)
return defaultFps;
126 const fl::json videoNode = env[
"video"];
130 auto fpsOpt = videoNode[
"fps"].
as_float();
131 if (!fpsOpt)
return defaultFps;
132 return static_cast<float>(*fpsOpt);
149 if (!
mImpl || !out || ledCount == 0) {
171 fl::size completePayloadBytes = 0;
173 &completePayloadBytes);
177 const fl::size
offset = frameIndex * stride;
178 out->mStorage = storage;
181 out->mPayloadBytes = stride;
182 out->mStride = stride;
190 if (outLen) *outLen = 0;
197 const fl::size n =
mImpl->payloadLen();
202 if (outLen) *outLen = n;
228 if (segments.
empty()) {
fl::u8 pixelFormat() const FL_NO_EXCEPT
static Fled loadFromStatic(fl::span< const fl::u8 > bytes) FL_NO_EXCEPT
fl::size sectionCount() const FL_NO_EXCEPT
fl::size payloadBytes() const FL_NO_EXCEPT
fl::shared_ptr< const fl::u8 > blob(const char *sectionName, fl::size *outLen) const FL_NO_EXCEPT
const fl::json & json() const FL_NO_EXCEPT
fl::size frameCount(fl::size ledCount) const FL_NO_EXCEPT
fled::ColorStatus videoColor(fled::VideoColor *out) const FL_NO_EXCEPT
fl::u8 bytesPerLed() const FL_NO_EXCEPT
bool videoFrame(fl::size frameIndex, fl::size ledCount, fled::VideoFrameView *out) const FL_NO_EXCEPT
fl::shared_ptr< ScreenMap > screenMap() const FL_NO_EXCEPT
fl::shared_ptr< MultiChannelConfig > channels() const FL_NO_EXCEPT
fl::shared_ptr< fled::FledImpl > mImpl
float videoFps(float defaultFps=30.0f) const FL_NO_EXCEPT
static Fled loadFromVector(fl::vector< fl::u8 > &&bytes) FL_NO_EXCEPT
fl::u8 version() const FL_NO_EXCEPT
static Fled load(FileSystem &fs, const char *path) FL_NO_EXCEPT
static bool ParseJson(const char *jsonStrScreenMap, fl::flat_map< string, ScreenMap > *segmentMaps, string *err=nullptr) FL_NO_EXCEPT
const char * c_str() const FL_NO_EXCEPT
iterator begin() FL_NO_EXCEPT
bool empty() const FL_NO_EXCEPT
ifstream & read(char *buffer, fl::size_t count)
bool is_object() const FL_NO_EXCEPT
fl::string to_string() const FL_NO_EXCEPT
fl::optional< float > as_float() const FL_NO_EXCEPT
bool contains(size_t idx) const FL_NO_EXCEPT
T * get() const FL_NO_EXCEPT
void resize(fl::size n) FL_NO_EXCEPT
fl::UISlider offset("Offset", 0.0f, 0.0f, 1.0f, 0.01f)
FastLED's Elegant JSON Library: fl::json
const fl::json & nullJson() FL_NO_EXCEPT
bool parseHeaderAndEnvelope(const fl::u8 *data, fl::size len, ParsedHeader *outHeader, fl::json *outEnvelope) FL_NO_EXCEPT
fl::u8 bytesPerLed(fl::u8 pixelFormat) FL_NO_EXCEPT
ColorStatus resolveVideoColor(const fl::json &envelope, fl::u8 pixelFormat, VideoColor *out) FL_NO_EXCEPT
bool toPixelStorage(PixelFormat fledFormat, PixelStorage *out) FL_NO_EXCEPT
bool sectionNameIsPayload(const char *name) FL_NO_EXCEPT
constexpr remove_reference< T >::type && move(T &&t) FL_NO_EXCEPT
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
InputGamut g FL_NO_EXCEPT
Base definition for an LED controller.