From 371126a06effd7a9a4d640833e058b2396b7abb9 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Fri, 2 Jun 2006 17:05:27 +0000 Subject: Throw up a dialog for critical errors as stderr might not be visible. git-svn-id: file:///home/lennart/svn/public/pavumeter/trunk@37 c62a5a7b-6fe3-0310-9d5a-afe6de46906b --- src/vumeter.cc | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/vumeter.cc b/src/vumeter.cc index 54895d5..ab05334 100644 --- a/src/vumeter.cc +++ b/src/vumeter.cc @@ -325,13 +325,23 @@ static struct pa_sample_spec sample_spec = { (enum pa_sample_format) 0, 0, 0 }; static struct pa_channel_map channel_map; static char* source_name = NULL; +void show_error(const char *txt) { + char buf[256]; + + snprintf(buf, sizeof(buf), "%s: %s", txt, pa_strerror(pa_context_errno(context))); + + Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true); + dialog.run(); + + Gtk::Main::quit(); +} + static void stream_update_timing_info_callback(struct pa_stream *s, int success, void *) { pa_usec_t t; int negative = 0; if (!success || pa_stream_get_latency(s, &t, &negative) < 0) { - g_message("Failed to get latency information: %s", pa_strerror(pa_context_errno(context))); - Gtk::Main::quit(); + show_error("Failed to get latency information"); return; } @@ -384,7 +394,8 @@ static void stream_state_callback(struct pa_stream *s, void *) { break; case PA_STREAM_FAILED: - g_message("Connection failed: %s", pa_strerror(pa_context_errno(context))); + show_error("Connection failed"); + break; case PA_STREAM_TERMINATED: Gtk::Main::quit(); @@ -395,8 +406,7 @@ static void context_get_source_info_callback(struct pa_context *c, const struct char t[256]; if (is_last < 0) { - g_message("Failed to get source information: %s", pa_strerror(pa_context_errno(context))); - Gtk::Main::quit(); + show_error("Failed to get source information"); return; } @@ -420,14 +430,12 @@ static void context_get_source_info_callback(struct pa_context *c, const struct static void context_get_server_info_callback(struct pa_context *c, const struct pa_server_info*si, void *) { if (!si) { - g_message("Failed to get server information: %s", pa_strerror(pa_context_errno(context))); - Gtk::Main::quit(); + show_error("Failed to get server information"); return; } if (!*si->default_source_name) { - g_message("No default source set."); - Gtk::Main::quit(); + show_error("No default source set."); return; } @@ -454,7 +462,8 @@ static void context_state_callback(struct pa_context *c, void *) { break; case PA_CONTEXT_FAILED: - g_message("Connection failed: %s", pa_strerror(pa_context_errno(context))); + show_error("Connection failed"); + break; case PA_CONTEXT_TERMINATED: Gtk::Main::quit(); -- cgit