Impelements and integrates DisplayFactory. Further does some refactoring

This commit is contained in:
Johannes Wendel
2020-01-06 12:42:04 +01:00
parent d90e904b4c
commit 4a520fb12a
21 changed files with 192 additions and 127 deletions

View File

@@ -18,13 +18,18 @@ namespace output
namespace detail
{
DisplayController::DisplayController(std::vector<std::shared_ptr<items::OutputDisplay>> displays,
std::unique_ptr<DisplayBoardPinController> pin_controller
DisplayController::DisplayController(std::map<std::string, std::shared_ptr<items::Item>> & displays,
std::shared_ptr<DisplayBoardPinController> pin_controller
)
: displays(std::move(displays)), pin_controller(std::move(pin_controller)), is_running(true)
: pin_controller{pin_controller}, is_running(true)
{
this->display_cycle_thread = std::thread(&DisplayController::cycle_displays, this);
for (auto display : displays)
{
this->displays.push_back(std::dynamic_pointer_cast<items::OutputDisplay>(display.second));
}
CLOG(INFO, OUTPUT_LOGGER) << "Created DisplayController and started cycling them.";
activate_displays();