#pragma once #include #include #include #include #include #include #include #include #include "Device.h" class Device; struct ConnectedDevice { Device *device; std::thread associatedThread; }; class DeviceFinder : public HID::DeviceMonitor { public: ~DeviceFinder(); void insertNewDevice (const std::string &path, HIDPP::DeviceIndex index); void stopAndDeleteAllDevicesIn (const std::string &path); void stopAndDeleteDevice (const std::string &path, HIDPP::DeviceIndex index); protected: void addDevice(const char* path); void removeDevice(const char* path); private: std::mutex devices_mutex; std::map> devices; }; extern DeviceFinder* finder;