]>
Commit | Line | Data |
---|---|---|
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"/> | |
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"/> | |
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 | |
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. | |
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"> | |
74 | <?if $(env.HOST_OS) == windows?> | |
75 | <arg type="ay" name="listener" direction="in"> | |
76 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
77 | </arg> | |
78 | <?else?> | |
79 | <arg type="h" name="listener" direction="in"/> | |
80 | <?endif?> | |
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"/> | |
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"/> | |
158 | </interface> | |
159 | ||
160 | <!-- | |
161 | org.qemu.Display1.Keyboard: | |
162 | ||
163 | This interface is optionally implemented on | |
164 | ``/org/qemu/Display1/Console_$id`` (see | |
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 | ||
203 | This interface is optionally implemented on | |
204 | ``/org/qemu/Display1/Console_$id`` (see | |
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 | ||
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 | ||
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 | ||
373 | <?if $(env.HOST_OS) != windows?> | |
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> | |
412 | <?endif?> | |
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> | |
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"/> | |
470 | </interface> | |
471 | ||
472 | <!-- | |
473 | org.qemu.Display1.Listener.Win32.Map: | |
474 | ||
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. | |
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> | |
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> | |
566 | </interface> | |
567 | ||
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> | |
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"/> | |
677 | </interface> | |
678 | ||
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"> | |
697 | <?if $(env.HOST_OS) == windows?> | |
698 | <arg type="ay" name="listener" direction="in"> | |
699 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
700 | </arg> | |
701 | <?else?> | |
702 | <arg type="h" name="listener" direction="in"/> | |
703 | <?endif?> | |
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"> | |
718 | <?if $(env.HOST_OS) == windows?> | |
719 | <arg type="ay" name="listener" direction="in"> | |
720 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
721 | </arg> | |
722 | <?else?> | |
723 | <arg type="h" name="listener" direction="in"/> | |
724 | <?endif?> | |
725 | </method> | |
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"/> | |
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> | |
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"/> | |
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> | |
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"/> | |
942 | </interface> | |
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"> | |
979 | <?if $(env.HOST_OS) == windows?> | |
980 | <arg type="ay" name="listener" direction="in"> | |
981 | <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
982 | </arg> | |
983 | <?else?> | |
984 | <arg type="h" name="stream" direction="in"/> | |
985 | <?endif?> | |
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"/> | |
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"/> | |
1037 | </interface> | |
1038 | </node> |