[pulseaudio-discuss] [pavucontrol PATCH] Add --retry command line option

Frédéric Dalleau frederic.dalleau at linux.intel.com
Fri Jun 22 02:03:08 PDT 2012


As a developper, I find it annoying to restart pavucontrol everytime I restart
pulseaudio, moreover the error dialog sometimes needs an additional click
before restarting.
Add it as a command line option so that default behavior is not changed.
---
 src/pavucontrol.cc |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
index 4db7d95..72ec980 100644
--- a/src/pavucontrol.cc
+++ b/src/pavucontrol.cc
@@ -46,6 +46,7 @@ static pa_context* context = NULL;
 static pa_mainloop_api* api = NULL;
 static int n_outstanding = 0;
 static int default_tab = 0;
+static bool retry = false;
 static int reconnect_timeout = 1;
 
 void show_error(const char *txt) {
@@ -621,8 +622,14 @@ gboolean connect_to_pulse(gpointer userdata) {
             reconnect_timeout = 5;
         }
         else {
-            reconnect_timeout = -1;
-            Gtk::Main::quit();
+            if(!retry) {
+                reconnect_timeout = -1;
+                Gtk::Main::quit();
+            } else {
+                g_debug(_("Connection failed, attempting reconnect"));
+                reconnect_timeout = 5;
+                g_timeout_add_seconds(reconnect_timeout, connect_to_pulse, w);
+            }
         }
     }
 
@@ -651,6 +658,12 @@ int main(int argc, char *argv[]) {
     entry.set_description(_("Select a specific tab on load."));
     group.add_entry(entry, default_tab);
 
+    Glib::OptionEntry entry2;
+    entry2.set_long_name("retry");
+    entry2.set_short_name('r');
+    entry2.set_description(_("Retry forever if pa quits (every 5 seconds)."));
+    group.add_entry(entry2, retry);
+
     options.set_main_group(group);
 
     try {
-- 
1.7.9.5



More information about the pulseaudio-discuss mailing list