]>
git.proxmox.com Git - mirror_qemu.git/blob - ui/dbus-display1.xml
aff645220c88a309535d319c82e03a5333371eb7
1 <?xml version=
"1.0" encoding=
"utf-8"?>
6 This interface is implemented on ``/org/qemu/Display1/VM``.
8 <interface name=
"org.qemu.Display1.VM">
14 <property name=
"Name" type=
"s" access=
"read"/>
21 <property name=
"UUID" type=
"s" access=
"read"/>
26 The list of consoles available on ``/org/qemu/Display1/Console_$id``.
28 <property name=
"ConsoleIDs" type=
"au" access=
"read"/>
32 org.qemu.Display1.Console:
34 This interface is implemented on ``/org/qemu/Display1/Console_$id``. You
35 may discover available consoles through introspection or with the
36 :dbus:prop:`org.qemu.Display1.VM.ConsoleIDs` property.
38 A console is attached to a video device head. It may be "Graphic" or
39 "Text" (see :dbus:prop:`Type` and other properties).
41 Interactions with a console may be done with
42 :dbus:iface:`org.qemu.Display1.Keyboard` and
43 :dbus:iface:`org.qemu.Display1.Mouse` interfaces when available.
45 <interface name=
"org.qemu.Display1.Console">
48 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
50 Register a console listener, which will receive display updates, until
53 Multiple listeners may be registered simultaneously.
55 The listener is expected to implement the
56 :dbus:iface:`org.qemu.Display1.Listener` interface.
58 <method name=
"RegisterListener">
59 <arg type=
"h" name=
"listener" direction=
"in"/>
64 @width_mm: the physical display width in millimeters.
65 @height_mm: the physical display height in millimeters.
66 @xoff: horizontal offset, in pixels.
67 @yoff: vertical offset, in pixels.
68 @width: console width, in pixels.
69 @height: console height, in pixels.
71 Modify the dimensions and display settings.
73 <method name=
"SetUIInfo">
74 <arg name=
"width_mm" type=
"q" direction=
"in"/>
75 <arg name=
"height_mm" type=
"q" direction=
"in"/>
76 <arg name=
"xoff" type=
"i" direction=
"in"/>
77 <arg name=
"yoff" type=
"i" direction=
"in"/>
78 <arg name=
"width" type=
"u" direction=
"in"/>
79 <arg name=
"height" type=
"u" direction=
"in"/>
85 A user-friendly name for the console (for ex: "VGA").
87 <property name=
"Label" type=
"s" access=
"read"/>
92 Graphical device head number.
94 <property name=
"Head" type=
"u" access=
"read"/>
99 Console type ("Graphic" or "Text").
101 <property name=
"Type" type=
"s" access=
"read"/>
106 Console width, in pixels.
108 <property name=
"Width" type=
"u" access=
"read"/>
113 Console height, in pixels.
115 <property name=
"Height" type=
"u" access=
"read"/>
120 The device address (ex: "pci/0000/02.0").
122 <property name=
"DeviceAddress" type=
"s" access=
"read"/>
126 org.qemu.Display1.Keyboard:
128 This interface in implemented on ``/org/qemu/Display1/Console_$id`` (see
129 :dbus:iface:`~org.qemu.Display1.Console`).
131 <interface name=
"org.qemu.Display1.Keyboard">
134 @keycode: QEMU key number (xtkbd + special re-encoding of high bit)
136 Send a key press event.
138 <method name=
"Press">
139 <arg type=
"u" name=
"keycode" direction=
"in"/>
144 @keycode: QEMU key number (xtkbd + special re-encoding of high bit)
146 Send a key release event.
148 <method name=
"Release">
149 <arg type=
"u" name=
"keycode" direction=
"in"/>
155 The active keyboard modifiers::
161 <property name=
"Modifiers" type=
"u" access=
"read"/>
165 org.qemu.Display1.Mouse:
167 This interface in implemented on ``/org/qemu/Display1/Console_$id`` (see
168 :dbus:iface:`~org.qemu.Display1.Console` documentation).
170 .. _dbus-button-values:
182 <interface name=
"org.qemu.Display1.Mouse">
185 @button: :ref:`button value<dbus-button-values>`.
187 Send a mouse button press event.
189 <method name=
"Press">
190 <arg type=
"u" name=
"button" direction=
"in"/>
195 @button: :ref:`button value<dbus-button-values>`.
197 Send a mouse button release event.
199 <method name=
"Release">
200 <arg type=
"u" name=
"button" direction=
"in"/>
205 @x: X position, in pixels.
206 @y: Y position, in pixels.
208 Set the mouse pointer position.
210 Returns an error if not :dbus:prop:`IsAbsolute`.
212 <method name=
"SetAbsPosition">
213 <arg type=
"u" name=
"x" direction=
"in"/>
214 <arg type=
"u" name=
"y" direction=
"in"/>
219 @dx: X-delta, in pixels.
220 @dy: Y-delta, in pixels.
222 Move the mouse pointer position, relative to the current position.
224 Returns an error if :dbus:prop:`IsAbsolute`.
226 <method name=
"RelMotion">
227 <arg type=
"i" name=
"dx" direction=
"in"/>
228 <arg type=
"i" name=
"dy" direction=
"in"/>
234 Whether the mouse is using absolute movements.
236 <property name=
"IsAbsolute" type=
"b" access=
"read"/>
240 org.qemu.Display1.Listener:
242 This client-side interface must be available on
243 ``/org/qemu/Display1/Listener`` when registering the peer-to-peer
244 connection with :dbus:meth:`~org.qemu.Display1.Console.Register`.
246 <interface name=
"org.qemu.Display1.Listener">
249 @width: display width, in pixels.
250 @height: display height, in pixels.
251 @stride: data stride, in bytes.
252 @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``).
255 Resize and update the display content.
257 The data to transfer for the display update may be large. The preferred
258 scanout method is :dbus:meth:`ScanoutDMABUF`, used whenever possible.
260 <method name=
"Scanout">
261 <arg type=
"u" name=
"width" direction=
"in"/>
262 <arg type=
"u" name=
"height" direction=
"in"/>
263 <arg type=
"u" name=
"stride" direction=
"in"/>
264 <arg type=
"u" name=
"pixman_format" direction=
"in"/>
265 <arg type=
"ay" name=
"data" direction=
"in">
266 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
272 @x: X update position, in pixels.
273 @y: Y update position, in pixels.
274 @width: update width, in pixels.
275 @height: update height, in pixels.
276 @stride: data stride, in bytes.
277 @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``).
278 @data: display image data.
280 Update the display content.
282 This method is only called after a :dbus:meth:`Scanout` call.
284 <method name=
"Update">
285 <arg type=
"i" name=
"x" direction=
"in"/>
286 <arg type=
"i" name=
"y" direction=
"in"/>
287 <arg type=
"i" name=
"width" direction=
"in"/>
288 <arg type=
"i" name=
"height" direction=
"in"/>
289 <arg type=
"u" name=
"stride" direction=
"in"/>
290 <arg type=
"u" name=
"pixman_format" direction=
"in"/>
291 <arg type=
"ay" name=
"data" direction=
"in">
292 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
298 @dmabuf: the DMABUF file descriptor.
299 @width: display width, in pixels.
300 @height: display height, in pixels.
301 @stride: stride, in bytes.
302 @fourcc: DMABUF fourcc.
303 @modifier: DMABUF modifier.
304 @y0_top: whether Y position 0 is the top or not.
306 Resize and update the display content with a DMABUF.
308 <method name=
"ScanoutDMABUF">
309 <arg type=
"h" name=
"dmabuf" direction=
"in"/>
310 <arg type=
"u" name=
"width" direction=
"in"/>
311 <arg type=
"u" name=
"height" direction=
"in"/>
312 <arg type=
"u" name=
"stride" direction=
"in"/>
313 <arg type=
"u" name=
"fourcc" direction=
"in"/>
315 <arg type=
"t" name=
"modifier" direction=
"in"/>
316 <arg type=
"b" name=
"y0_top" direction=
"in"/>
321 @x: the X update position, in pixels.
322 @y: the Y update position, in pixels.
323 @width: the update width, in pixels.
324 @height: the update height, in pixels.
326 Update the display content with the current DMABUF and the given region.
328 <method name=
"UpdateDMABUF">
329 <arg type=
"i" name=
"x" direction=
"in"/>
330 <arg type=
"i" name=
"y" direction=
"in"/>
331 <arg type=
"i" name=
"width" direction=
"in"/>
332 <arg type=
"i" name=
"height" direction=
"in"/>
338 Disable the display (turn it off).
340 <method name=
"Disable">
345 @x: X mouse position, in pixels.
346 @y: Y mouse position, in pixels.
347 @on: whether the mouse is visible or not.
349 Set the mouse position and visibility.
351 <method name=
"MouseSet">
352 <arg type=
"i" name=
"x" direction=
"in"/>
353 <arg type=
"i" name=
"y" direction=
"in"/>
354 <arg type=
"i" name=
"on" direction=
"in"/>
359 @width: cursor width, in pixels.
360 @height: cursor height, in pixels.
361 @hot_x: hot-spot X position, in pixels.
362 @hot_y: hot-spot Y position, in pixels.
363 @data: the cursor data.
365 Set the mouse cursor shape and hot-spot. The "data" must be ARGB, 32-bit
368 <method name=
"CursorDefine">
369 <arg type=
"i" name=
"width" direction=
"in"/>
370 <arg type=
"i" name=
"height" direction=
"in"/>
371 <arg type=
"i" name=
"hot_x" direction=
"in"/>
372 <arg type=
"i" name=
"hot_y" direction=
"in"/>
373 <arg type=
"ay" name=
"data" direction=
"in">
374 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
380 org.qemu.Display1.Audio:
382 Audio backend may be available on ``/org/qemu/Display1/Audio``.
384 <interface name=
"org.qemu.Display1.Audio">
387 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
389 Register an audio backend playback handler.
391 Multiple listeners may be registered simultaneously.
393 The listener is expected to implement the
394 :dbus:iface:`org.qemu.Display1.AudioOutListener` interface.
396 <method name=
"RegisterOutListener">
397 <arg type=
"h" name=
"listener" direction=
"in"/>
402 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
404 Register an audio backend record handler.
406 Multiple listeners may be registered simultaneously.
408 The listener is expected to implement the
409 :dbus:iface:`org.qemu.Display1.AudioInListener` interface.
411 <method name=
"RegisterInListener">
412 <arg type=
"h" name=
"listener" direction=
"in"/>
417 org.qemu.Display1.AudioOutListener:
419 This client-side interface must be available on
420 ``/org/qemu/Display1/AudioOutListener`` when registering the peer-to-peer
421 connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterOutListener`.
423 <interface name=
"org.qemu.Display1.AudioOutListener">
427 @bits: PCM bits per sample.
428 @is_signed: whether the PCM data is signed.
429 @is_float: PCM floating point format.
430 @freq: the PCM frequency in Hz.
431 @nchannels: the number of channels.
432 @bytes_per_frame: the bytes per frame.
433 @bytes_per_second: the bytes per second.
434 @be: whether using big-endian format.
436 Initializes a PCM playback stream.
439 <arg name=
"id" type=
"t" direction=
"in"/>
440 <arg name=
"bits" type=
"y" direction=
"in"/>
441 <arg name=
"is_signed" type=
"b" direction=
"in"/>
442 <arg name=
"is_float" type=
"b" direction=
"in"/>
443 <arg name=
"freq" type=
"u" direction=
"in"/>
444 <arg name=
"nchannels" type=
"y" direction=
"in"/>
445 <arg name=
"bytes_per_frame" type=
"u" direction=
"in"/>
446 <arg name=
"bytes_per_second" type=
"u" direction=
"in"/>
447 <arg name=
"be" type=
"b" direction=
"in"/>
454 Finish & close a playback stream.
457 <arg name=
"id" type=
"t" direction=
"in"/>
464 Resume or suspend the playback stream.
466 <method name=
"SetEnabled">
467 <arg name=
"id" type=
"t" direction=
"in"/>
468 <arg name=
"enabled" type=
"b" direction=
"in"/>
474 @mute: whether the stream is muted.
475 @volume: the volume per-channel.
477 Set the stream volume and mute state (volume without unit, 0-255).
479 <method name=
"SetVolume">
480 <arg name=
"id" type=
"t" direction=
"in"/>
481 <arg name=
"mute" type=
"b" direction=
"in"/>
482 <arg name=
"volume" type=
"ay" direction=
"in">
483 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
494 <method name=
"Write">
495 <arg name=
"id" type=
"t" direction=
"in"/>
496 <arg type=
"ay" name=
"data" direction=
"in">
497 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
503 org.qemu.Display1.AudioInListener:
505 This client-side interface must be available on
506 ``/org/qemu/Display1/AudioInListener`` when registering the peer-to-peer
507 connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterInListener`.
509 <interface name=
"org.qemu.Display1.AudioInListener">
513 @bits: PCM bits per sample.
514 @is_signed: whether the PCM data is signed.
515 @is_float: PCM floating point format.
516 @freq: the PCM frequency in Hz.
517 @nchannels: the number of channels.
518 @bytes_per_frame: the bytes per frame.
519 @bytes_per_second: the bytes per second.
520 @be: whether using big-endian format.
522 Initializes a PCM record stream.
525 <arg name=
"id" type=
"t" direction=
"in"/>
526 <arg name=
"bits" type=
"y" direction=
"in"/>
527 <arg name=
"is_signed" type=
"b" direction=
"in"/>
528 <arg name=
"is_float" type=
"b" direction=
"in"/>
529 <arg name=
"freq" type=
"u" direction=
"in"/>
530 <arg name=
"nchannels" type=
"y" direction=
"in"/>
531 <arg name=
"bytes_per_frame" type=
"u" direction=
"in"/>
532 <arg name=
"bytes_per_second" type=
"u" direction=
"in"/>
533 <arg name=
"be" type=
"b" direction=
"in"/>
540 Finish & close a record stream.
543 <arg name=
"id" type=
"t" direction=
"in"/>
550 Resume or suspend the record stream.
552 <method name=
"SetEnabled">
553 <arg name=
"id" type=
"t" direction=
"in"/>
554 <arg name=
"enabled" type=
"b" direction=
"in"/>
560 @mute: whether the stream is muted.
561 @volume: the volume per-channel.
563 Set the stream volume and mute state (volume without unit, 0-255).
565 <method name=
"SetVolume">
566 <arg name=
"id" type=
"t" direction=
"in"/>
567 <arg name=
"mute" type=
"b" direction=
"in"/>
568 <arg name=
"volume" type=
"ay" direction=
"in">
569 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>
576 @size: the amount to read, in bytes.
577 @data: the recorded data (which may be less than requested).
579 Read "size" bytes from the record stream.
582 <arg name=
"id" type=
"t" direction=
"in"/>
583 <arg name=
"size" type=
"t" direction=
"in"/>
584 <arg type=
"ay" name=
"data" direction=
"out">
585 <annotation name=
"org.gtk.GDBus.C.ForceGVariant" value=
"true"/>