X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=oss_write.c;h=33cf8c3cf1d56b3b0e851e1157279e5351529d3f;hp=57bdcfa6b9df8b7b81c4345e6332c4add44f9399;hb=5254df7e470dc49a29f91fa8185b98c40246f5ea;hpb=3879481ddabc38236b9eee979a090c2a9bfa74d3 diff --git a/oss_write.c b/oss_write.c index 57bdcfa6..33cf8c3c 100644 --- a/oss_write.c +++ b/oss_write.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2013 Andre Noll + * Copyright (C) 2009-2014 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -46,7 +46,7 @@ static int get_oss_format(enum sample_format sf) static void oss_pre_select(struct sched *s, struct task *t) { - struct writer_node *wn = container_of(t, struct writer_node, task); + struct writer_node *wn = task_context(t); struct private_oss_write_data *powd = wn->private_data; int ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF); @@ -157,10 +157,10 @@ err_free: return ret; } -static void oss_post_select(__a_unused struct sched *s, +static int oss_post_select(__a_unused struct sched *s, struct task *t) { - struct writer_node *wn = container_of(t, struct writer_node, task); + struct writer_node *wn = task_context(t); struct private_oss_write_data *powd = wn->private_data; struct btr_node *btrn = wn->btrn; size_t frames, bytes; @@ -181,7 +181,7 @@ static void oss_post_select(__a_unused struct sched *s, ret = oss_init(wn, rate, ch, format); if (ret < 0) goto out; - return; + return 0; } btr_merge(btrn, wn->min_iqs); bytes = btr_next_buffer(btrn, &data); @@ -199,9 +199,9 @@ static void oss_post_select(__a_unused struct sched *s, btr_consume(btrn, ret); ret = 0; out: - t->error = ret; if (ret < 0) btr_remove_node(&wn->btrn); + return ret; } __malloc static void *oss_parse_config_or_die(int argc, char **argv) @@ -235,9 +235,6 @@ void oss_write_init(struct writer *w) w->post_select = oss_post_select; w->parse_config_or_die = oss_parse_config_or_die; w->free_config = oss_free_config; - w->help = (struct ggo_help) { - .short_help = oss_write_args_info_help, - .detailed_help = oss_write_args_info_detailed_help - }; + w->help = (struct ggo_help)DEFINE_GGO_HELP(oss_write); oss_write_cmdline_parser_free(&dummy); }