On 2/24/21 7:52 AM, Kevin Wolf wrote:
This adds a QAPI schema for the properties of the input-* objects.
ui.json cannot be included in qom.json because the storage daemon can't
use it, so move GrabToggleKeys to common.json.
Signed-off-by: Kevin Wolf <kwolf(a)redhat.com>
---
qapi/common.json | 12 ++++++++++
qapi/qom.json | 58 ++++++++++++++++++++++++++++++++++++++++++++++++
qapi/ui.json | 13 +----------
3 files changed, 71 insertions(+), 12 deletions(-)
+##
+# @InputBarrierProperties:
+#
+# Properties for input-barrier objects.
+#
+# @name: the screen name as declared in the screens section of barrier.conf
+#
+# @server: hostname of the Barrier server (default: "localhost")
+#
+# @port: TCP port of the Barrier server (default: "24800")
I can understand this being a string (if non-numeric, it can be treated
as a well-known service name instead), but...
+#
+# @x-origin: x coordinate of the leftmost pixel on the guest screen
+# (default: "0")
...why are these other fields a string instead of an integer? But you
are just doing faithful translation of what we already have.
Bummer - our naming for this member implies that it is experimental,
which is a misnomer (it is quite stable, when viewed in tandem with
y-origin). Not your fault. Would 'origin-x' and 'origin-y' be any
better as new aliases in a followup patch?
+#
+# @y-origin: y coordinate of he topmost pixel on the guest screen (default:
"0")
"the", long line
+#
+# @width: the width of secondary screen in pixels (default: "1920")
+#
+# @height: the height of secondary screen in pixels (default: "1080")
+#
+# Since: 4.2
+##
+{ 'struct': 'InputBarrierProperties',
+ 'data': { 'name': 'str',
+ '*server': 'str',
+ '*port': 'str',
+ '*x-origin': 'str',
+ '*y-origin': 'str',
+ '*width': 'str',
+ '*height': 'str' } }
Matches ui/input-barrier.c:input_barrier_class_init().
+
+##
+# @InputLinuxProperties:
+#
+# Properties for input-linux objects.
+#
+# @evdev: the path of the host evdev device to use
+#
+# @grab_all: if true, grab is toggled for all devices (e.g. both keyboard and
+# mouse) instead of just one device (default: false)
We have inconsistent naming within this object (see grab-toggle); a good
followup would be an alias for 'grab-all'.
+#
+# @repeat: enables auto-repeat events (default: false)
+#
+# @grab-toggle: the key or key combination that toggles device grab
+# (default: ctrl-ctrl)
+#
+# Since: 2.6
+##
+{ 'struct': 'InputLinuxProperties',
+ 'data': { 'evdev': 'str',
+ '*grab_all': 'bool',
+ '*repeat': 'bool',
+ '*grab-toggle': 'GrabToggleKeys' } }
matches ui/input-linux.c.
+
##
# @IothreadProperties:
#
@@ -689,6 +743,8 @@
'filter-redirector',
'filter-replay',
'filter-rewriter',
+ 'input-barrier',
+ 'input-linux',
'iothread',
'memory-backend-file',
'memory-backend-memfd',
@@ -741,6 +797,8 @@
'filter-redirector': 'FilterRedirectorProperties',
'filter-replay': 'NetfilterProperties',
'filter-rewriter': 'FilterRewriterProperties',
+ 'input-barrier': 'InputBarrierProperties',
+ 'input-linux': 'InputLinuxProperties',
'iothread': 'IothreadProperties',
'memory-backend-file': 'MemoryBackendFileProperties',
'memory-backend-memfd': 'MemoryBackendMemfdProperties',
Reviewed-by: Eric Blake <eblake(a)redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org