X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=alsa_write.c;h=3f4380a11b8c768f0e775451557505d6999b6818;hp=8c12c728e551035bd8eca071216e3c7e44060de5;hb=98f19256d136f8432df0228ce6406892a7d18a5b;hpb=2ce04a49091712719b8fd60a6c7888258b719db1 diff --git a/alsa_write.c b/alsa_write.c index 8c12c728..3f4380a1 100644 --- a/alsa_write.c +++ b/alsa_write.c @@ -247,8 +247,10 @@ static void alsa_write_post_select(__a_unused struct sched *s, snd_pcm_sframes_t frames; int ret; + ret = task_get_notification(t); + if (ret < 0) + goto err; again: - t->error = 0; ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF); if (ret == 0) return; @@ -324,22 +326,22 @@ again: ret = -E_ALSA; err: assert(ret < 0); - btr_remove_node(btrn); + btr_remove_node(&wn->btrn); 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 */ - alsa_cmdline_parser_string(options, conf, "alsa_write"); + alsa_write_cmdline_parser(argc, argv, conf); return conf; } static void alsa_free_config(void *conf) { - alsa_cmdline_parser_free(conf); + alsa_write_cmdline_parser_free(conf); } /** @@ -353,7 +355,7 @@ void alsa_write_init(struct writer *w) { 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; @@ -363,5 +365,5 @@ void alsa_write_init(struct writer *w) .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); }