#include "./Figment.h" #include "./Animation.h" #include "./Input.h" #include class Display; struct Renderer: public Task { public: Renderer(std::vector&& displays, const std::vector &figments) : Task("Renderer"), m_figments(figments), m_displays(std::move(displays)) {} void loop() override; void onStart() override; void handleEvent(const InputEvent& evt) override; static const char* lastFigmentName(); const std::vector& commands() const override; private: const std::vector m_figments; const std::vector m_displays; AnimatedNumber m_powerState = 255; AnimatedNumber m_brightness = 255; bool m_powerManaged = true; uint8_t m_voltage; uint8_t m_milliamps; uint8_t powerScale(uint8_t target, uint32_t totalPower) const; void doBrightness(Args& args, Print& print); void doOn(Args& args, Print& print); void doOff(Args& args, Print& print); };