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