]> git.proxmox.com Git - mirror_qemu.git/blame - ui/dbus-display1.xml
hw/fsi: Update MAINTAINER list
[mirror_qemu.git] / ui / dbus-display1.xml
CommitLineData
142ca628
MAL
1<?xml version="1.0" encoding="utf-8"?>
2<node>
3 <!--
4 org.qemu.Display1.VM:
5
6 This interface is implemented on ``/org/qemu/Display1/VM``.
7 -->
8 <interface name="org.qemu.Display1.VM">
9 <!--
10 Name:
11
12 The name of the VM.
13 -->
14 <property name="Name" type="s" access="read"/>
15
16 <!--
17 UUID:
18
19 The UUID of the VM.
20 -->
21 <property name="UUID" type="s" access="read"/>
22
23 <!--
24 ConsoleIDs:
25
26 The list of consoles available on ``/org/qemu/Display1/Console_$id``.
27 -->
28 <property name="ConsoleIDs" type="au" access="read"/>
439e0164
MAL
29
30 <!--
31 Interfaces:
32
33 This property lists extra interfaces provided by the
34 /org/qemu/Display1/VM object, and can be used to detect
35 the capabilities with which they are communicating.
36
37 Unlike the standard D-Bus Introspectable interface, querying this
38 property does not require parsing XML.
39
40 (earlier version of the display interface do not provide this property)
41 -->
42 <property name="Interfaces" type="as" access="read"/>
142ca628
MAL
43 </interface>
44
45 <!--
46 org.qemu.Display1.Console:
47
48 This interface is implemented on ``/org/qemu/Display1/Console_$id``. You
49 may discover available consoles through introspection or with the
50 :dbus:prop:`org.qemu.Display1.VM.ConsoleIDs` property.
51
52 A console is attached to a video device head. It may be "Graphic" or
53 "Text" (see :dbus:prop:`Type` and other properties).
54
55 Interactions with a console may be done with
de9f844c
BE
56 :dbus:iface:`org.qemu.Display1.Keyboard`,
57 :dbus:iface:`org.qemu.Display1.Mouse` and
58 :dbus:iface:`org.qemu.Display1.MultiTouch` interfaces when available.
142ca628
MAL
59 -->
60 <interface name="org.qemu.Display1.Console">
61 <!--
62 RegisterListener:
63 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
64
65 Register a console listener, which will receive display updates, until
66 it is disconnected.
67
68 Multiple listeners may be registered simultaneously.
69
70 The listener is expected to implement the
71 :dbus:iface:`org.qemu.Display1.Listener` interface.
72 -->
73 <method name="RegisterListener">
d0cda6f4 74 <?if $(env.HOST_OS) == windows?>
6cc5a615
MAL
75 <arg type="ay" name="listener" direction="in">
76 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
77 </arg>
78 <?else?>
142ca628 79 <arg type="h" name="listener" direction="in"/>
6cc5a615 80 <?endif?>
142ca628
MAL
81 </method>
82
83 <!--
84 SetUIInfo:
85 @width_mm: the physical display width in millimeters.
86 @height_mm: the physical display height in millimeters.
87 @xoff: horizontal offset, in pixels.
88 @yoff: vertical offset, in pixels.
89 @width: console width, in pixels.
90 @height: console height, in pixels.
91
92 Modify the dimensions and display settings.
93 -->
94 <method name="SetUIInfo">
95 <arg name="width_mm" type="q" direction="in"/>
96 <arg name="height_mm" type="q" direction="in"/>
97 <arg name="xoff" type="i" direction="in"/>
98 <arg name="yoff" type="i" direction="in"/>
99 <arg name="width" type="u" direction="in"/>
100 <arg name="height" type="u" direction="in"/>
101 </method>
102
103 <!--
104 Label:
105
106 A user-friendly name for the console (for ex: "VGA").
107 -->
108 <property name="Label" type="s" access="read"/>
109
110 <!--
111 Head:
112
113 Graphical device head number.
114 -->
115 <property name="Head" type="u" access="read"/>
116
117 <!--
118 Type:
119
120 Console type ("Graphic" or "Text").
121 -->
122 <property name="Type" type="s" access="read"/>
123
124 <!--
125 Width:
126
127 Console width, in pixels.
128 -->
129 <property name="Width" type="u" access="read"/>
130
131 <!--
132 Height:
133
134 Console height, in pixels.
135 -->
136 <property name="Height" type="u" access="read"/>
137
138 <!--
139 DeviceAddress:
140
141 The device address (ex: "pci/0000/02.0").
142 -->
143 <property name="DeviceAddress" type="s" access="read"/>
439e0164
MAL
144
145 <!--
146 Interfaces:
147
148 This property lists extra interfaces provided by the
149 ``/org/qemu/Display1/Console_$id`` object, and can be used to detect the
150 capabilities with which they are communicating.
151
152 Unlike the standard D-Bus Introspectable interface, querying this
153 property does not require parsing XML.
154
155 (earlier version of the display interface do not provide this property)
156 -->
157 <property name="Interfaces" type="as" access="read"/>
142ca628
MAL
158 </interface>
159
160 <!--
161 org.qemu.Display1.Keyboard:
162
439e0164
MAL
163 This interface is optionally implemented on
164 ``/org/qemu/Display1/Console_$id`` (see
142ca628
MAL
165 :dbus:iface:`~org.qemu.Display1.Console`).
166 -->
167 <interface name="org.qemu.Display1.Keyboard">
168 <!--
169 Press:
170 @keycode: QEMU key number (xtkbd + special re-encoding of high bit)
171
172 Send a key press event.
173 -->
174 <method name="Press">
175 <arg type="u" name="keycode" direction="in"/>
176 </method>
177
178 <!--
179 Release:
180 @keycode: QEMU key number (xtkbd + special re-encoding of high bit)
181
182 Send a key release event.
183 -->
184 <method name="Release">
185 <arg type="u" name="keycode" direction="in"/>
186 </method>
187
188 <!--
189 Modifiers:
190
191 The active keyboard modifiers::
192
193 Scroll = 1 << 0
194 Num = 1 << 1
195 Caps = 1 << 2
196 -->
197 <property name="Modifiers" type="u" access="read"/>
198 </interface>
199
200 <!--
201 org.qemu.Display1.Mouse:
202
439e0164
MAL
203 This interface is optionally implemented on
204 ``/org/qemu/Display1/Console_$id`` (see
142ca628
MAL
205 :dbus:iface:`~org.qemu.Display1.Console` documentation).
206
207 .. _dbus-button-values:
208
209 **Button values**::
210
211 Left = 0
212 Middle = 1
213 Right = 2
214 Wheel-up = 3
215 Wheel-down = 4
216 Side = 5
217 Extra = 6
218 -->
219 <interface name="org.qemu.Display1.Mouse">
220 <!--
221 Press:
222 @button: :ref:`button value<dbus-button-values>`.
223
224 Send a mouse button press event.
225 -->
226 <method name="Press">
227 <arg type="u" name="button" direction="in"/>
228 </method>
229
230 <!--
231 Release:
232 @button: :ref:`button value<dbus-button-values>`.
233
234 Send a mouse button release event.
235 -->
236 <method name="Release">
237 <arg type="u" name="button" direction="in"/>
238 </method>
239
240 <!--
241 SetAbsPosition:
242 @x: X position, in pixels.
243 @y: Y position, in pixels.
244
245 Set the mouse pointer position.
246
247 Returns an error if not :dbus:prop:`IsAbsolute`.
248 -->
249 <method name="SetAbsPosition">
250 <arg type="u" name="x" direction="in"/>
251 <arg type="u" name="y" direction="in"/>
252 </method>
253
254 <!--
255 RelMotion:
256 @dx: X-delta, in pixels.
257 @dy: Y-delta, in pixels.
258
259 Move the mouse pointer position, relative to the current position.
260
261 Returns an error if :dbus:prop:`IsAbsolute`.
262 -->
263 <method name="RelMotion">
264 <arg type="i" name="dx" direction="in"/>
265 <arg type="i" name="dy" direction="in"/>
266 </method>
267
268 <!--
269 IsAbsolute:
270
271 Whether the mouse is using absolute movements.
272 -->
273 <property name="IsAbsolute" type="b" access="read"/>
274 </interface>
275
de9f844c
BE
276 <!--
277 org.qemu.Display1.MultiTouch:
278
279 This interface in implemented on ``/org/qemu/Display1/Console_$id`` (see
280 :dbus:iface:`~org.qemu.Display1.Console` documentation).
281
282 .. _dbus-kind-values:
283
284 **Kind values**::
285
286 Begin = 0
287 Update = 1
288 End = 2
289 Cancel = 3
290 -->
291 <interface name="org.qemu.Display1.MultiTouch">
292 <!--
293 SendEvent:
294 @kind: The touch event kind
295 @num_slot: The slot number.
296 @x: The x coordinates.
297 @y: The y coordinates.
298
299 Send a touch gesture event.
300 -->
301 <method name="SendEvent">
302 <arg type="u" name="kind" direction="in"/>
303 <arg type="t" name="num_slot" direction="in"/>
304 <arg type="d" name="x" direction="in"/>
305 <arg type="d" name="y" direction="in"/>
306 </method>
307
308 <!--
309 MaxSlots:
310
311 The maximum number of slots.
312 -->
313 <property name="MaxSlots" type="i" access="read"/>
314 </interface>
315
142ca628
MAL
316 <!--
317 org.qemu.Display1.Listener:
318
319 This client-side interface must be available on
320 ``/org/qemu/Display1/Listener`` when registering the peer-to-peer
321 connection with :dbus:meth:`~org.qemu.Display1.Console.Register`.
322 -->
323 <interface name="org.qemu.Display1.Listener">
324 <!--
325 Scanout:
326 @width: display width, in pixels.
327 @height: display height, in pixels.
328 @stride: data stride, in bytes.
329 @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``).
330 @data: image data.
331
332 Resize and update the display content.
333
334 The data to transfer for the display update may be large. The preferred
335 scanout method is :dbus:meth:`ScanoutDMABUF`, used whenever possible.
336 -->
337 <method name="Scanout">
338 <arg type="u" name="width" direction="in"/>
339 <arg type="u" name="height" direction="in"/>
340 <arg type="u" name="stride" direction="in"/>
341 <arg type="u" name="pixman_format" direction="in"/>
342 <arg type="ay" name="data" direction="in">
343 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
344 </arg>
345 </method>
346
347 <!--
348 Update:
349 @x: X update position, in pixels.
350 @y: Y update position, in pixels.
351 @width: update width, in pixels.
352 @height: update height, in pixels.
353 @stride: data stride, in bytes.
354 @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``).
355 @data: display image data.
356
357 Update the display content.
358
359 This method is only called after a :dbus:meth:`Scanout` call.
360 -->
361 <method name="Update">
362 <arg type="i" name="x" direction="in"/>
363 <arg type="i" name="y" direction="in"/>
364 <arg type="i" name="width" direction="in"/>
365 <arg type="i" name="height" direction="in"/>
366 <arg type="u" name="stride" direction="in"/>
367 <arg type="u" name="pixman_format" direction="in"/>
368 <arg type="ay" name="data" direction="in">
369 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
370 </arg>
371 </method>
372
d0cda6f4 373 <?if $(env.HOST_OS) != windows?>
142ca628
MAL
374 <!--
375 ScanoutDMABUF:
376 @dmabuf: the DMABUF file descriptor.
377 @width: display width, in pixels.
378 @height: display height, in pixels.
379 @stride: stride, in bytes.
380 @fourcc: DMABUF fourcc.
381 @modifier: DMABUF modifier.
382 @y0_top: whether Y position 0 is the top or not.
383
384 Resize and update the display content with a DMABUF.
385 -->
386 <method name="ScanoutDMABUF">
387 <arg type="h" name="dmabuf" direction="in"/>
388 <arg type="u" name="width" direction="in"/>
389 <arg type="u" name="height" direction="in"/>
390 <arg type="u" name="stride" direction="in"/>
391 <arg type="u" name="fourcc" direction="in"/>
392 <!-- xywh? -->
393 <arg type="t" name="modifier" direction="in"/>
394 <arg type="b" name="y0_top" direction="in"/>
395 </method>
396
397 <!--
398 UpdateDMABUF:
399 @x: the X update position, in pixels.
400 @y: the Y update position, in pixels.
401 @width: the update width, in pixels.
402 @height: the update height, in pixels.
403
404 Update the display content with the current DMABUF and the given region.
405 -->
406 <method name="UpdateDMABUF">
407 <arg type="i" name="x" direction="in"/>
408 <arg type="i" name="y" direction="in"/>
409 <arg type="i" name="width" direction="in"/>
410 <arg type="i" name="height" direction="in"/>
411 </method>
6cc5a615 412 <?endif?>
142ca628
MAL
413
414 <!--
415 Disable:
416
417 Disable the display (turn it off).
418 -->
419 <method name="Disable">
420 </method>
421
422 <!--
423 MouseSet:
424 @x: X mouse position, in pixels.
425 @y: Y mouse position, in pixels.
426 @on: whether the mouse is visible or not.
427
428 Set the mouse position and visibility.
429 -->
430 <method name="MouseSet">
431 <arg type="i" name="x" direction="in"/>
432 <arg type="i" name="y" direction="in"/>
433 <arg type="i" name="on" direction="in"/>
434 </method>
435
436 <!--
437 CursorDefine:
438 @width: cursor width, in pixels.
439 @height: cursor height, in pixels.
440 @hot_x: hot-spot X position, in pixels.
441 @hot_y: hot-spot Y position, in pixels.
442 @data: the cursor data.
443
444 Set the mouse cursor shape and hot-spot. The "data" must be ARGB, 32-bit
445 per pixel.
446 -->
447 <method name="CursorDefine">
448 <arg type="i" name="width" direction="in"/>
449 <arg type="i" name="height" direction="in"/>
450 <arg type="i" name="hot_x" direction="in"/>
451 <arg type="i" name="hot_y" direction="in"/>
452 <arg type="ay" name="data" direction="in">
453 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
454 </arg>
455 </method>
439e0164
MAL
456
457 <!--
458 Interfaces:
459
460 This property lists extra interfaces provided by the
461 /org/qemu/Display1/Listener object, and can be used to detect
462 the capabilities with which they are communicating.
463
464 Unlike the standard D-Bus Introspectable interface, querying this
465 property does not require parsing XML.
466
467 (earlier version of the display interface do not provide this property)
468 -->
469 <property name="Interfaces" type="as" access="read"/>
142ca628 470 </interface>
739362d4 471
48dddba1
MAL
472 <!--
473 org.qemu.Display1.Listener.Win32.Map:
474
de1f8ce0
MAL
475 This optional client-side interface can complement
476 org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for Windows
477 specific shared memory scanouts.
48dddba1
MAL
478 -->
479 <interface name="org.qemu.Display1.Listener.Win32.Map">
480 <!--
481 ScanoutMap:
482 @handle: the shared map handle value.
483 @offset: mapping offset.
484 @width: display width, in pixels.
485 @height: display height, in pixels.
486 @stride: stride, in bytes.
487 @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``).
488
489 Resize and update the display content with a shared map.
490 -->
491 <method name="ScanoutMap">
492 <arg type="t" name="handle" direction="in"/>
493 <arg type="u" name="offset" direction="in"/>
494 <arg type="u" name="width" direction="in"/>
495 <arg type="u" name="height" direction="in"/>
496 <arg type="u" name="stride" direction="in"/>
497 <arg type="u" name="pixman_format" direction="in"/>
498 </method>
499
500 <!--
501 UpdateMap:
502 @x: the X update position, in pixels.
503 @y: the Y update position, in pixels.
504 @width: the update width, in pixels.
505 @height: the update height, in pixels.
506
507 Update the display content with the current shared map and the given region.
508 -->
509 <method name="UpdateMap">
510 <arg type="i" name="x" direction="in"/>
511 <arg type="i" name="y" direction="in"/>
512 <arg type="i" name="width" direction="in"/>
513 <arg type="i" name="height" direction="in"/>
514 </method>
de1f8ce0
MAL
515 </interface>
516
517 <!--
518 org.qemu.Display1.Listener.Win32.D3d11:
519
520 This optional client-side interface can complement
521 org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for Windows
522 specific Direct3D texture sharing of the scanouts.
523 -->
524 <interface name="org.qemu.Display1.Listener.Win32.D3d11">
525 <!--
526 ScanoutTexture2d:
527 @handle: the NT handle for the shared texture (to be opened back with ID3D11Device1::OpenSharedResource1).
528 @texture_width: texture width, in pixels.
529 @texture_height: texture height, in pixels.
530 @y0_top: whether Y position 0 is the top or not.
531 @x: the X scanout position, in pixels.
532 @y: the Y scanout position, in pixels.
533 @width: the scanout width, in pixels.
534 @height: the scanout height, in pixels.
535
536 Resize and update the display content with a Direct3D 11 2D texture.
537 You must acquire and release the associated KeyedMutex 0 during rendering.
538 -->
539 <method name="ScanoutTexture2d">
540 <arg type="t" name="handle" direction="in"/>
541 <arg type="u" name="texture_width" direction="in"/>
542 <arg type="u" name="texture_height" direction="in"/>
543 <arg type="b" name="y0_top" direction="in"/>
544 <arg type="u" name="x" direction="in"/>
545 <arg type="u" name="y" direction="in"/>
546 <arg type="u" name="width" direction="in"/>
547 <arg type="u" name="height" direction="in"/>
548 </method>
549
550 <!--
551 UpdateTexture2d:
552 @x: the X update position, in pixels.
553 @y: the Y update position, in pixels.
554 @width: the update width, in pixels.
555 @height: the update height, in pixels.
556
557 Update the display content with the current Direct3D 2D texture and the given region.
558 You must acquire and release the associated KeyedMutex 0 during rendering.
559 -->
560 <method name="UpdateTexture2d">
561 <arg type="i" name="x" direction="in"/>
562 <arg type="i" name="y" direction="in"/>
563 <arg type="i" name="width" direction="in"/>
564 <arg type="i" name="height" direction="in"/>
565 </method>
48dddba1
MAL
566 </interface>
567
ff1a5810
MAL
568 <!--
569 org.qemu.Display1.Clipboard:
570
571 This interface must be implemented by both the client and the server on
572 ``/org/qemu/Display1/Clipboard`` to support clipboard sharing between
573 the client and the guest.
574
575 Once :dbus:meth:`Register`'ed, method calls may be sent and received in both
576 directions. Unregistered callers will get error replies.
577
578 .. _dbus-clipboard-selection:
579
580 **Selection values**::
581
582 Clipboard = 0
583 Primary = 1
584 Secondary = 2
585
586 .. _dbus-clipboard-serial:
587
588 **Serial counter**
589
590 To solve potential clipboard races, clipboard grabs have an associated
591 serial counter. It is set to 0 on registration, and incremented by 1 for
592 each grab. The peer with the highest serial is the clipboard grab owner.
593
594 When a grab with a lower serial is received, it should be discarded.
595
596 When a grab is attempted with the same serial number as the current grab,
597 the one coming from the client should have higher priority, and the client
598 should gain clipboard grab ownership.
599 -->
600 <interface name="org.qemu.Display1.Clipboard">
601 <!--
602 Register:
603
604 Register a clipboard session and reinitialize the serial counter.
605
606 The client must register itself, and is granted an exclusive
607 access for handling the clipboard.
608
609 The server can reinitialize the session as well (to reset the counter).
610 -->
611 <method name="Register"/>
612
613 <!--
614 Unregister:
615
616 Unregister the clipboard session.
617 -->
618 <method name="Unregister"/>
619 <!--
620 Grab:
621 @selection: a :ref:`selection value<dbus-clipboard-selection>`.
622 @serial: the current grab :ref:`serial<dbus-clipboard-serial>`.
623 @mimes: the list of available content MIME types.
624
625 Grab the clipboard, claiming current clipboard content.
626 -->
627 <method name="Grab">
628 <arg type="u" name="selection"/>
629 <arg type="u" name="serial"/>
630 <arg type="as" name="mimes"/>
631 </method>
632
633 <!--
634 Release:
635 @selection: a :ref:`selection value<dbus-clipboard-selection>`.
636
637 Release the clipboard (does nothing if not the current owner).
638 -->
639 <method name="Release">
640 <arg type="u" name="selection"/>
641 </method>
642
643 <!--
644 Request:
645 @selection: a :ref:`selection value<dbus-clipboard-selection>`
646 @mimes: requested MIME types (by order of preference).
647 @reply_mime: the returned data MIME type.
648 @data: the clipboard data.
649
650 Request the clipboard content.
651
652 Return an error if the clipboard is empty, or the requested MIME types
653 are unavailable.
654 -->
655 <method name="Request">
656 <arg type="u" name="selection"/>
657 <arg type="as" name="mimes"/>
658 <arg type="s" name="reply_mime" direction="out"/>
659 <arg type="ay" name="data" direction="out">
660 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
661 </arg>
662 </method>
439e0164
MAL
663
664 <!--
665 Interfaces:
666
667 This property lists extra interfaces provided by the
668 /org/qemu/Display1/Clipboard object, and can be used to detect
669 the capabilities with which they are communicating.
670
671 Unlike the standard D-Bus Introspectable interface, querying this
672 property does not require parsing XML.
673
674 (earlier version of the display interface do not provide this property)
675 -->
676 <property name="Interfaces" type="as" access="read"/>
ff1a5810
MAL
677 </interface>
678
739362d4
MAL
679 <!--
680 org.qemu.Display1.Audio:
681
682 Audio backend may be available on ``/org/qemu/Display1/Audio``.
683 -->
684 <interface name="org.qemu.Display1.Audio">
685 <!--
686 RegisterOutListener:
687 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
688
689 Register an audio backend playback handler.
690
691 Multiple listeners may be registered simultaneously.
692
693 The listener is expected to implement the
694 :dbus:iface:`org.qemu.Display1.AudioOutListener` interface.
695 -->
696 <method name="RegisterOutListener">
d0cda6f4 697 <?if $(env.HOST_OS) == windows?>
6cc5a615
MAL
698 <arg type="ay" name="listener" direction="in">
699 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
700 </arg>
701 <?else?>
739362d4 702 <arg type="h" name="listener" direction="in"/>
6cc5a615 703 <?endif?>
739362d4
MAL
704 </method>
705
706 <!--
707 RegisterInListener:
708 @listener: a Unix socket FD, for peer-to-peer D-Bus communication.
709
710 Register an audio backend record handler.
711
712 Multiple listeners may be registered simultaneously.
713
714 The listener is expected to implement the
715 :dbus:iface:`org.qemu.Display1.AudioInListener` interface.
716 -->
717 <method name="RegisterInListener">
d0cda6f4 718 <?if $(env.HOST_OS) == windows?>
6cc5a615
MAL
719 <arg type="ay" name="listener" direction="in">
720 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
721 </arg>
722 <?else?>
739362d4 723 <arg type="h" name="listener" direction="in"/>
6cc5a615 724 <?endif?>
739362d4 725 </method>
439e0164
MAL
726
727 <!--
728 Interfaces:
729
730 This property lists extra interfaces provided by the
731 /org/qemu/Display1/Audio object, and can be used to detect
732 the capabilities with which they are communicating.
733
734 Unlike the standard D-Bus Introspectable interface, querying this
735 property does not require parsing XML.
736
737 (earlier version of the display interface do not provide this property)
738 -->
739 <property name="Interfaces" type="as" access="read"/>
739362d4
MAL
740 </interface>
741
742 <!--
743 org.qemu.Display1.AudioOutListener:
744
745 This client-side interface must be available on
746 ``/org/qemu/Display1/AudioOutListener`` when registering the peer-to-peer
747 connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterOutListener`.
748 -->
749 <interface name="org.qemu.Display1.AudioOutListener">
750 <!--
751 Init:
752 @id: the stream ID.
753 @bits: PCM bits per sample.
754 @is_signed: whether the PCM data is signed.
755 @is_float: PCM floating point format.
756 @freq: the PCM frequency in Hz.
757 @nchannels: the number of channels.
758 @bytes_per_frame: the bytes per frame.
759 @bytes_per_second: the bytes per second.
760 @be: whether using big-endian format.
761
762 Initializes a PCM playback stream.
763 -->
764 <method name="Init">
765 <arg name="id" type="t" direction="in"/>
766 <arg name="bits" type="y" direction="in"/>
767 <arg name="is_signed" type="b" direction="in"/>
768 <arg name="is_float" type="b" direction="in"/>
769 <arg name="freq" type="u" direction="in"/>
770 <arg name="nchannels" type="y" direction="in"/>
771 <arg name="bytes_per_frame" type="u" direction="in"/>
772 <arg name="bytes_per_second" type="u" direction="in"/>
773 <arg name="be" type="b" direction="in"/>
774 </method>
775
776 <!--
777 Fini:
778 @id: the stream ID.
779
780 Finish & close a playback stream.
781 -->
782 <method name="Fini">
783 <arg name="id" type="t" direction="in"/>
784 </method>
785
786 <!--
787 SetEnabled:
788 @id: the stream ID.
789
790 Resume or suspend the playback stream.
791 -->
792 <method name="SetEnabled">
793 <arg name="id" type="t" direction="in"/>
794 <arg name="enabled" type="b" direction="in"/>
795 </method>
796
797 <!--
798 SetVolume:
799 @id: the stream ID.
800 @mute: whether the stream is muted.
801 @volume: the volume per-channel.
802
803 Set the stream volume and mute state (volume without unit, 0-255).
804 -->
805 <method name="SetVolume">
806 <arg name="id" type="t" direction="in"/>
807 <arg name="mute" type="b" direction="in"/>
808 <arg name="volume" type="ay" direction="in">
809 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
810 </arg>
811 </method>
812
813 <!--
814 Write:
815 @id: the stream ID.
816 @data: the PCM data.
817
818 PCM stream to play.
819 -->
820 <method name="Write">
821 <arg name="id" type="t" direction="in"/>
822 <arg type="ay" name="data" direction="in">
823 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
824 </arg>
825 </method>
439e0164
MAL
826
827 <!--
828 Interfaces:
829
830 This property lists extra interfaces provided by the
831 /org/qemu/Display1/AudioOutListener object, and can be used to detect
832 the capabilities with which they are communicating.
833
834 Unlike the standard D-Bus Introspectable interface, querying this
835 property does not require parsing XML.
836
837 (earlier version of the display interface do not provide this property)
838 -->
839 <property name="Interfaces" type="as" access="read"/>
739362d4
MAL
840 </interface>
841
842 <!--
843 org.qemu.Display1.AudioInListener:
844
845 This client-side interface must be available on
846 ``/org/qemu/Display1/AudioInListener`` when registering the peer-to-peer
847 connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterInListener`.
848 -->
849 <interface name="org.qemu.Display1.AudioInListener">
850 <!--
851 Init:
852 @id: the stream ID.
853 @bits: PCM bits per sample.
854 @is_signed: whether the PCM data is signed.
855 @is_float: PCM floating point format.
856 @freq: the PCM frequency in Hz.
857 @nchannels: the number of channels.
858 @bytes_per_frame: the bytes per frame.
859 @bytes_per_second: the bytes per second.
860 @be: whether using big-endian format.
861
862 Initializes a PCM record stream.
863 -->
864 <method name="Init">
865 <arg name="id" type="t" direction="in"/>
866 <arg name="bits" type="y" direction="in"/>
867 <arg name="is_signed" type="b" direction="in"/>
868 <arg name="is_float" type="b" direction="in"/>
869 <arg name="freq" type="u" direction="in"/>
870 <arg name="nchannels" type="y" direction="in"/>
871 <arg name="bytes_per_frame" type="u" direction="in"/>
872 <arg name="bytes_per_second" type="u" direction="in"/>
873 <arg name="be" type="b" direction="in"/>
874 </method>
875
876 <!--
877 Fini:
878 @id: the stream ID.
879
880 Finish & close a record stream.
881 -->
882 <method name="Fini">
883 <arg name="id" type="t" direction="in"/>
884 </method>
885
886 <!--
887 SetEnabled:
888 @id: the stream ID.
889
890 Resume or suspend the record stream.
891 -->
892 <method name="SetEnabled">
893 <arg name="id" type="t" direction="in"/>
894 <arg name="enabled" type="b" direction="in"/>
895 </method>
896
897 <!--
898 SetVolume:
899 @id: the stream ID.
900 @mute: whether the stream is muted.
901 @volume: the volume per-channel.
902
903 Set the stream volume and mute state (volume without unit, 0-255).
904 -->
905 <method name="SetVolume">
906 <arg name="id" type="t" direction="in"/>
907 <arg name="mute" type="b" direction="in"/>
908 <arg name="volume" type="ay" direction="in">
909 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
910 </arg>
911 </method>
912
913 <!--
914 Read:
915 @id: the stream ID.
916 @size: the amount to read, in bytes.
917 @data: the recorded data (which may be less than requested).
918
919 Read "size" bytes from the record stream.
920 -->
921 <method name="Read">
922 <arg name="id" type="t" direction="in"/>
923 <arg name="size" type="t" direction="in"/>
924 <arg type="ay" name="data" direction="out">
925 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
926 </arg>
927 </method>
439e0164
MAL
928
929 <!--
930 Interfaces:
931
932 This property lists extra interfaces provided by the
933 /org/qemu/Display1/AudioInListener object, and can be used to detect
934 the capabilities with which they are communicating.
935
936 Unlike the standard D-Bus Introspectable interface, querying this
937 property does not require parsing XML.
938
939 (earlier version of the display interface do not provide this property)
940 -->
941 <property name="Interfaces" type="as" access="read"/>
739362d4 942 </interface>
3e301c8d
MAL
943
944 <!--
945 org.qemu.Display1.Chardev:
946
947 Character devices may be available on ``/org/qemu/Display1/Chardev_$id``.
948
949 They may be used for different kind of streams, which are identified via
950 their FQDN :dbus:prop:`Name`.
951
952 .. _dbus-chardev-fqdn:
953
954 Here are some known reserved kind names (the ``org.qemu`` prefix is
955 reserved by QEMU):
956
957 org.qemu.console.serial.0
958 A serial console stream.
959
960 org.qemu.monitor.hmp.0
961 A QEMU HMP human monitor.
962
963 org.qemu.monitor.qmp.0
964 A QEMU QMP monitor.
965
966 org.qemu.usbredir
967 A usbredir stream.
968 -->
969 <interface name="org.qemu.Display1.Chardev">
970 <!--
971 Register:
972 @stream: a Unix FD to redirect the stream to.
973
974 Register a file-descriptor for the stream handling.
975
976 The current handler, if any, will be replaced.
977 -->
978 <method name="Register">
d0cda6f4 979 <?if $(env.HOST_OS) == windows?>
6cc5a615
MAL
980 <arg type="ay" name="listener" direction="in">
981 <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
982 </arg>
983 <?else?>
3e301c8d 984 <arg type="h" name="stream" direction="in"/>
6cc5a615 985 <?endif?>
3e301c8d
MAL
986 </method>
987
988 <!--
989 SendBreak:
990
991 Send a break event to the character device.
992 -->
993 <method name="SendBreak"/>
994
995 <!--
996 Name:
997
998 The FQDN name to identify the kind of stream. See :ref:`reserved
999 names<dbus-chardev-fqdn>`.
1000 -->
1001 <property name="Name" type="s" access="read"/>
1002
1003 <!--
1004 FEOpened:
1005
1006 Whether the front-end side is opened.
1007 -->
1008 <property name="FEOpened" type="b" access="read"/>
1009
1010 <!--
1011 Echo:
1012
1013 Whether the input should be echo'ed (for serial streams).
1014 -->
1015 <property name="Echo" type="b" access="read"/>
1016
1017 <!--
1018 Owner:
1019
1020 The D-Bus unique name of the registered handler.
1021 -->
1022 <property name="Owner" type="s" access="read"/>
439e0164
MAL
1023
1024 <!--
1025 Interfaces:
1026
1027 This property lists extra interfaces provided by the
1028 ``/org/qemu/Display1/Chardev_$i`` object, and can be used to detect
1029 the capabilities with which they are communicating.
1030
1031 Unlike the standard D-Bus Introspectable interface, querying this
1032 property does not require parsing XML.
1033
1034 (earlier version of the display interface do not provide this property)
1035 -->
1036 <property name="Interfaces" type="as" access="read"/>
3e301c8d 1037 </interface>
142ca628 1038</node>