| <?xml version="1.0" encoding="utf-8"?> | |
| <node> | |
| <!-- | |
| org.qemu.Display1.VM: | |
| This interface is implemented on ``/org/qemu/Display1/VM``. | |
| --> | |
| <interface name="org.qemu.Display1.VM"> | |
| <!-- | |
| Name: | |
| The name of the VM. | |
| --> | |
| <property name="Name" type="s" access="read"/> | |
| <!-- | |
| UUID: | |
| The UUID of the VM. | |
| --> | |
| <property name="UUID" type="s" access="read"/> | |
| <!-- | |
| ConsoleIDs: | |
| The list of consoles available on ``/org/qemu/Display1/Console_$id``. | |
| --> | |
| <property name="ConsoleIDs" type="au" access="read"/> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/VM object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Console: | |
| This interface is implemented on ``/org/qemu/Display1/Console_$id``. You | |
| may discover available consoles through introspection or with the | |
| :dbus:prop:`org.qemu.Display1.VM.ConsoleIDs` property. | |
| A console is attached to a video device head. It may be "Graphic" or | |
| "Text" (see :dbus:prop:`Type` and other properties). | |
| Interactions with a console may be done with | |
| :dbus:iface:`org.qemu.Display1.Keyboard`, | |
| :dbus:iface:`org.qemu.Display1.Mouse` and | |
| :dbus:iface:`org.qemu.Display1.MultiTouch` interfaces when available. | |
| --> | |
| <interface name="org.qemu.Display1.Console"> | |
| <!-- | |
| RegisterListener: | |
| @listener: a Unix socket FD, for peer-to-peer D-Bus communication. | |
| Register a console listener, which will receive display updates, until | |
| it is disconnected. | |
| Multiple listeners may be registered simultaneously. | |
| The listener is expected to implement the | |
| :dbus:iface:`org.qemu.Display1.Listener` interface. | |
| --> | |
| <method name="RegisterListener"> | |
| <?if $(env.HOST_OS) == windows?> | |
| <arg type="ay" name="listener" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| <?else?> | |
| <arg type="h" name="listener" direction="in"/> | |
| <?endif?> | |
| </method> | |
| <!-- | |
| SetUIInfo: | |
| @width_mm: the physical display width in millimeters. | |
| @height_mm: the physical display height in millimeters. | |
| @xoff: horizontal offset, in pixels. | |
| @yoff: vertical offset, in pixels. | |
| @width: console width, in pixels. | |
| @height: console height, in pixels. | |
| Modify the dimensions and display settings. | |
| --> | |
| <method name="SetUIInfo"> | |
| <arg name="width_mm" type="q" direction="in"/> | |
| <arg name="height_mm" type="q" direction="in"/> | |
| <arg name="xoff" type="i" direction="in"/> | |
| <arg name="yoff" type="i" direction="in"/> | |
| <arg name="width" type="u" direction="in"/> | |
| <arg name="height" type="u" direction="in"/> | |
| </method> | |
| <!-- | |
| Label: | |
| A user-friendly name for the console (for ex: "VGA"). | |
| --> | |
| <property name="Label" type="s" access="read"/> | |
| <!-- | |
| Head: | |
| Graphical device head number. | |
| --> | |
| <property name="Head" type="u" access="read"/> | |
| <!-- | |
| Type: | |
| Console type ("Graphic" or "Text"). | |
| --> | |
| <property name="Type" type="s" access="read"/> | |
| <!-- | |
| Width: | |
| Console width, in pixels. | |
| --> | |
| <property name="Width" type="u" access="read"/> | |
| <!-- | |
| Height: | |
| Console height, in pixels. | |
| --> | |
| <property name="Height" type="u" access="read"/> | |
| <!-- | |
| DeviceAddress: | |
| The device address (ex: "pci/0000/02.0"). | |
| --> | |
| <property name="DeviceAddress" type="s" access="read"/> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| ``/org/qemu/Display1/Console_$id`` object, and can be used to detect the | |
| capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Keyboard: | |
| This interface is optionally implemented on | |
| ``/org/qemu/Display1/Console_$id`` (see | |
| :dbus:iface:`~org.qemu.Display1.Console`). | |
| --> | |
| <interface name="org.qemu.Display1.Keyboard"> | |
| <!-- | |
| Press: | |
| @keycode: QEMU key number (xtkbd + special re-encoding of high bit) | |
| Send a key press event. | |
| --> | |
| <method name="Press"> | |
| <arg type="u" name="keycode" direction="in"/> | |
| </method> | |
| <!-- | |
| Release: | |
| @keycode: QEMU key number (xtkbd + special re-encoding of high bit) | |
| Send a key release event. | |
| --> | |
| <method name="Release"> | |
| <arg type="u" name="keycode" direction="in"/> | |
| </method> | |
| <!-- | |
| Modifiers: | |
| The active keyboard modifiers:: | |
| Scroll = 1 << 0 | |
| Num = 1 << 1 | |
| Caps = 1 << 2 | |
| --> | |
| <property name="Modifiers" type="u" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Mouse: | |
| This interface is optionally implemented on | |
| ``/org/qemu/Display1/Console_$id`` (see | |
| :dbus:iface:`~org.qemu.Display1.Console` documentation). | |
| .. _dbus-button-values: | |
| **Button values**:: | |
| Left = 0 | |
| Middle = 1 | |
| Right = 2 | |
| Wheel-up = 3 | |
| Wheel-down = 4 | |
| Side = 5 | |
| Extra = 6 | |
| --> | |
| <interface name="org.qemu.Display1.Mouse"> | |
| <!-- | |
| Press: | |
| @button: :ref:`button value<dbus-button-values>`. | |
| Send a mouse button press event. | |
| --> | |
| <method name="Press"> | |
| <arg type="u" name="button" direction="in"/> | |
| </method> | |
| <!-- | |
| Release: | |
| @button: :ref:`button value<dbus-button-values>`. | |
| Send a mouse button release event. | |
| --> | |
| <method name="Release"> | |
| <arg type="u" name="button" direction="in"/> | |
| </method> | |
| <!-- | |
| SetAbsPosition: | |
| @x: X position, in pixels. | |
| @y: Y position, in pixels. | |
| Set the mouse pointer position. | |
| Returns an error if not :dbus:prop:`IsAbsolute`. | |
| --> | |
| <method name="SetAbsPosition"> | |
| <arg type="u" name="x" direction="in"/> | |
| <arg type="u" name="y" direction="in"/> | |
| </method> | |
| <!-- | |
| RelMotion: | |
| @dx: X-delta, in pixels. | |
| @dy: Y-delta, in pixels. | |
| Move the mouse pointer position, relative to the current position. | |
| Returns an error if :dbus:prop:`IsAbsolute`. | |
| --> | |
| <method name="RelMotion"> | |
| <arg type="i" name="dx" direction="in"/> | |
| <arg type="i" name="dy" direction="in"/> | |
| </method> | |
| <!-- | |
| IsAbsolute: | |
| Whether the mouse is using absolute movements. | |
| --> | |
| <property name="IsAbsolute" type="b" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.MultiTouch: | |
| This interface in implemented on ``/org/qemu/Display1/Console_$id`` (see | |
| :dbus:iface:`~org.qemu.Display1.Console` documentation). | |
| .. _dbus-kind-values: | |
| **Kind values**:: | |
| Begin = 0 | |
| Update = 1 | |
| End = 2 | |
| Cancel = 3 | |
| --> | |
| <interface name="org.qemu.Display1.MultiTouch"> | |
| <!-- | |
| SendEvent: | |
| @kind: The touch event kind | |
| @num_slot: The slot number. | |
| @x: The x coordinates. | |
| @y: The y coordinates. | |
| Send a touch gesture event. | |
| --> | |
| <method name="SendEvent"> | |
| <arg type="u" name="kind" direction="in"/> | |
| <arg type="t" name="num_slot" direction="in"/> | |
| <arg type="d" name="x" direction="in"/> | |
| <arg type="d" name="y" direction="in"/> | |
| </method> | |
| <!-- | |
| MaxSlots: | |
| The maximum number of slots. | |
| --> | |
| <property name="MaxSlots" type="i" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Listener: | |
| This client-side interface must be available on | |
| ``/org/qemu/Display1/Listener`` when registering the peer-to-peer | |
| connection with :dbus:meth:`~org.qemu.Display1.Console.Register`. | |
| --> | |
| <interface name="org.qemu.Display1.Listener"> | |
| <!-- | |
| Scanout: | |
| @width: display width, in pixels. | |
| @height: display height, in pixels. | |
| @stride: data stride, in bytes. | |
| @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``). | |
| @data: image data. | |
| Resize and update the display content. | |
| The data to transfer for the display update may be large. The preferred | |
| scanout method is :dbus:meth:`ScanoutDMABUF`, used whenever possible. | |
| --> | |
| <method name="Scanout"> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| <arg type="u" name="stride" direction="in"/> | |
| <arg type="u" name="pixman_format" direction="in"/> | |
| <arg type="ay" name="data" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Update: | |
| @x: X update position, in pixels. | |
| @y: Y update position, in pixels. | |
| @width: update width, in pixels. | |
| @height: update height, in pixels. | |
| @stride: data stride, in bytes. | |
| @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``). | |
| @data: display image data. | |
| Update the display content. | |
| This method is only called after a :dbus:meth:`Scanout` call. | |
| --> | |
| <method name="Update"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| <arg type="u" name="stride" direction="in"/> | |
| <arg type="u" name="pixman_format" direction="in"/> | |
| <arg type="ay" name="data" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <?if $(env.HOST_OS) != windows?> | |
| <!-- | |
| ScanoutDMABUF: | |
| @dmabuf: the DMABUF file descriptor. | |
| @width: display width, in pixels. | |
| @height: display height, in pixels. | |
| @stride: stride, in bytes. | |
| @fourcc: DMABUF fourcc. | |
| @modifier: DMABUF modifier. | |
| @y0_top: whether Y position 0 is the top or not. | |
| Resize and update the display content with a DMABUF. | |
| --> | |
| <method name="ScanoutDMABUF"> | |
| <arg type="h" name="dmabuf" direction="in"/> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| <arg type="u" name="stride" direction="in"/> | |
| <arg type="u" name="fourcc" direction="in"/> | |
| <!-- xywh? --> | |
| <arg type="t" name="modifier" direction="in"/> | |
| <arg type="b" name="y0_top" direction="in"/> | |
| </method> | |
| <!-- | |
| UpdateDMABUF: | |
| @x: the X update position, in pixels. | |
| @y: the Y update position, in pixels. | |
| @width: the update width, in pixels. | |
| @height: the update height, in pixels. | |
| Update the display content with the current DMABUF and the given region. | |
| --> | |
| <method name="UpdateDMABUF"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| </method> | |
| <?endif?> | |
| <!-- | |
| Disable: | |
| Disable the display (turn it off). | |
| --> | |
| <method name="Disable"> | |
| </method> | |
| <!-- | |
| MouseSet: | |
| @x: X mouse position, in pixels. | |
| @y: Y mouse position, in pixels. | |
| @on: whether the mouse is visible or not. | |
| Set the mouse position and visibility. | |
| --> | |
| <method name="MouseSet"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="on" direction="in"/> | |
| </method> | |
| <!-- | |
| CursorDefine: | |
| @width: cursor width, in pixels. | |
| @height: cursor height, in pixels. | |
| @hot_x: hot-spot X position, in pixels. | |
| @hot_y: hot-spot Y position, in pixels. | |
| @data: the cursor data. | |
| Set the mouse cursor shape and hot-spot. The "data" must be ARGB, 32-bit | |
| per pixel. | |
| --> | |
| <method name="CursorDefine"> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| <arg type="i" name="hot_x" direction="in"/> | |
| <arg type="i" name="hot_y" direction="in"/> | |
| <arg type="ay" name="data" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/Listener object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Listener.Unix.Map: | |
| This optional client-side interface can complement | |
| org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for | |
| Unix-specific shared memory scanouts. | |
| --> | |
| <?if $(env.HOST_OS) != windows?> | |
| <interface name="org.qemu.Display1.Listener.Unix.Map"> | |
| <!-- | |
| ScanoutMap: | |
| @handle: the shared map FD. | |
| @offset: mapping offset, in bytes. | |
| @width: display width, in pixels. | |
| @height: display height, in pixels. | |
| @stride: stride, in bytes. | |
| @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``). | |
| Resize and update the display content with a shared map. | |
| --> | |
| <method name="ScanoutMap"> | |
| <arg type="h" name="handle" direction="in"/> | |
| <arg type="u" name="offset" direction="in"/> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| <arg type="u" name="stride" direction="in"/> | |
| <arg type="u" name="pixman_format" direction="in"/> | |
| </method> | |
| <!-- | |
| UpdateMap: | |
| @x: the X update position, in pixels. | |
| @y: the Y update position, in pixels. | |
| @width: the update width, in pixels. | |
| @height: the update height, in pixels. | |
| Update the display content with the current shared map and the given region. | |
| --> | |
| <method name="UpdateMap"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| </method> | |
| </interface> | |
| <?endif?> | |
| <!-- | |
| org.qemu.Display1.Listener.Win32.Map: | |
| This optional client-side interface can complement | |
| org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for Windows | |
| specific shared memory scanouts. | |
| --> | |
| <?if $(env.HOST_OS) == windows?> | |
| <interface name="org.qemu.Display1.Listener.Win32.Map"> | |
| <!-- | |
| ScanoutMap: | |
| @handle: the shared file mapping handle value (not a file handle) | |
| @offset: mapping offset. | |
| @width: display width, in pixels. | |
| @height: display height, in pixels. | |
| @stride: stride, in bytes. | |
| @pixman_format: image format (ex: ``PIXMAN_X8R8G8B8``). | |
| Resize and update the display content with a shared file mapping object. | |
| --> | |
| <method name="ScanoutMap"> | |
| <arg type="t" name="handle" direction="in"/> | |
| <arg type="u" name="offset" direction="in"/> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| <arg type="u" name="stride" direction="in"/> | |
| <arg type="u" name="pixman_format" direction="in"/> | |
| </method> | |
| <!-- | |
| UpdateMap: | |
| @x: the X update position, in pixels. | |
| @y: the Y update position, in pixels. | |
| @width: the update width, in pixels. | |
| @height: the update height, in pixels. | |
| Update the display content with the current shared map and the given region. | |
| --> | |
| <method name="UpdateMap"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| </method> | |
| </interface> | |
| <?endif?> | |
| <!-- | |
| org.qemu.Display1.Listener.Win32.D3d11: | |
| This optional client-side interface can complement | |
| org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for Windows | |
| specific Direct3D texture sharing of the scanouts. | |
| --> | |
| <interface name="org.qemu.Display1.Listener.Win32.D3d11"> | |
| <!-- | |
| ScanoutTexture2d: | |
| @handle: the NT handle for the shared texture (to be opened back with ID3D11Device1::OpenSharedResource1). | |
| @texture_width: texture width, in pixels. | |
| @texture_height: texture height, in pixels. | |
| @y0_top: whether Y position 0 is the top or not. | |
| @x: the X scanout position, in pixels. | |
| @y: the Y scanout position, in pixels. | |
| @width: the scanout width, in pixels. | |
| @height: the scanout height, in pixels. | |
| Resize and update the display content with a Direct3D 11 2D texture. | |
| You must acquire and release the associated KeyedMutex 0 during rendering. | |
| --> | |
| <method name="ScanoutTexture2d"> | |
| <arg type="t" name="handle" direction="in"/> | |
| <arg type="u" name="texture_width" direction="in"/> | |
| <arg type="u" name="texture_height" direction="in"/> | |
| <arg type="b" name="y0_top" direction="in"/> | |
| <arg type="u" name="x" direction="in"/> | |
| <arg type="u" name="y" direction="in"/> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| </method> | |
| <!-- | |
| UpdateTexture2d: | |
| @x: the X update position, in pixels. | |
| @y: the Y update position, in pixels. | |
| @width: the update width, in pixels. | |
| @height: the update height, in pixels. | |
| Update the display content with the current Direct3D 2D texture and the given region. | |
| You must acquire and release the associated KeyedMutex 0 during rendering. | |
| --> | |
| <method name="UpdateTexture2d"> | |
| <arg type="i" name="x" direction="in"/> | |
| <arg type="i" name="y" direction="in"/> | |
| <arg type="i" name="width" direction="in"/> | |
| <arg type="i" name="height" direction="in"/> | |
| </method> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Listener.Unix.ScanoutDMABUF2: | |
| This optional client-side interface can complement | |
| org.qemu.Display1.Listener on ``/org/qemu/Display1/Listener`` for | |
| Unix-specific DMABUF scanout setup which support multi plane. | |
| --> | |
| <?if $(env.HOST_OS) != windows?> | |
| <interface name="org.qemu.Display1.Listener.Unix.ScanoutDMABUF2"> | |
| <!-- | |
| ScanoutDMABUF2: | |
| @dmabuf: DMABUF file descriptor of each plane. | |
| @x: display x offset, in pixels | |
| @y: display y offset, in pixels | |
| @width: display width, in pixels. | |
| @height: display height, in pixels. | |
| @offset: offset of each plane, in bytes. | |
| @stride: stride of each plane, in bytes. | |
| @num_planes: plane number. | |
| @fourcc: DMABUF fourcc. | |
| @backing_width: backing framebuffer width, in pixels | |
| @backing_height: backing framebuffer height, in pixels | |
| @modifier: DMABUF modifier. | |
| @y0_top: whether Y position 0 is the top or not. | |
| Resize and update the display content with DMABUF. | |
| --> | |
| <method name="ScanoutDMABUF2"> | |
| <arg type="ah" name="dmabuf" direction="in"/> | |
| <arg type="u" name="x" direction="in"/> | |
| <arg type="u" name="y" direction="in"/> | |
| <arg type="u" name="width" direction="in"/> | |
| <arg type="u" name="height" direction="in"/> | |
| <arg type="au" name="offset" direction="in"/> | |
| <arg type="au" name="stride" direction="in"/> | |
| <arg type="u" name="num_planes" direction="in"/> | |
| <arg type="u" name="fourcc" direction="in"/> | |
| <arg type="u" name="backing_width" direction="in"/> | |
| <arg type="u" name="backing_height" direction="in"/> | |
| <arg type="t" name="modifier" direction="in"/> | |
| <arg type="b" name="y0_top" direction="in"/> | |
| </method> | |
| </interface> | |
| <?endif?> | |
| <!-- | |
| org.qemu.Display1.Clipboard: | |
| This interface must be implemented by both the client and the server on | |
| ``/org/qemu/Display1/Clipboard`` to support clipboard sharing between | |
| the client and the guest. | |
| Once :dbus:meth:`Register`'ed, method calls may be sent and received in both | |
| directions. Unregistered callers will get error replies. | |
| .. _dbus-clipboard-selection: | |
| **Selection values**:: | |
| Clipboard = 0 | |
| Primary = 1 | |
| Secondary = 2 | |
| .. _dbus-clipboard-serial: | |
| **Serial counter** | |
| To solve potential clipboard races, clipboard grabs have an associated | |
| serial counter. It is set to 0 on registration, and incremented by 1 for | |
| each grab. The peer with the highest serial is the clipboard grab owner. | |
| When a grab with a lower serial is received, it should be discarded. | |
| When a grab is attempted with the same serial number as the current grab, | |
| the one coming from the client should have higher priority, and the client | |
| should gain clipboard grab ownership. | |
| --> | |
| <interface name="org.qemu.Display1.Clipboard"> | |
| <!-- | |
| Register: | |
| Register a clipboard session and reinitialize the serial counter. | |
| The client must register itself, and is granted an exclusive | |
| access for handling the clipboard. | |
| The server can reinitialize the session as well (to reset the counter). | |
| --> | |
| <method name="Register"/> | |
| <!-- | |
| Unregister: | |
| Unregister the clipboard session. | |
| --> | |
| <method name="Unregister"/> | |
| <!-- | |
| Grab: | |
| @selection: a :ref:`selection value<dbus-clipboard-selection>`. | |
| @serial: the current grab :ref:`serial<dbus-clipboard-serial>`. | |
| @mimes: the list of available content MIME types. | |
| Grab the clipboard, claiming current clipboard content. | |
| --> | |
| <method name="Grab"> | |
| <arg type="u" name="selection"/> | |
| <arg type="u" name="serial"/> | |
| <arg type="as" name="mimes"/> | |
| </method> | |
| <!-- | |
| Release: | |
| @selection: a :ref:`selection value<dbus-clipboard-selection>`. | |
| Release the clipboard (does nothing if not the current owner). | |
| --> | |
| <method name="Release"> | |
| <arg type="u" name="selection"/> | |
| </method> | |
| <!-- | |
| Request: | |
| @selection: a :ref:`selection value<dbus-clipboard-selection>` | |
| @mimes: requested MIME types (by order of preference). | |
| @reply_mime: the returned data MIME type. | |
| @data: the clipboard data. | |
| Request the clipboard content. | |
| Return an error if the clipboard is empty, or the requested MIME types | |
| are unavailable. | |
| --> | |
| <method name="Request"> | |
| <arg type="u" name="selection"/> | |
| <arg type="as" name="mimes"/> | |
| <arg type="s" name="reply_mime" direction="out"/> | |
| <arg type="ay" name="data" direction="out"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/Clipboard object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Audio: | |
| Audio backend may be available on ``/org/qemu/Display1/Audio``. | |
| --> | |
| <interface name="org.qemu.Display1.Audio"> | |
| <!-- | |
| RegisterOutListener: | |
| @listener: a Unix socket FD, for peer-to-peer D-Bus communication. | |
| Register an audio backend playback handler. | |
| Multiple listeners may be registered simultaneously. | |
| The listener is expected to implement the | |
| :dbus:iface:`org.qemu.Display1.AudioOutListener` interface. | |
| --> | |
| <method name="RegisterOutListener"> | |
| <?if $(env.HOST_OS) == windows?> | |
| <arg type="ay" name="listener" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| <?else?> | |
| <arg type="h" name="listener" direction="in"/> | |
| <?endif?> | |
| </method> | |
| <!-- | |
| RegisterInListener: | |
| @listener: a Unix socket FD, for peer-to-peer D-Bus communication. | |
| Register an audio backend record handler. | |
| Multiple listeners may be registered simultaneously. | |
| The listener is expected to implement the | |
| :dbus:iface:`org.qemu.Display1.AudioInListener` interface. | |
| --> | |
| <method name="RegisterInListener"> | |
| <?if $(env.HOST_OS) == windows?> | |
| <arg type="ay" name="listener" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| <?else?> | |
| <arg type="h" name="listener" direction="in"/> | |
| <?endif?> | |
| </method> | |
| <!-- | |
| NSamples: | |
| The number of samples per read/write frames. (for example the default is | |
| 480, or 10ms at 48kHz) | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="NSamples" type="u" access="read"> | |
| <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/> | |
| </property> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/Audio object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.AudioOutListener: | |
| This client-side interface must be available on | |
| ``/org/qemu/Display1/AudioOutListener`` when registering the peer-to-peer | |
| connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterOutListener`. | |
| --> | |
| <interface name="org.qemu.Display1.AudioOutListener"> | |
| <!-- | |
| Init: | |
| @id: the stream ID. | |
| @bits: PCM bits per sample. | |
| @is_signed: whether the PCM data is signed. | |
| @is_float: PCM floating point format. | |
| @freq: the PCM frequency in Hz. | |
| @nchannels: the number of channels. | |
| @bytes_per_frame: the bytes per frame. | |
| @bytes_per_second: the bytes per second. | |
| @be: whether using big-endian format. | |
| Initializes a PCM playback stream. | |
| --> | |
| <method name="Init"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="bits" type="y" direction="in"/> | |
| <arg name="is_signed" type="b" direction="in"/> | |
| <arg name="is_float" type="b" direction="in"/> | |
| <arg name="freq" type="u" direction="in"/> | |
| <arg name="nchannels" type="y" direction="in"/> | |
| <arg name="bytes_per_frame" type="u" direction="in"/> | |
| <arg name="bytes_per_second" type="u" direction="in"/> | |
| <arg name="be" type="b" direction="in"/> | |
| </method> | |
| <!-- | |
| Fini: | |
| @id: the stream ID. | |
| Finish & close a playback stream. | |
| --> | |
| <method name="Fini"> | |
| <arg name="id" type="t" direction="in"/> | |
| </method> | |
| <!-- | |
| SetEnabled: | |
| @id: the stream ID. | |
| Resume or suspend the playback stream. | |
| --> | |
| <method name="SetEnabled"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="enabled" type="b" direction="in"/> | |
| </method> | |
| <!-- | |
| SetVolume: | |
| @id: the stream ID. | |
| @mute: whether the stream is muted. | |
| @volume: the volume per-channel. | |
| Set the stream volume and mute state (volume without unit, 0-255). | |
| --> | |
| <method name="SetVolume"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="mute" type="b" direction="in"/> | |
| <arg name="volume" type="ay" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Write: | |
| @id: the stream ID. | |
| @data: the PCM data. | |
| PCM stream to play. | |
| --> | |
| <method name="Write"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg type="ay" name="data" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/AudioOutListener object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.AudioInListener: | |
| This client-side interface must be available on | |
| ``/org/qemu/Display1/AudioInListener`` when registering the peer-to-peer | |
| connection with :dbus:meth:`~org.qemu.Display1.Audio.RegisterInListener`. | |
| --> | |
| <interface name="org.qemu.Display1.AudioInListener"> | |
| <!-- | |
| Init: | |
| @id: the stream ID. | |
| @bits: PCM bits per sample. | |
| @is_signed: whether the PCM data is signed. | |
| @is_float: PCM floating point format. | |
| @freq: the PCM frequency in Hz. | |
| @nchannels: the number of channels. | |
| @bytes_per_frame: the bytes per frame. | |
| @bytes_per_second: the bytes per second. | |
| @be: whether using big-endian format. | |
| Initializes a PCM record stream. | |
| --> | |
| <method name="Init"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="bits" type="y" direction="in"/> | |
| <arg name="is_signed" type="b" direction="in"/> | |
| <arg name="is_float" type="b" direction="in"/> | |
| <arg name="freq" type="u" direction="in"/> | |
| <arg name="nchannels" type="y" direction="in"/> | |
| <arg name="bytes_per_frame" type="u" direction="in"/> | |
| <arg name="bytes_per_second" type="u" direction="in"/> | |
| <arg name="be" type="b" direction="in"/> | |
| </method> | |
| <!-- | |
| Fini: | |
| @id: the stream ID. | |
| Finish & close a record stream. | |
| --> | |
| <method name="Fini"> | |
| <arg name="id" type="t" direction="in"/> | |
| </method> | |
| <!-- | |
| SetEnabled: | |
| @id: the stream ID. | |
| Resume or suspend the record stream. | |
| --> | |
| <method name="SetEnabled"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="enabled" type="b" direction="in"/> | |
| </method> | |
| <!-- | |
| SetVolume: | |
| @id: the stream ID. | |
| @mute: whether the stream is muted. | |
| @volume: the volume per-channel. | |
| Set the stream volume and mute state (volume without unit, 0-255). | |
| --> | |
| <method name="SetVolume"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="mute" type="b" direction="in"/> | |
| <arg name="volume" type="ay" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Read: | |
| @id: the stream ID. | |
| @size: the amount to read, in bytes. | |
| @data: the recorded data (which may be less than requested). | |
| Read "size" bytes from the record stream. | |
| --> | |
| <method name="Read"> | |
| <arg name="id" type="t" direction="in"/> | |
| <arg name="size" type="t" direction="in"/> | |
| <arg type="ay" name="data" direction="out"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| </method> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| /org/qemu/Display1/AudioInListener object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| <!-- | |
| org.qemu.Display1.Chardev: | |
| Character devices may be available on ``/org/qemu/Display1/Chardev_$id``. | |
| They may be used for different kind of streams, which are identified via | |
| their FQDN :dbus:prop:`Name`. | |
| .. _dbus-chardev-fqdn: | |
| Here are some known reserved kind names (the ``org.qemu`` prefix is | |
| reserved by QEMU): | |
| org.qemu.console.serial.0 | |
| A serial console stream. | |
| org.qemu.monitor.hmp.0 | |
| A QEMU HMP human monitor. | |
| org.qemu.monitor.qmp.0 | |
| A QEMU QMP monitor. | |
| org.qemu.usbredir | |
| A usbredir stream. | |
| --> | |
| <interface name="org.qemu.Display1.Chardev"> | |
| <!-- | |
| Register: | |
| @stream: a Unix FD to redirect the stream to. | |
| Register a file-descriptor for the stream handling. | |
| The current handler, if any, will be replaced. | |
| --> | |
| <method name="Register"> | |
| <?if $(env.HOST_OS) == windows?> | |
| <arg type="ay" name="listener" direction="in"> | |
| <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/> | |
| </arg> | |
| <?else?> | |
| <arg type="h" name="stream" direction="in"/> | |
| <?endif?> | |
| </method> | |
| <!-- | |
| SendBreak: | |
| Send a break event to the character device. | |
| --> | |
| <method name="SendBreak"/> | |
| <!-- | |
| Name: | |
| The FQDN name to identify the kind of stream. See :ref:`reserved | |
| names<dbus-chardev-fqdn>`. | |
| --> | |
| <property name="Name" type="s" access="read"/> | |
| <!-- | |
| FEOpened: | |
| Whether the front-end side is opened. | |
| --> | |
| <property name="FEOpened" type="b" access="read"/> | |
| <!-- | |
| Echo: | |
| Whether the input should be echo'ed (for serial streams). | |
| --> | |
| <property name="Echo" type="b" access="read"/> | |
| <!-- | |
| Owner: | |
| The D-Bus unique name of the registered handler. | |
| --> | |
| <property name="Owner" type="s" access="read"/> | |
| <!-- | |
| Interfaces: | |
| This property lists extra interfaces provided by the | |
| ``/org/qemu/Display1/Chardev_$i`` object, and can be used to detect | |
| the capabilities with which they are communicating. | |
| Unlike the standard D-Bus Introspectable interface, querying this | |
| property does not require parsing XML. | |
| (earlier version of the display interface do not provide this property) | |
| --> | |
| <property name="Interfaces" type="as" access="read"/> | |
| </interface> | |
| </node> |