/* * DisplayController.h * * Created on: Aug 7, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #ifndef _SRC_OUTPUT_DISPLAYCONTROLLER_H_ #define _SRC_OUTPUT_DISPLAYCONTROLLER_H_ #include #include #include "output/DisplayController.h" #include "output/items/OutputDisplay.h" #include "output/DisplayBoardPinController.h" namespace flippR_driver { namespace output { namespace detail { class DisplayController : public output::DisplayController { public: DisplayController(std::map> &displays, std::shared_ptr pin_controller, std::chrono::microseconds update_frequency); ~DisplayController() override; void activate_displays() const override; void deactivate_displays() const override; private: void cycle_displays() const; private: std::vector> displays; const std::shared_ptr pin_controller; std::thread display_cycle_thread; std::chrono::microseconds update_frequency; bool is_running; }; } } } #endif