From 10a55412fe29487c40a1e0424b94c3fee7925488 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Wed, 10 Oct 2018 11:58:31 +0200 Subject: [PATCH] implemented output driver --- FlippR-Driver/src/output/OutputDriver.cpp | 48 +++++++++++++++++-- FlippR-Driver/src/output/OutputDriver.h | 5 +- .../src/output/OutputDriverFactory.h | 2 +- 3 files changed, 47 insertions(+), 8 deletions(-) diff --git a/FlippR-Driver/src/output/OutputDriver.cpp b/FlippR-Driver/src/output/OutputDriver.cpp index 3262c81..d3adb83 100644 --- a/FlippR-Driver/src/output/OutputDriver.cpp +++ b/FlippR-Driver/src/output/OutputDriver.cpp @@ -7,20 +7,58 @@ #include "OutputDriver.h" +#include +#include + namespace FlippR_Driver { namespace output { -OutputDriver::OutputDriver() -{ - // TODO Auto-generated constructor stub +OutputDriver::OutputDriver(std::map> cabinet_items, std::map> displays, std::map> sounds) +: cabinet_items(cabinet_items), displays(displays), sounds(sounds) +{} +std::vector> OutputDriver::get_cabinet_items() +{ + std::vector> cabinet_items; + + boost::copy(this->cabinet_items | boost::adaptors::map_values, std::back_inserter(cabinet_items)); + + return cabinet_items; } -OutputDriver::~OutputDriver() +std::vector> OutputDriver::get_sounds() { - // TODO Auto-generated destructor stub + std::vector> sounds; + + boost::copy(this->sounds | boost::adaptors::map_values, std::back_inserter(sounds)); + + return sounds; +} + +std::vector> OutputDriver::get_displays() +{ + std::vector> displays; + + boost::copy(this->displays | boost::adaptors::map_values, std::back_inserter(displays)); + + return displays; +} + +std::shared_ptr OutputDriver::get_cabinet_item(std::string name) +{ + return this->cabinet_items.find(name)->second; +} + +std::shared_ptr OutputDriver::get_sound(std::string name) +{ + return this->sounds.find(name)->second; +} + +std::shared_ptr OutputDriver::get_display(char number) +{ + return this->displays.find(number)->second; } } /* namespace output */ diff --git a/FlippR-Driver/src/output/OutputDriver.h b/FlippR-Driver/src/output/OutputDriver.h index da4bd3b..9b281a3 100644 --- a/FlippR-Driver/src/output/OutputDriver.h +++ b/FlippR-Driver/src/output/OutputDriver.h @@ -25,8 +25,9 @@ namespace output class OutputDriver : public IOutputDriver { public: - OutputDriver(); - virtual ~OutputDriver(); + OutputDriver(std::map> cabinet_items, std::map> displays, std::map> sounds); + + virtual ~OutputDriver() = default; std::vector> get_cabinet_items(); std::vector> get_sounds(); diff --git a/FlippR-Driver/src/output/OutputDriverFactory.h b/FlippR-Driver/src/output/OutputDriverFactory.h index 506487d..91ebf02 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.h +++ b/FlippR-Driver/src/output/OutputDriverFactory.h @@ -16,7 +16,7 @@ namespace output class OutputDriverFactory { public: - std::shared_ptr getOutputDriver(std::ifstream &output_gpio_config, std::ifstream &output_config); + static std::shared_ptr getOutputDriver(std::ifstream &output_gpio_config, std::ifstream &output_config); }; } }