Implements and integrates FlipperFactory
This commit is contained in:
@@ -24,8 +24,11 @@ namespace config_path
|
||||
const char item_address[] = "address";
|
||||
const char item_extender[] = "extender";
|
||||
const char item_identifier[] = "id";
|
||||
|
||||
const char deactivation_time[] = "deactivation_time_milliseconds";
|
||||
const char sound_path[] = "sounds";
|
||||
|
||||
const char flipper_path[] = "flippers";
|
||||
}
|
||||
|
||||
class Factory
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include <output/DriverBoardPinController.h>
|
||||
#include <output/items/detail/Flipper.h>
|
||||
#include "FlipperFactory.h"
|
||||
|
||||
namespace flippR_driver
|
||||
@@ -15,13 +16,23 @@ namespace output
|
||||
|
||||
FlipperFactory::FlipperFactory(nlohmann::json &object, std::shared_ptr<DriverBoardPinController> pin_controller) :
|
||||
Factory{object, pin_controller}
|
||||
{
|
||||
|
||||
}
|
||||
{}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Item>> FlipperFactory::getItemMap()
|
||||
{
|
||||
return std::map<std::string, std::shared_ptr<items::Item>>();
|
||||
auto flippers = this->object.at(config_path::flipper_path);
|
||||
std::map<std::string, std::shared_ptr<items::Item>> flipper_map;
|
||||
for (auto lamp : flippers)
|
||||
{
|
||||
auto name = lamp.at(config_path::item_name).get<std::string>();
|
||||
auto address = lamp.at(config_path::item_address).get<uint8_t >();
|
||||
auto extender = lamp.at(config_path::item_extender).get<std::string>();
|
||||
auto pin_base = this->get_extender_pin_base(extender);
|
||||
|
||||
auto flipper_item = std::make_shared<items::detail::Flipper>(std::static_pointer_cast<DriverBoardPinController>(this->pin_controller), address, pin_base, name);
|
||||
flipper_map.emplace(name, flipper_item);
|
||||
}
|
||||
return flipper_map;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user