/*
 * DisplayFactory.h
 *
 *  Created on: December 28, 2019
 *      Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
 */

#ifndef FLIPPR_DRIVER_DISPLAYFACTORY_H
#define FLIPPR_DRIVER_DISPLAYFACTORY_H

#include "ItemFactory.h"
#include "output/DisplayBoardPinController.h"

namespace flippR_driver
{
namespace output
{

class DisplayFactory : ItemFactory
{
public:
  DisplayFactory(nlohmann::json & object, std::shared_ptr<DisplayBoardPinController> pin_controller);

  std::map<std::string, std::shared_ptr<items::Display>> getItemMap();

private:
  void create_pin_map();

private:
  std::map<std::string, uint8_t> pin_map;
};

}
}


#endif //FLIPPR_DRIVER_DISPLAYFACTORY_H
