#pragma once #include "effects/Common.h" #include "helpers/ColorRGBW.h" struct EffectStaticConfig { ColorRGBW color; }; template class EffectStatic { public: static constexpr auto NUM_LEDS = numLeds(); EffectStatic(const EffectStaticConfig &cfg, TLedStrip &ledStrip) : config_(cfg), ledStrip_(ledStrip) { } int operator()() { setLedRGBW(ledStrip_, 0, NUM_LEDS, config_.color); return 10000; // nothing changing, return some large time to sleep } private: EffectStaticConfig config_; TLedStrip &ledStrip_; }; // Traits template <> struct EffectIdToConfig { using type = EffectStaticConfig; }; template <> struct EffectConfigToId { static constexpr auto id = EffectId::STATIC; }; template struct EffectIdToClass { using type = EffectStatic; };