11#if FASTLED_HAS_ENGINE_EVENTS
13 const bool has_listener = ptr && ptr->
_hasListener(
this);
26#if FASTLED_HAS_ENGINE_EVENTS
33#if FASTLED_HAS_ENGINE_EVENTS
35 for (
auto &item : mListeners) {
36 auto listener = item.listener;
37 listener->onPlatformPreLoop();
39 for (
auto &item : mListeners) {
40 auto listener = item.listener;
41 listener->onPlatformPreLoop2();
46 auto predicate = [listener](
const Pair &
pair) {
47 return pair.listener == listener;
49 return mListeners.find_if(predicate) != mListeners.end();
56 for (
auto it = mListeners.begin(); it != mListeners.end(); ++it) {
57 if (it->priority < priority) {
59 EngineEvents::Pair
pair = EngineEvents::Pair(listener, priority);
60 mListeners.insert(it,
pair);
64 EngineEvents::Pair
pair = EngineEvents::Pair(listener, priority);
65 mListeners.push_back(
pair);
69 auto predicate = [listener](
const Pair &
pair) {
70 return pair.listener == listener;
72 auto it = mListeners.find_if(predicate);
73 if (it != mListeners.end()) {
81 ListenerList copy = mListeners;
82 for (
auto &item : copy) {
83 auto listener = item.listener;
84 listener->onBeginFrame();
91 ListenerList copy = mListeners;
92 for (
auto &item : copy) {
93 auto listener = item.listener;
94 listener->onEndShowLeds();
101 ListenerList copy = mListeners;
102 for (
auto &item : copy) {
103 auto listener = item.listener;
104 listener->onEndFrame();
111 ListenerList copy = mListeners;
112 for (
auto &item : copy) {
113 auto listener = item.listener;
114 listener->onStripAdded(strip, num_leds);
119 const ScreenMap &screenmap) {
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.