Files
flippr-code/FlippR-Driver/src/output/OutputDriverFactory.h
2020-01-15 16:17:06 +01:00

40 lines
1.2 KiB
C++

// Created by rhetenor on 04.10.18.
//
#ifndef flippR_driver_OUTPUTDRIVERFACTORY_H
#define flippR_driver_OUTPUTDRIVERFACTORY_H
#include "output/OutputDriver.h"
#include "output/items/detail/Solenoid.h"
#include "output/items/detail/Lamp.h"
#include "output/items/detail/Sound.h"
#include "output/items/Flipper.h"
#include "output/items/detail/Flipper.h"
#include "output/DisplayBoardPinController.h"
#include "json/json.hpp"
#include <memory>
namespace flippR_driver
{
namespace output
{
namespace OutputDriverFactory
{
std::shared_ptr<OutputDriver> get_OutputDriver(const std::string & solenoid_config_path,
const std::string & lamp_config_path,
const std::string & sound_config_path,
const std::string & display_config_path);
std::chrono::seconds get_update_frequency(const std::string & display_config_path);
template<typename FactoryType, typename ControllerType, typename ItemType>
std::map<std::string, std::shared_ptr<ItemType>> get_items(const std::string & config_path, std::shared_ptr<PinController> pin_controller);
}
}
}
#endif //flippR_driver_OUTPUTDRIVERFACTORY_H