summaryrefslogtreecommitdiff
path: root/gui_app.c
diff options
context:
space:
mode:
authorNicolas Schodet2019-11-22 21:48:43 +0100
committerNicolas Schodet2019-11-22 21:48:43 +0100
commite85cdfe8a3b6645c10071fd39efff490b4e9401b (patch)
tree55149c6444d2972639a56fea651b42af94797ab7 /gui_app.c
parent9c081c7ddef2571e608ac194a8b150fdec450f0c (diff)
Embrace GLib, use it for error handling and memory allocation
Diffstat (limited to 'gui_app.c')
-rw-r--r--gui_app.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/gui_app.c b/gui_app.c
index 5df8d15..e58e4ae 100644
--- a/gui_app.c
+++ b/gui_app.c
@@ -20,8 +20,6 @@
* Web: http://ni.fr.eu.org/
* Email: <nico at ni.fr.eu.org>
*/
-#include <gtk/gtk.h>
-
#include "gui_app.h"
#include "gui_app_window.h"
#include "options.h"
@@ -49,7 +47,9 @@ gui_app_usb_source_cb(gpointer user_data)
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 0;
- libusb_handle_events_timeout(priv->usb, &tv);
+ int r = libusb_handle_events_timeout(priv->usb, &tv);
+ if (r)
+ g_error("unable to handle libusb events: %s", libusb_strerror(r));
g_signal_emit_by_name(app, "video-ready");
return G_SOURCE_CONTINUE;
}
@@ -70,7 +70,7 @@ gui_app_startup(GApplication *app)
GuiAppPrivate *priv = gui_app_get_instance_private(GUI_APP(app));
int r = libusb_init(&priv->usb);
if (r)
- utils_fatal("unable to initialize libusb: %s", libusb_strerror(r));
+ g_error("unable to initialize libusb: %s", libusb_strerror(r));
priv->usb_source = usb_source_new(priv->usb);
g_source_set_callback(priv->usb_source, gui_app_usb_source_cb, app,
NULL);
@@ -81,13 +81,17 @@ static void
gui_app_activate(GApplication *app)
{
GuiAppPrivate *priv = gui_app_get_instance_private(GUI_APP(app));
- struct device *device = device_open(priv->usb);
- if (!device)
- utils_fatal("unable to find device");
- GuiAppWindow *window;
- window = gui_app_window_new(GUI_APP(app));
- gui_app_window_open(window, device);
- gtk_window_present(GTK_WINDOW(window));
+ GError *error = NULL;
+ struct device *device = device_open(priv->usb, &error);
+ if (!device) {
+ utils_dialog_error(NULL, "unable to find device: %s", error->message);
+ g_error_free(error);
+ } else {
+ GuiAppWindow *window;
+ window = gui_app_window_new(GUI_APP(app));
+ gui_app_window_open(window, device);
+ gtk_window_present(GTK_WINDOW(window));
+ }
}
static void