FastLED 3.10.6
Loading...
Searching...
No Matches

◆ screenMap()

fl::shared_ptr< ScreenMap > fl::Fled::screenMap ( ) const

Definition at line 211 of file fled.cpp.hpp.

211 {
212 if (!mImpl) {
213 return fl::shared_ptr<ScreenMap>();
214 }
215 const fl::json &env = mImpl->envelope();
216 // The v1 envelope carries the screen map under the "map" key. The
217 // canonical parser is ScreenMap::ParseJson, which takes a JSON
218 // document containing a top-level "map" object - exactly the shape
219 // of the envelope, so we hand it straight to ParseJson.
220 if (!env.contains(fl::string("map")) || !env["map"].is_object()) {
221 return fl::shared_ptr<ScreenMap>();
222 }
223 fl::string envText = env.to_string();
224 fl::flat_map<fl::string, ScreenMap> segments;
225 if (!ScreenMap::ParseJson(envText.c_str(), &segments)) {
226 return fl::shared_ptr<ScreenMap>();
227 }
228 if (segments.empty()) {
229 return fl::shared_ptr<ScreenMap>();
230 }
231 // Single-strip path: return the first segment. Multi-strip support
232 // would be a dedicated accessor (out of scope here).
233 ScreenMap &first = segments.begin()->second;
234 return fl::make_shared<ScreenMap>(first);
235}
fl::shared_ptr< fled::FledImpl > mImpl
Definition fled.h:156
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
Definition flat_map.h:85
bool empty() const FL_NO_EXCEPT
Definition flat_map.h:99
fl::string to_string() const FL_NO_EXCEPT
Definition json.h:836
bool contains(size_t idx) const FL_NO_EXCEPT
Definition json.h:790
shared_ptr< T > make_shared(Args &&... args) FL_NO_EXCEPT
Definition shared_ptr.h:414

References fl::flat_map< Key, Value, Less >::begin(), fl::basic_string::c_str(), fl::json::contains(), fl::flat_map< Key, Value, Less >::empty(), fl::FL_NO_EXCEPT, fl::json::is_object(), fl::make_shared(), mImpl, fl::ScreenMap::ParseJson(), and fl::json::to_string().

+ Here is the call graph for this function: