fuuuuuuuu

This commit is contained in:
Johannes Wendel
2019-07-16 22:12:46 +02:00
parent ee6c04c744
commit e7148eec60
48 changed files with 625 additions and 726 deletions

View File

@@ -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 */