]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - alsa_write.c
Replace gettimeofday() by clock_gettime().
[paraslash.git] / alsa_write.c
index 2e096c0c78856e6d0691f31c5fcba768ab3a695d..43f0811a58be4c5835a5109ffe8ff34f15df1e2d 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (C) 2005-2012 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -15,7 +15,6 @@
 #include <regex.h>
 #include <sys/types.h>
 #include <alsa/asoundlib.h>
 #include <regex.h>
 #include <sys/types.h>
 #include <alsa/asoundlib.h>
-#include <sys/time.h>
 
 #include "para.h"
 #include "fd.h"
 
 #include "para.h"
 #include "fd.h"
@@ -247,8 +246,10 @@ static void alsa_write_post_select(__a_unused struct sched *s,
        snd_pcm_sframes_t frames;
        int ret;
 
        snd_pcm_sframes_t frames;
        int ret;
 
+       ret = task_get_notification(t);
+       if (ret < 0)
+               goto err;
 again:
 again:
-       t->error = 0;
        ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
        if (ret == 0)
                return;
        ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
        if (ret == 0)
                return;
@@ -328,18 +329,18 @@ err:
        t->error = ret;
 }
 
        t->error = ret;
 }
 
-__malloc static void *alsa_parse_config_or_die(const char *options)
+__malloc static void *alsa_parse_config_or_die(int argc, char **argv)
 {
        struct alsa_write_args_info *conf = para_calloc(sizeof(*conf));
 
        /* exits on errors */
 {
        struct alsa_write_args_info *conf = para_calloc(sizeof(*conf));
 
        /* exits on errors */
-       alsa_cmdline_parser_string(options, conf, "alsa_write");
+       alsa_write_cmdline_parser(argc, argv, conf);
        return conf;
 }
 
 static void alsa_free_config(void *conf)
 {
        return conf;
 }
 
 static void alsa_free_config(void *conf)
 {
-       alsa_cmdline_parser_free(conf);
+       alsa_write_cmdline_parser_free(conf);
 }
 
 /**
 }
 
 /**
@@ -353,7 +354,7 @@ void alsa_write_init(struct writer *w)
 {
        struct alsa_write_args_info dummy;
 
 {
        struct alsa_write_args_info dummy;
 
-       alsa_cmdline_parser_init(&dummy);
+       alsa_write_cmdline_parser_init(&dummy);
        w->close = alsa_close;
        w->pre_select = alsa_write_pre_select;
        w->post_select = alsa_write_post_select;
        w->close = alsa_close;
        w->pre_select = alsa_write_pre_select;
        w->post_select = alsa_write_post_select;
@@ -363,5 +364,5 @@ void alsa_write_init(struct writer *w)
                .short_help = alsa_write_args_info_help,
                .detailed_help = alsa_write_args_info_detailed_help
        };
                .short_help = alsa_write_args_info_help,
                .detailed_help = alsa_write_args_info_detailed_help
        };
-       alsa_cmdline_parser_free(&dummy);
+       alsa_write_cmdline_parser_free(&dummy);
 }
 }