Files
flippr-code/FlippR-Driver/src/input/Detector.h
2018-12-07 14:34:10 +01:00

56 lines
1.0 KiB
C++

/*
* 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 <thread>
#include <vector>
#include <map>
#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<IInputGPIOInterface> input_gpio_interface, std::vector<std::shared_ptr<DistributingEvent>> events);
~Detector() override;
private:
void detect();
void check_inputs();
private:
const std::unique_ptr<IInputGPIOInterface> input_gpio_interface;
const std::vector<std::shared_ptr<DistributingEvent>> events;
bool is_running;
std::thread detect_thread;
};
}
}
#endif