From d267bcc4723e74651a90e2b5ace4dce2774fbd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Sun, 26 Oct 2025 14:52:21 +0100 Subject: [PATCH] sound: Ignore loopbacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These are used in pipewire/wireplumber for role based routing policies and are thus not useful to display to the user. Signed-off-by: Guido Günther --- panels/sound/cc-device-combo-row.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/panels/sound/cc-device-combo-row.c b/panels/sound/cc-device-combo-row.c index 8b5b020856..5c4460444a 100644 --- a/panels/sound/cc-device-combo-row.c +++ b/panels/sound/cc-device-combo-row.c @@ -188,10 +188,24 @@ device_added_cb (CcDeviceComboRow *self, guint id) { GvcMixerUIDevice *device = lookup_device_id (self, id); + GvcMixerStream *stream; + guint stream_id; if (device == NULL) return; + stream_id = gvc_mixer_ui_device_get_stream_id (device); + stream = gvc_mixer_control_lookup_stream_id (self->mixer_control, stream_id); + if (stream) + { + const char *name; + + name = gvc_mixer_stream_get_name (stream); + /* Don't add role loopbacks as switching to them is not useful */ + if (g_str_has_prefix (name, "input.loopback.sink.role.")) + return; + } + g_signal_handlers_block_by_func (self, selection_changed_cb, self); g_list_store_append (self->device_list, device); -- GitLab