52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
/*
|
|
* 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 <vector>
|
|
#include <memory>
|
|
|
|
#include <boost/optional.hpp>
|
|
|
|
#include "output/items/Solenoid.h"
|
|
#include "output/items/Lamp.h"
|
|
#include "output/items/Sound.h"
|
|
#include "output/items/Display.h"
|
|
|
|
|
|
namespace flippR_driver
|
|
{
|
|
namespace output
|
|
{
|
|
|
|
class OutputDriver
|
|
{
|
|
public:
|
|
virtual ~OutputDriver() = default;
|
|
|
|
virtual void activate_displays() const = 0;
|
|
virtual void deactivate_displays() const = 0;
|
|
|
|
virtual void deactivate_all_lamps() const = 0;
|
|
virtual void activate_all_lamps() const = 0;
|
|
virtual void rotate_all_lamps() const = 0;
|
|
|
|
virtual std::vector<std::shared_ptr<items::Lamp>> get_lamps() const = 0;
|
|
virtual std::vector<std::shared_ptr<items::Solenoid>> get_solenoids() const = 0;
|
|
virtual std::vector<std::shared_ptr<items::Sound>> get_sounds() const = 0;
|
|
virtual std::vector<std::shared_ptr<items::Display>> get_displays() const = 0;
|
|
|
|
virtual boost::optional<std::shared_ptr<items::Lamp>> get_lamp(const std::string &name) const = 0;
|
|
virtual boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(const std::string &name) const = 0;
|
|
virtual boost::optional<std::shared_ptr<items::Sound>> get_sound(const std::string &name) const = 0;
|
|
virtual boost::optional<std::shared_ptr<items::Display>> get_display(uint8_t number) const = 0;
|
|
};
|
|
|
|
} /* namespace output */
|
|
}
|
|
#endif |