]> git.alsa-project.org Git - alsa-utils.git/commitdiff
alsaloop: add -z,--syslog option to use syslog for errors
authorJaroslav Kysela <perex@perex.cz>
Fri, 26 Jul 2013 14:16:00 +0000 (16:16 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 16 Sep 2013 12:14:41 +0000 (14:14 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
alsaloop/alsaloop.c

index 20150ddec12fb4f6710576fcd11a0aa282a8ee18..3b20682c1a699777e5c508510a579edd02873a05 100644 (file)
@@ -195,6 +195,7 @@ void help(void)
 "-w,--workaround use workaround (serialopen)\n"
 "-U,--xrun      xrun profiling\n"
 "-W,--wake      process wake timeout in ms\n"
+"-z,--syslog    use syslog for errors\n"
 );
        printf("\nRecognized sample formats are:");
        for (k = 0; k < SND_PCM_FORMAT_LAST; ++k) {
@@ -334,6 +335,14 @@ static int add_oss_mixers(struct loopback *loop,
        return 0;
 }
 
+static void enable_syslog(void)
+{
+       if (!use_syslog) {
+               use_syslog = 1;
+               openlog("alsaloop", LOG_NDELAY|LOG_PID, LOG_DAEMON);
+       }
+}
+
 static int parse_config_file(const char *file, snd_output_t *output);
 
 static int parse_config(int argc, char *argv[], snd_output_t *output,
@@ -368,6 +377,7 @@ static int parse_config(int argc, char *argv[], snd_output_t *output,
                {"ossmixer", 1, NULL, 'O'},
                {"workaround", 1, NULL, 'w'},
                {"xrun", 0, NULL, 'U'},
+               {"syslog", 0, NULL, 'z'},
                {NULL, 0, NULL, 0},
        };
        int err, morehelp;
@@ -405,7 +415,7 @@ static int parse_config(int argc, char *argv[], snd_output_t *output,
        while (1) {
                int c;
                if ((c = getopt_long(argc, argv,
-                               "hdg:P:C:X:Y:l:t:F:f:c:r:s:benvA:S:a:m:T:O:w:UW:",
+                               "hdg:P:C:X:Y:l:t:F:f:c:r:s:benvA:S:a:m:T:O:w:UW:z",
                                long_option, NULL)) < 0)
                        break;
                switch (c) {
@@ -417,8 +427,7 @@ static int parse_config(int argc, char *argv[], snd_output_t *output,
                        break;
                case 'd':
                        daemonize = 1;
-                       use_syslog = 1;
-                       openlog("alsaloop", LOG_NDELAY|LOG_PID, LOG_DAEMON);
+                       enable_syslog();
                        break;
                case 'P':
                        arg_pdevice = strdup(optarg);
@@ -561,6 +570,9 @@ static int parse_config(int argc, char *argv[], snd_output_t *output,
                        if (cmdline)
                                arg_default_wake = arg_wake;
                        break;
+               case 'z':
+                       enable_syslog();
+                       break;
                }
        }