--- /dev/null
+#ifndef _EVENTDEVICE_H
+#define _EVENTDEVICE_H 1
+
+#include <string>
+#include <set>
+#include <thread>
+#include <utility>
+
+class QObject;
+
+class EventDevice {
+private:
+ int fd;
+ std::set<std::pair<unsigned, unsigned>> accepted_usb_ids;
+ std::thread thr;
+ QObject *receiver;
+
+ void init();
+ void thread_func();
+
+public:
+ EventDevice(const std::set<std::pair<unsigned, unsigned>> &accepted_usb_ids, QObject *receiver);
+ void start_thread();
+};
+
+#endif /* !defined(_EVENTDEVICE_H) */