15 #if FASTLED_HAS_ENGINE_EVENTS
17 const bool has_listener = ptr && ptr->
_hasListener(
this);
30 #if FASTLED_HAS_ENGINE_EVENTS
38#if FASTLED_HAS_ENGINE_EVENTS
40 for (
auto& item : mListeners) {
41 auto listener = item.listener;
42 listener->onPlatformPreLoop();
44 for (
auto& item : mListeners) {
45 auto listener = item.listener;
46 listener->onPlatformPreLoop2();
51 auto predicate = [listener](
const Pair& pair) {
52 return pair.listener == listener;
54 return mListeners.find_if(predicate) != mListeners.end();
61 for (
auto it = mListeners.begin(); it != mListeners.end(); ++it) {
62 if (it->priority < priority) {
64 EngineEvents::Pair pair = EngineEvents::Pair(listener, priority);
65 mListeners.insert(it, pair);
69 EngineEvents::Pair pair = EngineEvents::Pair(listener, priority);
70 mListeners.push_back(pair);
74 auto predicate = [listener](
const Pair& pair) {
75 return pair.listener == listener;
77 auto it = mListeners.find_if(predicate);
78 if (it != mListeners.end()) {
85 ListenerList copy = mListeners;
86 for (
auto& item : copy) {
87 auto listener = item.listener;
88 listener->onBeginFrame();
94 ListenerList copy = mListeners;
95 for (
auto& item : copy) {
96 auto listener = item.listener;
97 listener->onEndShowLeds();
103 ListenerList copy = mListeners;
104 for (
auto& item : copy) {
105 auto listener = item.listener;
106 listener->onEndFrame();
112 ListenerList copy = mListeners;
113 for (
auto& item : copy) {
114 auto listener = item.listener;
115 listener->onStripAdded(strip, num_leds);
122 ListenerList copy = mListeners;
123 for (
auto& item : copy) {
124 auto listener = item.listener;
125 listener->onCanvasUiSet(strip, screenmap);
void _onStripAdded(CLEDController *strip, uint32_t num_leds)
void _removeListener(Listener *listener)
void _addListener(Listener *listener, int priority)
static EngineEvents * getInstance()
bool _hasListener(Listener *listener)
void _onCanvasUiSet(CLEDController *strip, const ScreenMap &xymap)
void _onPlatformPreLoop()
#define FASTLED_NAMESPACE_END
Implements the FastLED namespace macros.
Implements a simple red square effect for 2D LED grids.