mirror of https://github.com/xemu-project/xemu.git
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>
This commit is contained in:
parent
4b2321c966
commit
f6157392d4
|
@ -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_rel(QemuConsole *src, InputAxis axis, int value);
|
||||||
void qemu_input_queue_abs(QemuConsole *src, InputAxis axis, int value,
|
void qemu_input_queue_abs(QemuConsole *src, InputAxis axis, int value,
|
||||||
int min_in, int max_in);
|
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_input_check_mode_change(void);
|
||||||
void qemu_add_mouse_mode_change_notifier(Notifier *notify);
|
void qemu_add_mouse_mode_change_notifier(Notifier *notify);
|
||||||
|
|
36
ui/input.c
36
ui/input.c
|
@ -547,6 +547,42 @@ void qemu_input_queue_abs(QemuConsole *src, InputAxis axis, int value,
|
||||||
qemu_input_event_send(src, &evt);
|
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)
|
void qemu_input_check_mode_change(void)
|
||||||
{
|
{
|
||||||
static int current_is_absolute;
|
static int current_is_absolute;
|
||||||
|
|
Loading…
Reference in New Issue