summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/input/input_common.h
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2024-08-24 19:16:09 +0200
committer hap <happppp@users.noreply.github.com>2024-08-24 19:16:22 +0200
commit3a817b47da27087f441e8bb6d7dcd7ba9d9b51a3 (patch)
tree71ec5c5d91605d755c096cd3bd5660542c6db2f7 /src/osd/modules/input/input_common.h
parent692d1f70699cbb65ab423631faed3e1c78c47dcb (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.h10
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);
+ }
};