diff options
Diffstat (limited to 'dinput/keybinding-worker.hpp')
-rw-r--r-- | dinput/keybinding-worker.hpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/dinput/keybinding-worker.hpp b/dinput/keybinding-worker.hpp index fad9ec7e..7b9dd259 100644 --- a/dinput/keybinding-worker.hpp +++ b/dinput/keybinding-worker.hpp @@ -24,13 +24,13 @@ struct OTR_DINPUT_EXPORT Key { QString guid; + Timer timer; int keycode = 0; bool shift = false; bool ctrl = false; bool alt = false; bool held = true; bool enabled = true; - Timer timer; public: Key(); @@ -41,6 +41,9 @@ struct OTR_DINPUT_EXPORT KeybindingWorker : private QThread { using fun = std::function<void(const Key&)>; + KeybindingWorker(const KeybindingWorker&) = delete; + KeybindingWorker& operator=(KeybindingWorker&) = delete; + private: LPDIRECTINPUTDEVICE8 dinkeyboard { nullptr }; win32_joy_ctx joy_ctx; @@ -50,7 +53,6 @@ private: di_t din; bool keystate[256] {}; - bool old_keystate[256] {}; void run() override; bool run_keyboard_nolock(); @@ -60,15 +62,12 @@ private: KeybindingWorker(); static KeybindingWorker& make(); - fun* _add_receiver(fun &receiver); + fun* add_receiver(fun& receiver); void remove_receiver(fun* pos); - ~KeybindingWorker(); + ~KeybindingWorker() override; - static constexpr int num_keyboard_states = 16; + static constexpr int num_keyboard_states = 64; DIDEVICEOBJECTDATA keyboard_states[num_keyboard_states] {}; - - KeybindingWorker(const KeybindingWorker&) = delete; - KeybindingWorker& operator=(KeybindingWorker&) = delete; public: class Token { @@ -83,7 +82,7 @@ public: } Token(fun receiver) { - pos = make()._add_receiver(receiver); + pos = make().add_receiver(receiver); } }; }; |