diff options
author | 2024-08-24 19:16:09 +0200 | |
---|---|---|
committer | 2024-08-24 19:16:22 +0200 | |
commit | 3a817b47da27087f441e8bb6d7dcd7ba9d9b51a3 (patch) | |
tree | 71ec5c5d91605d755c096cd3bd5660542c6db2f7 /src/osd/modules/input/input_common.h | |
parent | 692d1f70699cbb65ab423631faed3e1c78c47dcb (diff) |
osd/input_common: increase event queue size,
input_rawinput/win32: empty event queue on resets,
input_raw: set RIDEV_INPUTSINK flag because of missed keyup events, causing stuck inputs (MT8789)
Diffstat (limited to 'src/osd/modules/input/input_common.h')
-rw-r--r-- | src/osd/modules/input/input_common.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/osd/modules/input/input_common.h b/src/osd/modules/input/input_common.h index 28e53fb0ccb..73ddd2bf936 100644 --- a/src/osd/modules/input/input_common.h +++ b/src/osd/modules/input/input_common.h @@ -91,7 +91,7 @@ template <class TEvent> class event_based_device : public device_info { private: - static inline constexpr unsigned DEFAULT_EVENT_QUEUE_SIZE = 20; + static inline constexpr unsigned DEFAULT_EVENT_QUEUE_SIZE = 64; std::queue<TEvent> m_event_queue; @@ -117,7 +117,7 @@ public: m_event_queue.pop(); } - void virtual poll(bool relative_reset) override + virtual void poll(bool relative_reset) override { std::lock_guard<std::mutex> scope_lock(m_device_lock); @@ -128,6 +128,12 @@ public: m_event_queue.pop(); } } + + virtual void reset() override + { + std::lock_guard<std::mutex> scope_lock(m_device_lock); + std::queue<TEvent>().swap(m_event_queue); + } }; |