use GOptionContext instead of getopt

This commit is contained in:
Tomasz Moń
2009-02-27 12:57:52 +01:00
parent ca23f2c94c
commit d4c86b3a60
2 changed files with 19 additions and 20 deletions

38
gdigi.c
View File

@@ -347,29 +347,27 @@ GStrv query_preset_names(PresetBank bank)
return str_array; return str_array;
} }
int main(int argc, char *argv[]) { static GOptionEntry options[] = {
gtk_init(&argc, &argv); {"device", 'd', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING, &device, "MIDI device port to use", NULL},
{NULL}
int c;
while (1) {
static struct option long_options[] = {
{"device", required_argument, 0, 'd'},
{0, 0, 0, 0}
}; };
int option_index = 0;
c = getopt_long(argc, argv, "d:", long_options, &option_index);
if (c == -1)
break;
switch(c) { int main(int argc, char *argv[]) {
case 'd': GError *error = NULL;
device = optarg; GOptionContext *context;
break; context = g_option_context_new(NULL);
default: g_option_context_add_main_entries(context, options, NULL);
abort(); g_option_context_add_group(context, gtk_get_option_group(TRUE));
}
if (!g_option_context_parse(context, &argc, &argv, &error)) {
g_message("option parsing failed: %s\n", error->message);
g_error_free(error);
g_option_context_free(context);
exit(EXIT_FAILURE);
} }
g_option_context_free(context);
if (open_device() == TRUE) { if (open_device() == TRUE) {
GtkWidget *msg = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GtkWidget *msg = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_ERROR, GTK_MESSAGE_ERROR,
@@ -388,5 +386,5 @@ int main(int argc, char *argv[]) {
if (input != NULL) if (input != NULL)
snd_rawmidi_close(input); snd_rawmidi_close(input);
return 0; return EXIT_SUCCESS;
} }

View File

@@ -18,6 +18,7 @@
#define GDIGI_H #define GDIGI_H
#include <glib.h> #include <glib.h>
#include <glib-object.h>
enum { enum {
WAH_TYPE_CRY = 132, WAH_TYPE_CRY = 132,