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