mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
stream-restore: skip entries setting action from gnome-control-center
When users select an output device from gnome-control-center UI, the sink of this output device will be set to the configured_default_sink and the default_sink, these actions are expected, but after these actions, the gnome-control-center will call extension_cb() to modify the entries in the database, let all stream entries to bind the sink users select, this is not correct since the sink is default_sink now. This is a temp fix for this issue, after gnome-control-center fixes this problem, this patch should be reverted. Signed-off-by: Hui Wang <hui.wang@canonical.com>
This commit is contained in:
parent
43e3a7f3c3
commit
f899d5f466
1 changed files with 13 additions and 2 deletions
|
|
@ -2051,7 +2051,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!pa_tagstruct_eof(t)) {
|
while (!pa_tagstruct_eof(t)) {
|
||||||
const char *name, *device;
|
const char *name, *device, *client_name;
|
||||||
bool muted;
|
bool muted;
|
||||||
struct entry *entry;
|
struct entry *entry;
|
||||||
#ifdef HAVE_DBUS
|
#ifdef HAVE_DBUS
|
||||||
|
|
@ -2092,7 +2092,18 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
|
||||||
entry_free(entry);
|
entry_free(entry);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
/* When users select an output device from gnome-control-center, the gnome-control-center will change all entries
|
||||||
|
* in the database to bind the sink of this output device, this is not correct since at this moment, the sink is
|
||||||
|
* default_sink and we shouldn't bind a stream to default_sink via preferred_sink or database.
|
||||||
|
* After gnome-control-center fix the issue, let us remove this code */
|
||||||
|
client_name = pa_strnull(pa_proplist_gets(pa_native_connection_get_client(c)->proplist, PA_PROP_APPLICATION_PROCESS_BINARY));
|
||||||
|
if (pa_safe_streq(client_name, "gnome-control-center")) {
|
||||||
|
if (entry->device_valid && m->core->default_sink && pa_safe_streq(device, m->core->default_sink->name)) {
|
||||||
|
entry_free(entry);
|
||||||
|
pa_pstream_send_tagstruct(pa_native_connection_get_pstream(c), reply);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
#ifdef HAVE_DBUS
|
#ifdef HAVE_DBUS
|
||||||
old = entry_read(u, name);
|
old = entry_read(u, name);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue