From 1f501d24799fb7b132b1e36e0278ae1c89021bcd Mon Sep 17 00:00:00 2001 From: Sean Davis <smd.seandavis@gmail.com> Date: Tue, 21 Nov 2017 23:32:05 -0500 Subject: [PATCH] Change default devices when changed from external application (bug #13908) --- panel-plugin/pulseaudio-volume.c | 13 +++++++++++-- panel-plugin/pulseaudio-volume.h | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/panel-plugin/pulseaudio-volume.c b/panel-plugin/pulseaudio-volume.c index df93d13..6a2f1a0 100644 --- a/panel-plugin/pulseaudio-volume.c +++ b/panel-plugin/pulseaudio-volume.c @@ -262,6 +262,9 @@ pulseaudio_volume_server_info_cb (pa_context *context, PulseaudioVolume *volume = PULSEAUDIO_VOLUME (userdata); if (i == NULL) return; + pulseaudio_volume_set_default_input (volume, i->default_source_name); + pulseaudio_volume_set_default_output (volume, i->default_sink_name); + pulseaudio_debug ("server: %s@%s, v.%s", i->user_name, i->server_name, i->server_version); pa_context_get_sink_info_by_name (context, i->default_sink_name, pulseaudio_volume_sink_info_cb, volume); pa_context_get_source_info_by_name (context, i->default_source_name, pulseaudio_volume_source_info_cb, volume); @@ -902,8 +905,11 @@ pulseaudio_volume_default_sink_changed (pa_context *context, void pulseaudio_volume_set_default_output (PulseaudioVolume *volume, - gchar *name) + const gchar *name) { + if (g_strcmp0(name, volume->default_sink_name) == 0) + return; + g_free (volume->default_sink_name); volume->default_sink_name = g_strdup (name); @@ -942,8 +948,11 @@ pulseaudio_volume_default_source_changed (pa_context *context, void pulseaudio_volume_set_default_input (PulseaudioVolume *volume, - gchar *name) + const gchar *name) { + if (g_strcmp0 (name, volume->default_source_name) == 0) + return; + g_free (volume->default_source_name); volume->default_source_name = g_strdup (name); diff --git a/panel-plugin/pulseaudio-volume.h b/panel-plugin/pulseaudio-volume.h index 2bef77f..33cff96 100644 --- a/panel-plugin/pulseaudio-volume.h +++ b/panel-plugin/pulseaudio-volume.h @@ -63,14 +63,14 @@ gchar *pulseaudio_volume_get_output_by_name (PulseaudioVol gchar *name); const gchar *pulseaudio_volume_get_default_output (PulseaudioVolume *volume); void pulseaudio_volume_set_default_output (PulseaudioVolume *volume, - gchar *name); + const gchar *name); GList *pulseaudio_volume_get_input_list (PulseaudioVolume *volume); gchar *pulseaudio_volume_get_input_by_name (PulseaudioVolume *volume, gchar *name); const gchar *pulseaudio_volume_get_default_input (PulseaudioVolume *volume); void pulseaudio_volume_set_default_input (PulseaudioVolume *volume, - gchar *name); + const gchar *name); G_END_DECLS -- GitLab