/* * Sound.cpp * * Created on: Aug 2, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #include "Sound.h" #include #include "utility/config.h" namespace flippR_driver { namespace output { namespace items { namespace detail { Sound::Sound(std::shared_ptr pin_controller, const uint8_t address, const uint8_t pin_base, const std::string name, std::chrono::milliseconds deactivation_time, u_int id) : detail::Item(std::move(name)), DriverBoardItem(pin_controller, address, pin_base), pin_controller(std::move(pin_controller)), deactivation_time(deactivation_time), id(id) { CLOG(INFO, OUTPUT_LOGGER) << "Created sound " << id << " with name " << name << " and address " << address; } void Sound::play() { CLOG(INFO, OUTPUT_LOGGER) << "Play Sound " << id << " " << name; this->play_task = std::async(std::launch::async, &Sound::playTask, this); } void Sound::playTask() { pin_controller->activate(*this); std::this_thread::sleep_for(deactivation_time); pin_controller->deactivate(*this); } } } } /* namespace output */ }