mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-03-04 09:04:39 -07:00
ui: add the infrastructure to support MT events
Add the required infrastructure to support generating multitouch events. Signed-off-by: Sergio Lopez <slp@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20230526112925.38794-3-slp@redhat.com>
This commit is contained in:
parent
944ae6d9f1
commit
2bfb10dff2
5 changed files with 87 additions and 9 deletions
68
qapi/ui.json
68
qapi/ui.json
|
|
@ -1055,11 +1055,13 @@
|
|||
#
|
||||
# @extra: rear side button of a 5-button mouse (since 2.9)
|
||||
#
|
||||
# @touch: screen contact on a multi-touch device (since 8.1)
|
||||
#
|
||||
# Since: 2.0
|
||||
##
|
||||
{ 'enum' : 'InputButton',
|
||||
'data' : [ 'left', 'middle', 'right', 'wheel-up', 'wheel-down', 'side',
|
||||
'extra', 'wheel-left', 'wheel-right' ] }
|
||||
'extra', 'wheel-left', 'wheel-right', 'touch' ] }
|
||||
|
||||
##
|
||||
# @InputAxis:
|
||||
|
|
@ -1071,6 +1073,17 @@
|
|||
{ 'enum' : 'InputAxis',
|
||||
'data' : [ 'x', 'y' ] }
|
||||
|
||||
##
|
||||
# @InputMultiTouchType:
|
||||
#
|
||||
# Type of a multi-touch event.
|
||||
#
|
||||
# Since: 8.1
|
||||
##
|
||||
{ 'enum' : 'InputMultiTouchType',
|
||||
'data' : [ 'begin', 'update', 'end', 'cancel', 'data' ] }
|
||||
|
||||
|
||||
##
|
||||
# @InputKeyEvent:
|
||||
#
|
||||
|
|
@ -1117,13 +1130,46 @@
|
|||
'data' : { 'axis' : 'InputAxis',
|
||||
'value' : 'int' } }
|
||||
|
||||
##
|
||||
# @InputMultiTouchEvent:
|
||||
#
|
||||
# MultiTouch input event.
|
||||
#
|
||||
# @slot: Which slot has generated the event.
|
||||
#
|
||||
# @tracking-id: ID to correlate this event with previously generated
|
||||
# events.
|
||||
#
|
||||
# @axis: Which axis is referenced by @value.
|
||||
#
|
||||
# @value: Contact position.
|
||||
#
|
||||
# Since: 8.1
|
||||
##
|
||||
{ 'struct' : 'InputMultiTouchEvent',
|
||||
'data' : { 'type' : 'InputMultiTouchType',
|
||||
'slot' : 'int',
|
||||
'tracking-id': 'int',
|
||||
'axis' : 'InputAxis',
|
||||
'value' : 'int' } }
|
||||
|
||||
##
|
||||
# @InputEventKind:
|
||||
#
|
||||
# @key: a keyboard input event
|
||||
#
|
||||
# @btn: a pointer button input event
|
||||
#
|
||||
# @rel: a relative pointer motion input event
|
||||
#
|
||||
# @abs: an absolute pointer motion input event
|
||||
#
|
||||
# @mtt: a multi-touch input event
|
||||
#
|
||||
# Since: 2.0
|
||||
##
|
||||
{ 'enum': 'InputEventKind',
|
||||
'data': [ 'key', 'btn', 'rel', 'abs' ] }
|
||||
'data': [ 'key', 'btn', 'rel', 'abs', 'mtt' ] }
|
||||
|
||||
##
|
||||
# @InputKeyEventWrapper:
|
||||
|
|
@ -1149,17 +1195,20 @@
|
|||
{ 'struct': 'InputMoveEventWrapper',
|
||||
'data': { 'data': 'InputMoveEvent' } }
|
||||
|
||||
##
|
||||
# @InputMultiTouchEventWrapper:
|
||||
#
|
||||
# Since: 8.1
|
||||
##
|
||||
{ 'struct': 'InputMultiTouchEventWrapper',
|
||||
'data': { 'data': 'InputMultiTouchEvent' } }
|
||||
|
||||
##
|
||||
# @InputEvent:
|
||||
#
|
||||
# Input event union.
|
||||
#
|
||||
# @type: the input type, one of:
|
||||
#
|
||||
# - 'key': Input event of Keyboard
|
||||
# - 'btn': Input event of pointer buttons
|
||||
# - 'rel': Input event of relative pointer motion
|
||||
# - 'abs': Input event of absolute pointer motion
|
||||
# @type: the type of input event
|
||||
#
|
||||
# Since: 2.0
|
||||
##
|
||||
|
|
@ -1169,7 +1218,8 @@
|
|||
'data' : { 'key' : 'InputKeyEventWrapper',
|
||||
'btn' : 'InputBtnEventWrapper',
|
||||
'rel' : 'InputMoveEventWrapper',
|
||||
'abs' : 'InputMoveEventWrapper' } }
|
||||
'abs' : 'InputMoveEventWrapper',
|
||||
'mtt' : 'InputMultiTouchEventWrapper' } }
|
||||
|
||||
##
|
||||
# @input-send-event:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue