fuuuuuuuu
This commit is contained in:
@@ -14,8 +14,7 @@
|
||||
namespace flippR_driver
|
||||
{
|
||||
std::shared_ptr<input::InputDriver> get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream);
|
||||
std::shared_ptr<output::OutputDriver> get_OutputDriver(std::istream& output_pin_config,
|
||||
std::istream& lamp_config,
|
||||
std::shared_ptr<output::OutputDriver> get_OutputDriver(std::istream& lamp_config,
|
||||
std::istream& solenoid_config,
|
||||
std::istream& sound_config,
|
||||
std::istream& display_config);
|
||||
|
||||
@@ -10,13 +10,17 @@
|
||||
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <map>
|
||||
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
#include "output/DisplayController.h"
|
||||
|
||||
#include "output/items/Solenoid.h"
|
||||
#include "output/items/Lamp.h"
|
||||
#include "output/items/Sound.h"
|
||||
#include "output/items/Display.h"
|
||||
#include <output/items/Flipper.h>
|
||||
|
||||
|
||||
namespace flippR_driver
|
||||
@@ -27,24 +31,44 @@ namespace output
|
||||
class OutputDriver
|
||||
{
|
||||
public:
|
||||
virtual ~OutputDriver() = default;
|
||||
OutputDriver(std::unique_ptr<output::DisplayController> display_controller, std::map<std::string, std::shared_ptr<items::Solenoid>> solenoids,
|
||||
std::map<std::string, std::shared_ptr<items::Lamp>> lamps, std::map<std::string, std::shared_ptr<items::Sound>> sounds,
|
||||
std::map<std::string, std::shared_ptr<items::Flipper>> flippers, std::map<uint8_t, std::shared_ptr<output::items::Display>> displays);
|
||||
|
||||
virtual void activate_displays() const = 0;
|
||||
virtual void deactivate_displays() const = 0;
|
||||
~OutputDriver() = default;
|
||||
|
||||
virtual void deactivate_all_lamps() const = 0;
|
||||
virtual void activate_all_lamps() const = 0;
|
||||
virtual void rotate_all_lamps() const = 0;
|
||||
void activate_displays() const;
|
||||
void deactivate_displays() const;
|
||||
|
||||
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;
|
||||
void activate_all_lamps() const;
|
||||
void deactivate_all_lamps() const;
|
||||
void rotate_all_lamps() const;
|
||||
|
||||
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;
|
||||
void activate_all_flipper_relays() const;
|
||||
void deactivate_all_flipper_relays() const;
|
||||
|
||||
// todo driver board run for activate/deactivate?
|
||||
// todo what is flipper_relay ?
|
||||
std::vector<std::shared_ptr<items::Lamp>> get_lamps() const;
|
||||
std::vector<std::shared_ptr<items::Solenoid>> get_solenoids() const;
|
||||
std::vector<std::shared_ptr<items::Sound>> get_sounds() const;
|
||||
std::vector<std::shared_ptr<items::Flipper>> get_flippers() const;
|
||||
std::vector<std::shared_ptr<items::Display>> get_displays() const;
|
||||
|
||||
boost::optional<std::shared_ptr<items::Lamp>> get_lamp(const std::string &name) const;
|
||||
boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(const std::string &name) const;
|
||||
boost::optional<std::shared_ptr<items::Sound>> get_sound(const std::string &name) const;
|
||||
boost::optional<std::shared_ptr<items::Flipper>> get_flipper(const std::string &name) const;
|
||||
boost::optional<std::shared_ptr<items::Display>> get_display(uint8_t number) const;
|
||||
|
||||
private:
|
||||
std::unique_ptr<output::DisplayController> display_controller;
|
||||
|
||||
const std::map<std::string, std::shared_ptr<items::Lamp>> lamps;
|
||||
const std::map<std::string, std::shared_ptr<items::Solenoid>> solenoids;
|
||||
const std::map<std::string, std::shared_ptr<items::Sound>> sounds;
|
||||
const std::map<std::string, std::shared_ptr<items::Flipper>> flippers;
|
||||
const std::map<uint8_t, std::shared_ptr<items::Display>> displays;
|
||||
};
|
||||
|
||||
} /* namespace output */
|
||||
|
||||
Reference in New Issue
Block a user