//
// Created by rhetenor on 14.12.18.
//

#ifndef FLIPPR_DRIVER_DISPLAYPINCONTROLLER_H
#define FLIPPR_DRIVER_DISPLAYPINCONTROLLER_H

#include "output/items/OutputDisplay.h"
#include "PinController.h"

namespace flippR_driver
{
namespace output
{

class DisplayBoardPinController : public PinController
{
public:
  virtual ~DisplayBoardPinController() = default;

  virtual void activate_displays() const = 0;
  virtual void deactivate_displays() const = 0;

  virtual void initDisplay(const items::OutputDisplay &display) const = 0;

  virtual void write_display(const items::OutputDisplay &display) const = 0;

  virtual void set_pin_map(std::map<std::string, uint8_t> & pins_display) = 0;
};

}
}
#endif //FLIPPR_DRIVER_DISPLAYPINCONTROLLER_H
