#pragma once // QT includes #include #include // Utils includes #include #include // Forward class declaration class DispmanxFrameGrabber; class Hyperion; class ImageProcessor; /// /// The DispmanxWrapper uses an instance of the DispmanxFrameGrabber to obtain RgbImage's from the /// displayed content. This RgbImage is processed to a RgbColor for each led and commmited to the /// attached Hyperion. /// class DispmanxWrapper: public QObject { Q_OBJECT public: DispmanxWrapper(const unsigned grabWidth, const unsigned grabHeight, const unsigned updateRate_Hz, Hyperion * hyperion); virtual ~DispmanxWrapper(); signals: void ledValues(const unsigned priority, const std::vector ledColors, const unsigned timeout_ms); public slots: void start(); void action(); void stop(); private: const int _updateInterval_ms; const int _timeout_ms; const int _priority; QTimer _timer; RgbImage _image; DispmanxFrameGrabber * _frameGrabber; ImageProcessor * _processor; std::vector _ledColors; Hyperion * _hyperion; };