#pragma once // QT includes #include #include // hyperion-utils includes #include // Hyperion includes #include #include #include // Forward class declaration namespace hyperion { class ColorTransform; } class Hyperion : public QObject { Q_OBJECT public: static LedString createLedString(const Json::Value& ledsConfig); Hyperion(const Json::Value& jsonConfig); ~Hyperion(); unsigned getLedCount() const; void setColor(int priority, RgbColor &ledColor, const int timeout_ms); void setColors(int priority, std::vector &ledColors, const int timeout_ms); void clear(int priority); void clearall(); private slots: void update(); private: void applyTransform(std::vector& colors) const; LedString _ledString; PriorityMuxer _muxer; hyperion::ColorTransform* _redTransform; hyperion::ColorTransform* _greenTransform; hyperion::ColorTransform* _blueTransform; LedDevice* _device; QTimer _timer; };