/* * OutputDriver.h * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #ifndef _SRC_OUTPUT_OUTPUTDRIVER_H_ #define _SRC_OUTPUT_OUTPUTDRIVER_H_ #include #include "output/OutputDriver.h" #include "output/DisplayController.h" namespace flippR_driver { namespace output { namespace detail { class OutputDriver : public output::OutputDriver { public: OutputDriver(std::unique_ptr display_controller, std::map> solenoids, std::map> lamps, std::map> sounds, std::map> displays); ~OutputDriver() override = default; void activate_displays() const override; void deactivate_displays() const override; void activate_all_lamps() const override; void deactivate_all_lamps() const override; void rotate_all_lamps() const override; void activate_flipper_relay(); void activate_top_flipper_relay(); void deactivate_flipper_relay(); void deactivate_top_flipper_relay(); // todo driver board run for activate/deactivate? // todo what is flipper_relay ? std::vector> get_lamps() const override; std::vector> get_solenoids() const override; std::vector> get_sounds() const override; std::vector> get_displays() const override; boost::optional> get_lamp(const std::string &name) const override; boost::optional> get_solenoid(const std::string &name) const override; boost::optional> get_sound(const std::string &name) const override; boost::optional> get_display(uint8_t number) const override; private: std::unique_ptr display_controller; const std::map> lamps; const std::map> solenoids; const std::map> sounds; const std::map> displays; }; } } /* namespace output */ } #endif