From: Marc-André Lureau <marcandre.lur...@redhat.com> This property is similar to ``org.freedesktop.DBus.Interfaces`` property on the bus interface: it's an array of strings listing the extra interfaces and capabilities available, in a convenient way.
Most interfaces are implicit, as they are required. For ``org/qemu/Display1_$id``, we can list the Keyboard And Mouse interfaces. Those could be optional. Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- ui/dbus-console.c | 6 +++ ui/dbus-display1.xml | 118 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 122 insertions(+), 2 deletions(-) diff --git a/ui/dbus-console.c b/ui/dbus-console.c index f0a060dc81..2f4d3439d1 100644 --- a/ui/dbus-console.c +++ b/ui/dbus-console.c @@ -494,6 +494,11 @@ dbus_display_console_new(DBusDisplay *display, QemuConsole *con) char device_addr[256] = ""; DBusDisplayConsole *ddc; int idx; + const char *interfaces[] = { + "org.qemu.Display1.Keyboard", + "org.qemu.Display1.Mouse", + NULL + }; assert(display); assert(con); @@ -518,6 +523,7 @@ dbus_display_console_new(DBusDisplay *display, QemuConsole *con) "width", qemu_console_get_width(con, 0), "height", qemu_console_get_height(con, 0), "device-address", device_addr, + "interfaces", interfaces, NULL); g_object_connect(ddc->iface, "swapped-signal::handle-register-listener", diff --git a/ui/dbus-display1.xml b/ui/dbus-display1.xml index 80eae363f0..2c4acce593 100644 --- a/ui/dbus-display1.xml +++ b/ui/dbus-display1.xml @@ -26,6 +26,20 @@ 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> <!-- @@ -126,12 +140,27 @@ 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 in implemented on ``/org/qemu/Display1/Console_$id`` (see + This interface is optionally implemented on + ``/org/qemu/Display1/Console_$id`` (see :dbus:iface:`~org.qemu.Display1.Console`). --> <interface name="org.qemu.Display1.Keyboard"> @@ -170,7 +199,8 @@ <!-- org.qemu.Display1.Mouse: - This interface in implemented on ``/org/qemu/Display1/Console_$id`` (see + This interface is optionally implemented on + ``/org/qemu/Display1/Console_$id`` (see :dbus:iface:`~org.qemu.Display1.Console` documentation). .. _dbus-button-values: @@ -384,6 +414,20 @@ <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> <!-- @@ -481,6 +525,20 @@ <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> <!-- @@ -530,6 +588,20 @@ <arg type="h" name="listener" direction="in"/> <?endif?> </method> + + <!-- + 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> <!-- @@ -616,6 +688,20 @@ <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> <!-- @@ -704,6 +790,20 @@ <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> <!-- @@ -785,5 +885,19 @@ 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> -- 2.40.1