[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 5/6] ui: add helpers for virtio-multitouch events
From: |
Sergio Lopez |
Subject: |
[PATCH v2 5/6] ui: add helpers for virtio-multitouch events |
Date: |
Thu, 16 Mar 2023 13:06:23 +0100 |
Add helpers for generating Multi-touch events from the UI backends that
can be sent to the guest through a virtio-multitouch device.
Signed-off-by: Sergio Lopez <slp@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
include/ui/input.h | 5 +++++
ui/input.c | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/include/ui/input.h b/include/ui/input.h
index 2a3dffd417..c37251e1e9 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -64,6 +64,11 @@ int qemu_input_scale_axis(int value,
void qemu_input_queue_rel(QemuConsole *src, InputAxis axis, int value);
void qemu_input_queue_abs(QemuConsole *src, InputAxis axis, int value,
int min_in, int max_in);
+void qemu_input_queue_mtt(QemuConsole *src, InputMultitouchType type, int slot,
+ int tracking_id);
+void qemu_input_queue_mtt_abs(QemuConsole *src, InputAxis axis, int value,
+ int min_in, int max_in,
+ int slot, int tracking_id);
void qemu_input_check_mode_change(void);
void qemu_add_mouse_mode_change_notifier(Notifier *notify);
diff --git a/ui/input.c b/ui/input.c
index f788db20f7..34331b7b0b 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -547,6 +547,42 @@ void qemu_input_queue_abs(QemuConsole *src, InputAxis
axis, int value,
qemu_input_event_send(src, &evt);
}
+void qemu_input_queue_mtt(QemuConsole *src, InputMultitouchType type,
+ int slot, int tracking_id)
+{
+ InputMultitouchEvent mtt = {
+ .type = type,
+ .slot = slot,
+ .tracking_id = tracking_id,
+ };
+ InputEvent evt = {
+ .type = INPUT_EVENT_KIND_MTT,
+ .u.mtt.data = &mtt,
+ };
+
+ qemu_input_event_send(src, &evt);
+}
+
+void qemu_input_queue_mtt_abs(QemuConsole *src, InputAxis axis, int value,
+ int min_in, int max_in, int slot, int
tracking_id)
+{
+ InputMultitouchEvent mtt = {
+ .type = INPUT_MULTITOUCH_TYPE_DATA,
+ .slot = slot,
+ .tracking_id = tracking_id,
+ .axis = axis,
+ .value = qemu_input_scale_axis(value, min_in, max_in,
+ INPUT_EVENT_ABS_MIN,
+ INPUT_EVENT_ABS_MAX),
+ };
+ InputEvent evt = {
+ .type = INPUT_EVENT_KIND_MTT,
+ .u.mtt.data = &mtt,
+ };
+
+ qemu_input_event_send(src, &evt);
+}
+
void qemu_input_check_mode_change(void)
{
static int current_is_absolute;
--
2.38.1
- [PATCH v2 0/6] Implement virtio-multitouch and enable GTK3 to use it, Sergio Lopez, 2023/03/16
- [PATCH v2 1/6] virtio-input: generalize virtio_input_key_config(), Sergio Lopez, 2023/03/16
- [PATCH v2 3/6] virtio-input: add a virtio-mulitouch device, Sergio Lopez, 2023/03/16
- [PATCH v2 2/6] ui: add the infrastructure to support MT events, Sergio Lopez, 2023/03/16
- [PATCH v2 4/6] virtio-input-pci: add virtio-multitouch-pci, Sergio Lopez, 2023/03/16
- [PATCH v2 5/6] ui: add helpers for virtio-multitouch events,
Sergio Lopez <=
- [PATCH v2 6/6] ui/gtk: enable backend to send multi-touch events, Sergio Lopez, 2023/03/16