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

#ifndef FLIPPR_DRIVER_SOUNDFACTORY_H
#define FLIPPR_DRIVER_SOUNDFACTORY_H

#include "ItemFactory.h"

#include "output/detail/SoundBoardPinController.h"

namespace flippR_driver
{
namespace output
{

class SoundFactory : ItemFactory
{
public:
  SoundFactory(nlohmann::json & object, std::shared_ptr<SoundBoardPinController> pin_controller);
  std::map<std::string, std::shared_ptr<items::Sound>> getItemMap();

private:
  void set_fire_pin();
  void set_address_pins();
};

}
}

#endif //FLIPPR_DRIVER_SOUNDFACTORY_H
