#pragma once #include #include #include #include "device.h" namespace rawinput { class RawInputHandles { public: struct AcquiredDevice { Device *device = nullptr; std::unique_lock lock; }; void add(Device *device); void remove(Device *device); AcquiredDevice acquire(HANDLE handle); private: // non-owning index; RawInputManager owns the stable device slots std::unordered_map devices; std::mutex mutex; }; }