Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
ui: add helpers for virtio-multitouch events
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>
Message-Id: <20230526112925.38794-6-slp@redhat.com>
  • Loading branch information
slp authored and elmarco committed May 28, 2023
1 parent 4b2321c commit f615739
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
5 changes: 5 additions & 0 deletions include/ui/input.h
Expand Up @@ -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);
Expand Down
36 changes: 36 additions & 0 deletions ui/input.c
Expand Up @@ -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_MULTI_TOUCH_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;
Expand Down

0 comments on commit f615739

Please sign in to comment.