summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2006-06-02 17:05:27 +0000
committerPierre Ossman <ossman@cendio.se>2006-06-02 17:05:27 +0000
commit371126a06effd7a9a4d640833e058b2396b7abb9 (patch)
treec82107498bf06f83edbabf3f088129577ee677d5
parent54ccb0d0a1dae3d75bb6a0202575ac1bdfec67fe (diff)
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
-rw-r--r--src/vumeter.cc29
1 files 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();