summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAndrzej Bieniek <andyhelp@gmail.com>2013-06-28 22:00:27 +0100
committerJens Georg <mail@jensge.org>2013-10-16 14:50:44 +0200
commit7d1c1d65f92de96468fa7d4b818d28fc373d4c3b (patch)
treedfb9d14b48dd8dc638107b62988e245508cbba2e /examples
parent1c11743df85824dac0cb38cf1655864a78df5586 (diff)
downloadgupnp-7d1c1d65f92de96468fa7d4b818d28fc373d4c3b.tar.gz
examples/light-server: add --quiet and --help options
Quiet option is useful to disable printing overhead when measuring library performance. Example run: gupnp/examples$ ./light-server -q ^C gupnp/examples$ ./light-server --help Usage: lt-light-server [OPTION...] Help Options: -h, --help Show help options Application Options: -q, --quiet Turn off output https://bugzilla.gnome.org/show_bug.cgi?id=708575
Diffstat (limited to 'examples')
-rw-r--r--examples/light-server.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/examples/light-server.c b/examples/light-server.c
index 2dcddf3..f1b7162 100644
--- a/examples/light-server.c
+++ b/examples/light-server.c
@@ -14,6 +14,13 @@
#include <gmodule.h>
static gboolean status;
+static gboolean quiet;
+
+static GOptionEntry entries[] =
+{
+ { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, "Turn off output", NULL },
+ { NULL }
+};
G_BEGIN_DECLS
G_MODULE_EXPORT void set_target_cb (GUPnPService *service,
@@ -55,7 +62,10 @@ set_target_cb (GUPnPService *service,
"Status", G_TYPE_BOOLEAN, status,
NULL);
- g_print ("The light is now %s.\n", status ? "on" : "off");
+ if (!quiet)
+ {
+ g_print ("The light is now %s.\n", status ? "on" : "off");
+ }
}
/* Return success to the client */
@@ -116,6 +126,7 @@ query_status_cb (G_GNUC_UNUSED GUPnPService *service,
int
main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
{
+ GOptionContext *optionContext;
GMainLoop *main_loop;
GError *error = NULL;
GUPnPContext *context;
@@ -126,9 +137,20 @@ main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
g_type_init ();
#endif
+ optionContext = g_option_context_new (NULL);
+ g_option_context_add_main_entries (optionContext, entries, NULL);
+ if (!g_option_context_parse (optionContext, &argc, &argv, &error))
+ {
+ g_print ("option parsing failed: %s\n", error->message);
+ exit (1);
+ }
+
/* By default the light is off */
status = FALSE;
- g_print ("The light is now %s.\n", status ? "on" : "off");
+ if (!quiet)
+ {
+ g_print ("The light is now %s.\n", status ? "on" : "off");
+ }
/* Create the UPnP context */
context = gupnp_context_new (NULL, NULL, 0, &error);