From f287cea9e808a09c8731a5c06d89d6d63bea6f61 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 16 Aug 2018 18:25:30 +0200 Subject: [PATCH] daemon: add some options --- src/daemon/main.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/daemon/main.c b/src/daemon/main.c index a7fae1a5d..674c446b9 100644 --- a/src/daemon/main.c +++ b/src/daemon/main.c @@ -18,19 +18,33 @@ */ #include +#include #include #include #include +#include "config.h" #include "daemon-config.h" +static const char *daemon_name = "pipewire-0"; + static void do_quit(void *data, int signal_number) { struct pw_main_loop *loop = data; pw_main_loop_quit(loop); } +static void show_help(const char *name) +{ + fprintf(stdout, "%s [options]\n" + " -h, --help Show this help\n" + " -v, --version Show version\n" + " -n, --name Daemon name (Default %s)\n", + name, + daemon_name); +} + int main(int argc, char *argv[]) { struct pw_core *core; @@ -38,9 +52,38 @@ int main(int argc, char *argv[]) struct pw_daemon_config *config; char *err = NULL; struct pw_properties *props; + static const struct option long_options[] = { + {"help", 0, NULL, 'h'}, + {"version", 0, NULL, 'v'}, + {"name", 1, NULL, 'n'}, + {NULL, 0, NULL, 0} + }; + char c; pw_init(&argc, &argv); + while ((c = getopt_long(argc, argv, "hvn:", long_options, NULL)) != -1) { + switch (c) { + case 'h' : + show_help(argv[0]); + return 0; + case 'v' : + fprintf(stdout, "%s\n" + "Compiled with libpipewire %s\n" + "Linked with libpipewire %s\n", + argv[0], + pw_get_headers_version(), + pw_get_library_version()); + return 0; + case 'n' : + daemon_name = optarg; + fprintf(stdout, "set name %s\n", daemon_name); + break; + default: + return -1; + } + } + /* parse configuration */ config = pw_daemon_config_new(); if (pw_daemon_config_load(config, &err) < 0) { @@ -49,7 +92,7 @@ int main(int argc, char *argv[]) return -1; } - props = pw_properties_new(PW_CORE_PROP_NAME, "pipewire-0", + props = pw_properties_new(PW_CORE_PROP_NAME, daemon_name, PW_CORE_PROP_DAEMON, "1", NULL); loop = pw_main_loop_new(props);