Integrates SoundFactory
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
// Created by rhetenor on 04.10.18.
|
||||
//
|
||||
|
||||
#include <output/factories/LampFactory.h>
|
||||
#include "OutputDriverFactory.h"
|
||||
|
||||
#include "utility/LoggerFactory.h"
|
||||
@@ -37,7 +38,7 @@ std::shared_ptr<OutputDriver> get_OutputDriver(std::istream& solenoid_config,
|
||||
std::istream& sound_config,
|
||||
std::istream& display_config)
|
||||
{
|
||||
/* utility::LoggerFactory::CreateOutputLogger();
|
||||
utility::LoggerFactory::CreateOutputLogger();
|
||||
|
||||
solenoid_config >> config::solenoids;
|
||||
lamp_config >> config::lamps;
|
||||
@@ -47,11 +48,21 @@ std::shared_ptr<OutputDriver> get_OutputDriver(std::istream& solenoid_config,
|
||||
auto output_pin_mutex = std::make_shared<std::mutex>();
|
||||
std::shared_ptr<DriverBoardPinController> driver_board_pin_controller(new detail::DriverBoardPinController(output_pin_mutex));
|
||||
|
||||
auto solenoids = create_solenoids(driver_board_pin_controller);
|
||||
auto flippers = create_flippers(driver_board_pin_controller);
|
||||
auto lamps = create_lamps(driver_board_pin_controller);
|
||||
/* auto solenoids = create_solenoids(driver_board_pin_controller);
|
||||
auto flippers = create_flippers(driver_board_pin_controller);*/
|
||||
|
||||
auto sound_board_pin_controller = create_SoundBoardPinController();
|
||||
LampFactory lamp_factory(config::lamps, driver_board_pin_controller);
|
||||
try
|
||||
{
|
||||
auto lamps = lamp_factory.getItemMap();
|
||||
}
|
||||
catch(json::exception &e)
|
||||
{
|
||||
CLOG(INFO, OUTPUT_LOGGER) << "File " << "sound_config.json" << " seems to be corrupted: " << ": " << e.what();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/*auto sound_board_pin_controller = create_SoundBoardPinController();
|
||||
auto sounds = create_sounds(sound_board_pin_controller);
|
||||
|
||||
std::unique_ptr<DisplayBoardPinController> display_board_pin_controller(new detail::DisplayBoardPinController(parse_pins_display_board(display_config)));
|
||||
@@ -124,32 +135,6 @@ std::shared_ptr<items::detail::Flipper> create_flipper(nlohmann::json &flipper_j
|
||||
return std::make_shared<items::detail::Flipper>(pin_controller, address, pin_base, name);
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Lamp>> create_lamps(std::istream &lamp_config, std::shared_ptr<DriverBoardPinController> &pin_controller)
|
||||
{
|
||||
json port_extenders = get_element("port_extenders", config::lamps, "lamp_config.json");
|
||||
initialize_port_extenders(port_extenders, pin_controller.get(), "lamp_config.json");
|
||||
json lamps_json = get_element("lamps", config::lamps, "lamp_config.json");
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Lamp>> lamps;
|
||||
for(auto &lamp_json : lamps_json)
|
||||
{
|
||||
auto lamp = create_lamp(lamp_json, port_extenders, pin_controller);
|
||||
lamps.emplace(lamp->get_name(), lamp);
|
||||
}
|
||||
return lamps;
|
||||
}
|
||||
|
||||
std::shared_ptr<items::detail::Lamp> create_lamp(json &lamp_json, json & port_extenders, std::shared_ptr<DriverBoardPinController> &pin_controller)
|
||||
{
|
||||
std::string config_file_name = "lamps_config.json";
|
||||
|
||||
uint8_t pin_base = get_pin_base(lamp_json, port_extenders, config_file_name);
|
||||
auto address = get_value<uint8_t>("address", lamp_json, config_file_name);
|
||||
auto name = get_value<std::string>("name", lamp_json, config_file_name);
|
||||
|
||||
return std::make_shared<items::detail::Lamp>(pin_controller, address, pin_base, name);
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Sound>> create_sounds(std::istream &sound_config, std::shared_ptr<SoundBoardPinController> &pin_controller)
|
||||
{
|
||||
json port_extenders = get_element("port_extenders", config::sounds, "sound_config.json");
|
||||
|
||||
Reference in New Issue
Block a user