]>
Commit | Line | Data |
---|---|---|
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"> | |
6cc5a615 MAL |
74 | <?if $(env.TARGETOS) == windows?> |
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 | ||
6cc5a615 MAL |
373 | <?if $(env.TARGETOS) == windows?> |
374 | <!-- Add shared memory/texture support --> | |
375 | <?else?> | |
142ca628 MAL |
376 | <!-- |
377 | ScanoutDMABUF: | |
378 | @dmabuf: the DMABUF file descriptor. | |
379 | @width: display width, in pixels. | |
380 | @height: display height, in pixels. | |
381 | @stride: stride, in bytes. | |
382 | @fourcc: DMABUF fourcc. | |
383 | @modifier: DMABUF modifier. | |
384 | @y0_top: whether Y position 0 is the top or not. | |
385 | ||
386 | Resize and update the display content with a DMABUF. | |
387 | --> | |
388 | <method name="ScanoutDMABUF"> | |
389 | <arg type="h" name="dmabuf" direction="in"/> | |
390 | <arg type="u" name="width" direction="in"/> | |
391 | <arg type="u" name="height" direction="in"/> | |
392 | <arg type="u" name="stride" direction="in"/> | |
393 | <arg type="u" name="fourcc" direction="in"/> | |
394 | <!-- xywh? --> | |
395 | <arg type="t" name="modifier" direction="in"/> | |
396 | <arg type="b" name="y0_top" direction="in"/> | |
397 | </method> | |
398 | ||
399 | <!-- | |
400 | UpdateDMABUF: | |
401 | @x: the X update position, in pixels. | |
402 | @y: the Y update position, in pixels. | |
403 | @width: the update width, in pixels. | |
404 | @height: the update height, in pixels. | |
405 | ||
406 | Update the display content with the current DMABUF and the given region. | |
407 | --> | |
408 | <method name="UpdateDMABUF"> | |
409 | <arg type="i" name="x" direction="in"/> | |
410 | <arg type="i" name="y" direction="in"/> | |
411 | <arg type="i" name="width" direction="in"/> | |
412 | <arg type="i" name="height" direction="in"/> | |
413 | </method> | |
6cc5a615 | 414 | <?endif?> |
142ca628 MAL |
415 | |
416 | <!-- | |
417 | Disable: | |
418 | ||
419 | Disable the display (turn it off). | |
420 | --> | |
421 | <method name="Disable"> | |
422 | </method> | |
423 | ||
424 | <!-- | |
425 | MouseSet: | |
426 | @x: X mouse position, in pixels. | |
427 | @y: Y mouse position, in pixels. | |
428 | @on: whether the mouse is visible or not. | |
429 | ||
430 | Set the mouse position and visibility. | |
431 | --> | |
432 | <method name="MouseSet"> | |
433 | <arg type="i" name="x" direction="in"/> | |
434 | <arg type="i" name="y" direction="in"/> | |
435 | <arg type="i" name="on" direction="in"/> | |
436 | </method> | |
437 | ||
438 | <!-- | |
439 | CursorDefine: | |
440 | @width: cursor width, in pixels. | |
441 | @height: cursor height, in pixels. | |
442 | @hot_x: hot-spot X position, in pixels. | |
443 | @hot_y: hot-spot Y position, in pixels. | |
444 | @data: the cursor data. | |
445 | ||
446 | Set the mouse cursor shape and hot-spot. The "data" must be ARGB, 32-bit | |
447 | per pixel. | |
448 | --> | |
449 | <method name="CursorDefine"> | |
450 | <arg type="i" name="width" direction="in"/> | |
451 | <arg type="i" name="height" direction="in"/> | |
452 | <arg type="i" name="hot_x" direction="in"/> | |
453 | <arg type="i" name="hot_y" direction="in"/> | |
454 | <arg type="ay" name="data" direction="in"> | |
455 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
456 | </arg> | |
457 | </method> | |
439e0164 MAL |
458 | |
459 | <!-- | |
460 | Interfaces: | |
461 | ||
462 | This property lists extra interfaces provided by the | |
463 | /org/qemu/Display1/Listener object, and can be used to detect | |
464 | the capabilities with which they are communicating. | |
465 | ||
466 | Unlike the standard D-Bus Introspectable interface, querying this | |
467 | property does not require parsing XML. | |
468 | ||
469 | (earlier version of the display interface do not provide this property) | |
470 | --> | |
471 | <property name="Interfaces" type="as" access="read"/> | |
142ca628 | 472 | </interface> |
739362d4 | 473 | |
ff1a5810 MAL |
474 | <!-- |
475 | org.qemu.Display1.Clipboard: | |
476 | ||
477 | This interface must be implemented by both the client and the server on | |
478 | ``/org/qemu/Display1/Clipboard`` to support clipboard sharing between | |
479 | the client and the guest. | |
480 | ||
481 | Once :dbus:meth:`Register`'ed, method calls may be sent and received in both | |
482 | directions. Unregistered callers will get error replies. | |
483 | ||
484 | .. _dbus-clipboard-selection: | |
485 | ||
486 | **Selection values**:: | |
487 | ||
488 | Clipboard = 0 | |
489 | Primary = 1 | |
490 | Secondary = 2 | |
491 | ||
492 | .. _dbus-clipboard-serial: | |
493 | ||
494 | **Serial counter** | |
495 | ||
496 | To solve potential clipboard races, clipboard grabs have an associated | |
497 | serial counter. It is set to 0 on registration, and incremented by 1 for | |
498 | each grab. The peer with the highest serial is the clipboard grab owner. | |
499 | ||
500 | When a grab with a lower serial is received, it should be discarded. | |
501 | ||
502 | When a grab is attempted with the same serial number as the current grab, | |
503 | the one coming from the client should have higher priority, and the client | |
504 | should gain clipboard grab ownership. | |
505 | --> | |
506 | <interface name="org.qemu.Display1.Clipboard"> | |
507 | <!-- | |
508 | Register: | |
509 | ||
510 | Register a clipboard session and reinitialize the serial counter. | |
511 | ||
512 | The client must register itself, and is granted an exclusive | |
513 | access for handling the clipboard. | |
514 | ||
515 | The server can reinitialize the session as well (to reset the counter). | |
516 | --> | |
517 | <method name="Register"/> | |
518 | ||
519 | <!-- | |
520 | Unregister: | |
521 | ||
522 | Unregister the clipboard session. | |
523 | --> | |
524 | <method name="Unregister"/> | |
525 | <!-- | |
526 | Grab: | |
527 | @selection: a :ref:`selection value<dbus-clipboard-selection>`. | |
528 | @serial: the current grab :ref:`serial<dbus-clipboard-serial>`. | |
529 | @mimes: the list of available content MIME types. | |
530 | ||
531 | Grab the clipboard, claiming current clipboard content. | |
532 | --> | |
533 | <method name="Grab"> | |
534 | <arg type="u" name="selection"/> | |
535 | <arg type="u" name="serial"/> | |
536 | <arg type="as" name="mimes"/> | |
537 | </method> | |
538 | ||
539 | <!-- | |
540 | Release: | |
541 | @selection: a :ref:`selection value<dbus-clipboard-selection>`. | |
542 | ||
543 | Release the clipboard (does nothing if not the current owner). | |
544 | --> | |
545 | <method name="Release"> | |
546 | <arg type="u" name="selection"/> | |
547 | </method> | |
548 | ||
549 | <!-- | |
550 | Request: | |
551 | @selection: a :ref:`selection value<dbus-clipboard-selection>` | |
552 | @mimes: requested MIME types (by order of preference). | |
553 | @reply_mime: the returned data MIME type. | |
554 | @data: the clipboard data. | |
555 | ||
556 | Request the clipboard content. | |
557 | ||
558 | Return an error if the clipboard is empty, or the requested MIME types | |
559 | are unavailable. | |
560 | --> | |
561 | <method name="Request"> | |
562 | <arg type="u" name="selection"/> | |
563 | <arg type="as" name="mimes"/> | |
564 | <arg type="s" name="reply_mime" direction="out"/> | |
565 | <arg type="ay" name="data" direction="out"> | |
566 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
567 | </arg> | |
568 | </method> | |
439e0164 MAL |
569 | |
570 | <!-- | |
571 | Interfaces: | |
572 | ||
573 | This property lists extra interfaces provided by the | |
574 | /org/qemu/Display1/Clipboard object, and can be used to detect | |
575 | the capabilities with which they are communicating. | |
576 | ||
577 | Unlike the standard D-Bus Introspectable interface, querying this | |
578 | property does not require parsing XML. | |
579 | ||
580 | (earlier version of the display interface do not provide this property) | |
581 | --> | |
582 | <property name="Interfaces" type="as" access="read"/> | |
ff1a5810 MAL |
583 | </interface> |
584 | ||
739362d4 MAL |
585 | <!-- |
586 | org.qemu.Display1.Audio: | |
587 | ||
588 | Audio backend may be available on ``/org/qemu/Display1/Audio``. | |
589 | --> | |
590 | <interface name="org.qemu.Display1.Audio"> | |
591 | <!-- | |
592 | RegisterOutListener: | |
593 | @listener: a Unix socket FD, for peer-to-peer D-Bus communication. | |
594 | ||
595 | Register an audio backend playback handler. | |
596 | ||
597 | Multiple listeners may be registered simultaneously. | |
598 | ||
599 | The listener is expected to implement the | |
600 | :dbus:iface:`org.qemu.Display1.AudioOutListener` interface. | |
601 | --> | |
602 | <method name="RegisterOutListener"> | |
6cc5a615 MAL |
603 | <?if $(env.TARGETOS) == windows?> |
604 | <arg type="ay" name="listener" direction="in"> | |
605 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
606 | </arg> | |
607 | <?else?> | |
739362d4 | 608 | <arg type="h" name="listener" direction="in"/> |
6cc5a615 | 609 | <?endif?> |
739362d4 MAL |
610 | </method> |
611 | ||
612 | <!-- | |
613 | RegisterInListener: | |
614 | @listener: a Unix socket FD, for peer-to-peer D-Bus communication. | |
615 | ||
616 | Register an audio backend record handler. | |
617 | ||
618 | Multiple listeners may be registered simultaneously. | |
619 | ||
620 | The listener is expected to implement the | |
621 | :dbus:iface:`org.qemu.Display1.AudioInListener` interface. | |
622 | --> | |
623 | <method name="RegisterInListener"> | |
6cc5a615 MAL |
624 | <?if $(env.TARGETOS) == windows?> |
625 | <arg type="ay" name="listener" direction="in"> | |
626 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
627 | </arg> | |
628 | <?else?> | |
739362d4 | 629 | <arg type="h" name="listener" direction="in"/> |
6cc5a615 | 630 | <?endif?> |
739362d4 | 631 | </method> |
439e0164 MAL |
632 | |
633 | <!-- | |
634 | Interfaces: | |
635 | ||
636 | This property lists extra interfaces provided by the | |
637 | /org/qemu/Display1/Audio object, and can be used to detect | |
638 | the capabilities with which they are communicating. | |
639 | ||
640 | Unlike the standard D-Bus Introspectable interface, querying this | |
641 | property does not require parsing XML. | |
642 | ||
643 | (earlier version of the display interface do not provide this property) | |
644 | --> | |
645 | <property name="Interfaces" type="as" access="read"/> | |
739362d4 MAL |
646 | </interface> |
647 | ||
648 | <!-- | |
649 | org.qemu.Display1.AudioOutListener: | |
650 | ||
651 | This client-side interface must be available on | |
652 | ``/org/qemu/Display1/AudioOutListener`` when registering the peer-to-peer | |
653 | connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterOutListener`. | |
654 | --> | |
655 | <interface name="org.qemu.Display1.AudioOutListener"> | |
656 | <!-- | |
657 | Init: | |
658 | @id: the stream ID. | |
659 | @bits: PCM bits per sample. | |
660 | @is_signed: whether the PCM data is signed. | |
661 | @is_float: PCM floating point format. | |
662 | @freq: the PCM frequency in Hz. | |
663 | @nchannels: the number of channels. | |
664 | @bytes_per_frame: the bytes per frame. | |
665 | @bytes_per_second: the bytes per second. | |
666 | @be: whether using big-endian format. | |
667 | ||
668 | Initializes a PCM playback stream. | |
669 | --> | |
670 | <method name="Init"> | |
671 | <arg name="id" type="t" direction="in"/> | |
672 | <arg name="bits" type="y" direction="in"/> | |
673 | <arg name="is_signed" type="b" direction="in"/> | |
674 | <arg name="is_float" type="b" direction="in"/> | |
675 | <arg name="freq" type="u" direction="in"/> | |
676 | <arg name="nchannels" type="y" direction="in"/> | |
677 | <arg name="bytes_per_frame" type="u" direction="in"/> | |
678 | <arg name="bytes_per_second" type="u" direction="in"/> | |
679 | <arg name="be" type="b" direction="in"/> | |
680 | </method> | |
681 | ||
682 | <!-- | |
683 | Fini: | |
684 | @id: the stream ID. | |
685 | ||
686 | Finish & close a playback stream. | |
687 | --> | |
688 | <method name="Fini"> | |
689 | <arg name="id" type="t" direction="in"/> | |
690 | </method> | |
691 | ||
692 | <!-- | |
693 | SetEnabled: | |
694 | @id: the stream ID. | |
695 | ||
696 | Resume or suspend the playback stream. | |
697 | --> | |
698 | <method name="SetEnabled"> | |
699 | <arg name="id" type="t" direction="in"/> | |
700 | <arg name="enabled" type="b" direction="in"/> | |
701 | </method> | |
702 | ||
703 | <!-- | |
704 | SetVolume: | |
705 | @id: the stream ID. | |
706 | @mute: whether the stream is muted. | |
707 | @volume: the volume per-channel. | |
708 | ||
709 | Set the stream volume and mute state (volume without unit, 0-255). | |
710 | --> | |
711 | <method name="SetVolume"> | |
712 | <arg name="id" type="t" direction="in"/> | |
713 | <arg name="mute" type="b" direction="in"/> | |
714 | <arg name="volume" type="ay" direction="in"> | |
715 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
716 | </arg> | |
717 | </method> | |
718 | ||
719 | <!-- | |
720 | Write: | |
721 | @id: the stream ID. | |
722 | @data: the PCM data. | |
723 | ||
724 | PCM stream to play. | |
725 | --> | |
726 | <method name="Write"> | |
727 | <arg name="id" type="t" direction="in"/> | |
728 | <arg type="ay" name="data" direction="in"> | |
729 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
730 | </arg> | |
731 | </method> | |
439e0164 MAL |
732 | |
733 | <!-- | |
734 | Interfaces: | |
735 | ||
736 | This property lists extra interfaces provided by the | |
737 | /org/qemu/Display1/AudioOutListener object, and can be used to detect | |
738 | the capabilities with which they are communicating. | |
739 | ||
740 | Unlike the standard D-Bus Introspectable interface, querying this | |
741 | property does not require parsing XML. | |
742 | ||
743 | (earlier version of the display interface do not provide this property) | |
744 | --> | |
745 | <property name="Interfaces" type="as" access="read"/> | |
739362d4 MAL |
746 | </interface> |
747 | ||
748 | <!-- | |
749 | org.qemu.Display1.AudioInListener: | |
750 | ||
751 | This client-side interface must be available on | |
752 | ``/org/qemu/Display1/AudioInListener`` when registering the peer-to-peer | |
753 | connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterInListener`. | |
754 | --> | |
755 | <interface name="org.qemu.Display1.AudioInListener"> | |
756 | <!-- | |
757 | Init: | |
758 | @id: the stream ID. | |
759 | @bits: PCM bits per sample. | |
760 | @is_signed: whether the PCM data is signed. | |
761 | @is_float: PCM floating point format. | |
762 | @freq: the PCM frequency in Hz. | |
763 | @nchannels: the number of channels. | |
764 | @bytes_per_frame: the bytes per frame. | |
765 | @bytes_per_second: the bytes per second. | |
766 | @be: whether using big-endian format. | |
767 | ||
768 | Initializes a PCM record stream. | |
769 | --> | |
770 | <method name="Init"> | |
771 | <arg name="id" type="t" direction="in"/> | |
772 | <arg name="bits" type="y" direction="in"/> | |
773 | <arg name="is_signed" type="b" direction="in"/> | |
774 | <arg name="is_float" type="b" direction="in"/> | |
775 | <arg name="freq" type="u" direction="in"/> | |
776 | <arg name="nchannels" type="y" direction="in"/> | |
777 | <arg name="bytes_per_frame" type="u" direction="in"/> | |
778 | <arg name="bytes_per_second" type="u" direction="in"/> | |
779 | <arg name="be" type="b" direction="in"/> | |
780 | </method> | |
781 | ||
782 | <!-- | |
783 | Fini: | |
784 | @id: the stream ID. | |
785 | ||
786 | Finish & close a record stream. | |
787 | --> | |
788 | <method name="Fini"> | |
789 | <arg name="id" type="t" direction="in"/> | |
790 | </method> | |
791 | ||
792 | <!-- | |
793 | SetEnabled: | |
794 | @id: the stream ID. | |
795 | ||
796 | Resume or suspend the record stream. | |
797 | --> | |
798 | <method name="SetEnabled"> | |
799 | <arg name="id" type="t" direction="in"/> | |
800 | <arg name="enabled" type="b" direction="in"/> | |
801 | </method> | |
802 | ||
803 | <!-- | |
804 | SetVolume: | |
805 | @id: the stream ID. | |
806 | @mute: whether the stream is muted. | |
807 | @volume: the volume per-channel. | |
808 | ||
809 | Set the stream volume and mute state (volume without unit, 0-255). | |
810 | --> | |
811 | <method name="SetVolume"> | |
812 | <arg name="id" type="t" direction="in"/> | |
813 | <arg name="mute" type="b" direction="in"/> | |
814 | <arg name="volume" type="ay" direction="in"> | |
815 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
816 | </arg> | |
817 | </method> | |
818 | ||
819 | <!-- | |
820 | Read: | |
821 | @id: the stream ID. | |
822 | @size: the amount to read, in bytes. | |
823 | @data: the recorded data (which may be less than requested). | |
824 | ||
825 | Read "size" bytes from the record stream. | |
826 | --> | |
827 | <method name="Read"> | |
828 | <arg name="id" type="t" direction="in"/> | |
829 | <arg name="size" type="t" direction="in"/> | |
830 | <arg type="ay" name="data" direction="out"> | |
831 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
832 | </arg> | |
833 | </method> | |
439e0164 MAL |
834 | |
835 | <!-- | |
836 | Interfaces: | |
837 | ||
838 | This property lists extra interfaces provided by the | |
839 | /org/qemu/Display1/AudioInListener object, and can be used to detect | |
840 | the capabilities with which they are communicating. | |
841 | ||
842 | Unlike the standard D-Bus Introspectable interface, querying this | |
843 | property does not require parsing XML. | |
844 | ||
845 | (earlier version of the display interface do not provide this property) | |
846 | --> | |
847 | <property name="Interfaces" type="as" access="read"/> | |
739362d4 | 848 | </interface> |
3e301c8d MAL |
849 | |
850 | <!-- | |
851 | org.qemu.Display1.Chardev: | |
852 | ||
853 | Character devices may be available on ``/org/qemu/Display1/Chardev_$id``. | |
854 | ||
855 | They may be used for different kind of streams, which are identified via | |
856 | their FQDN :dbus:prop:`Name`. | |
857 | ||
858 | .. _dbus-chardev-fqdn: | |
859 | ||
860 | Here are some known reserved kind names (the ``org.qemu`` prefix is | |
861 | reserved by QEMU): | |
862 | ||
863 | org.qemu.console.serial.0 | |
864 | A serial console stream. | |
865 | ||
866 | org.qemu.monitor.hmp.0 | |
867 | A QEMU HMP human monitor. | |
868 | ||
869 | org.qemu.monitor.qmp.0 | |
870 | A QEMU QMP monitor. | |
871 | ||
872 | org.qemu.usbredir | |
873 | A usbredir stream. | |
874 | --> | |
875 | <interface name="org.qemu.Display1.Chardev"> | |
876 | <!-- | |
877 | Register: | |
878 | @stream: a Unix FD to redirect the stream to. | |
879 | ||
880 | Register a file-descriptor for the stream handling. | |
881 | ||
882 | The current handler, if any, will be replaced. | |
883 | --> | |
884 | <method name="Register"> | |
6cc5a615 MAL |
885 | <?if $(env.TARGETOS) == windows?> |
886 | <arg type="ay" name="listener" direction="in"> | |
887 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
888 | </arg> | |
889 | <?else?> | |
3e301c8d | 890 | <arg type="h" name="stream" direction="in"/> |
6cc5a615 | 891 | <?endif?> |
3e301c8d MAL |
892 | </method> |
893 | ||
894 | <!-- | |
895 | SendBreak: | |
896 | ||
897 | Send a break event to the character device. | |
898 | --> | |
899 | <method name="SendBreak"/> | |
900 | ||
901 | <!-- | |
902 | Name: | |
903 | ||
904 | The FQDN name to identify the kind of stream. See :ref:`reserved | |
905 | names<dbus-chardev-fqdn>`. | |
906 | --> | |
907 | <property name="Name" type="s" access="read"/> | |
908 | ||
909 | <!-- | |
910 | FEOpened: | |
911 | ||
912 | Whether the front-end side is opened. | |
913 | --> | |
914 | <property name="FEOpened" type="b" access="read"/> | |
915 | ||
916 | <!-- | |
917 | Echo: | |
918 | ||
919 | Whether the input should be echo'ed (for serial streams). | |
920 | --> | |
921 | <property name="Echo" type="b" access="read"/> | |
922 | ||
923 | <!-- | |
924 | Owner: | |
925 | ||
926 | The D-Bus unique name of the registered handler. | |
927 | --> | |
928 | <property name="Owner" type="s" access="read"/> | |
439e0164 MAL |
929 | |
930 | <!-- | |
931 | Interfaces: | |
932 | ||
933 | This property lists extra interfaces provided by the | |
934 | ``/org/qemu/Display1/Chardev_$i`` object, and can be used to detect | |
935 | the capabilities with which they are communicating. | |
936 | ||
937 | Unlike the standard D-Bus Introspectable interface, querying this | |
938 | property does not require parsing XML. | |
939 | ||
940 | (earlier version of the display interface do not provide this property) | |
941 | --> | |
942 | <property name="Interfaces" type="as" access="read"/> | |
3e301c8d | 943 | </interface> |
142ca628 | 944 | </node> |