From bc026593d6b7e01e05578cbbc6369cdd4a4b016c Mon Sep 17 00:00:00 2001 From: Julian Bouzas Date: Tue, 8 Apr 2025 08:45:49 -0400 Subject: [PATCH] m-dbus-connection: Add 'plugin.name' and 'bus.system' args These allow creating a shared system D-Bus connection. --- modules/module-dbus-connection.c | 13 +++++++++++-- src/config/wireplumber.conf | 8 ++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/modules/module-dbus-connection.c b/modules/module-dbus-connection.c index b337be5e..4d5dfb44 100644 --- a/modules/module-dbus-connection.c +++ b/modules/module-dbus-connection.c @@ -255,10 +255,19 @@ wp_dbus_connection_class_init (WpDBusConnectionClass * klass) WP_PLUGIN_EXPORT GObject * wireplumber__module_init (WpCore * core, WpSpaJson * args, GError ** error) { + g_autofree gchar *plugin_name = NULL; + gboolean is_system_bus = FALSE; + + if (args) + wp_spa_json_object_get (args, + "plugin.name", "s", &plugin_name, + "bus.system", "b", &is_system_bus, + NULL); + return G_OBJECT (g_object_new ( wp_dbus_connection_get_type(), - "name", "dbus-connection", + "name", plugin_name ? plugin_name : "dbus-connection", "core", core, - "bus-type", G_BUS_TYPE_SESSION, + "bus-type", is_system_bus ? G_BUS_TYPE_SYSTEM : G_BUS_TYPE_SESSION, NULL)); } diff --git a/src/config/wireplumber.conf b/src/config/wireplumber.conf index 337e1950..be30851a 100644 --- a/src/config/wireplumber.conf +++ b/src/config/wireplumber.conf @@ -265,9 +265,17 @@ wireplumber.components = [ ## The shared D-Bus connection { name = libwireplumber-module-dbus-connection, type = module + arguments = { plugin.name = dbus-connection, bus.system = false } provides = support.dbus } + ## The shared system D-Bus connection + { + name = libwireplumber-module-dbus-connection, type = module + arguments = { plugin.name = system-dbus-connection, bus.system = true } + provides = support.system-dbus + } + ## Module managing the portal permissions { name = libwireplumber-module-portal-permissionstore, type = module