/* * Detector.h * * Responsible for detecting InputEvents. * * Creates two Threads; * One cycles over the inputs gpios and pushes detected input events to a queue. * The other cycles over the queue and notifies input event handlers. * * Created on: Apr 5, 2018 * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert */ #ifndef DETECTOR_H_ #define DETECTOR_H_ #include #include #include #include "IInputGPIOInterface.h" #include "IDetector.h" #include "DistributingEvent.h" #include "IEventNotifier.h" namespace flippR_driver { namespace input { class Detector : public IDetector { public: Detector(std::unique_ptr input_gpio_interface, std::vector> events); ~Detector() override; private: void detect(); void check_inputs(); private: const std::unique_ptr input_gpio_interface; const std::vector> events; bool is_running; std::thread detect_thread; }; } } #endif