/* * OutputDriver.h * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #ifndef _SRC_OUTPUT_IOUTPUTDRIVER_H_ #define _SRC_OUTPUT_IOUTPUTDRIVER_H_ #include "output/items/impl/Lamp.h" #include "output/items/Solenoid.h" #include "output/items/Display.h" #include "output/items/Sound.h" #include #include #include namespace flippR_driver { namespace output { class OutputDriver { public: virtual ~OutputDriver() = default; virtual void activate_displays() const = 0; virtual void deactivate_displays() const = 0; virtual std::vector> get_lamps() const = 0; virtual std::vector> get_solenoids() const = 0; virtual std::vector> get_sounds() const = 0; virtual std::vector> get_displays() const = 0; virtual boost::optional> get_lamp(const std::string &name) const = 0; virtual boost::optional> get_solenoid(const std::string &name) const = 0; virtual boost::optional> get_sound(const std::string &name) const = 0; virtual boost::optional> get_display(uint8_t number) const = 0; }; } /* namespace output */ } #endif