From 844ee812d60fafe0edbe5ac577f3809fb7549aa2 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 16 May 2022 16:13:59 +0200 Subject: Update default buttons after click The actual state might differ from the desired state after clicking, and we don't seem to get any callback from the PA-server in that case, so do a manual refresh. --- src/pavucontrol.cc | 10 ++++++++++ src/pavucontrol.h | 2 ++ src/sinkwidget.cc | 1 + src/sourcewidget.cc | 1 + 4 files changed, 14 insertions(+) diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc index 4b1d502..4e62f33 100644 --- a/src/pavucontrol.cc +++ b/src/pavucontrol.cc @@ -665,6 +665,16 @@ pa_context* get_context(void) { return context; } +void update_default_sinks(MainWindow *w) { + pa_operation *o; + if (!(o = pa_context_get_server_info(context, server_info_cb, w))) { + show_error(QObject::tr("pa_context_get_server_info() failed").toUtf8().constData()); + return; + } + pa_operation_unref(o); + n_outstanding++; +} + void connectToPulse(void) { pa_proplist *proplist = pa_proplist_new(); pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QObject::tr("PulseAudio Volume Control").toUtf8().constData()); diff --git a/src/pavucontrol.h b/src/pavucontrol.h index 925be4f..3d7fa88 100644 --- a/src/pavucontrol.h +++ b/src/pavucontrol.h @@ -61,6 +61,8 @@ enum SourceType { SOURCE_MONITOR, }; +class MainWindow; +void update_default_sinks(MainWindow *w); pa_context* get_context(void); void show_error(const char *txt); diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc index 7bec630..f404a0b 100644 --- a/src/sinkwidget.cc +++ b/src/sinkwidget.cc @@ -111,6 +111,7 @@ void SinkWidget::onDefaultToggleButton() { return; } pa_operation_unref(o); + update_default_sinks(mpMainWindow); } void SinkWidget::onPortChange() { diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc index cecd893..6dbfeea 100644 --- a/src/sourcewidget.cc +++ b/src/sourcewidget.cc @@ -65,6 +65,7 @@ void SourceWidget::onDefaultToggleButton() { return; } pa_operation_unref(o); + update_default_sinks(mpMainWindow); } void SourceWidget::onPortChange() { -- cgit v1.2.3-55-g7522