#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 setValue(int priority, std::vector &ledColors, const int timeout_ms); private slots: void update(); private: void applyTransform(std::vector& colors) const; LedString mLedString; PriorityMuxer mMuxer; hyperion::ColorTransform* mRedTransform; hyperion::ColorTransform* mGreenTransform; hyperion::ColorTransform* mBlueTransform; LedDevice* mDevice; QTimer _timer; };