X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write_common.c;h=93562d0d25781cf157d0c38ce5377bd8d99f2c2a;hp=b05a9e9839e8e5bf6e37531f81307cb8a08318dc;hb=67900f49834e42887225eaf586a1d235ed11910a;hpb=7d473d0025bc76374f55ca2b135b6e2f70ae4a1e diff --git a/write_common.c b/write_common.c index b05a9e98..93562d0d 100644 --- a/write_common.c +++ b/write_common.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2009 Andre Noll + * Copyright (C) 2006-2010 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -81,12 +81,14 @@ void register_writer_node(struct writer_node *wn, struct btr_node *parent) char *name = make_message("%s writer", writer_names[wn->writer_num]); int ret; - wn->btrn = btr_new_node(name, parent, w->execute, wn); + wn->btrn = btr_new_node(&(struct btr_node_description) + EMBRACE(.name = name, .parent = parent, + .handler = w->execute, .context = wn)); strcpy(wn->task.status, name); free(name); ret = w->open(wn); - wn->task.post_select = w->post_select_btr; - wn->task.pre_select = w->pre_select_btr; + wn->task.post_select = w->post_select; + wn->task.pre_select = w->pre_select; register_task(&wn->task); } @@ -145,30 +147,49 @@ void print_writer_helps(int detailed) } } -static int get_btr_value(struct btr_node *btrn, const char *key, int32_t *result) +static void get_btr_value(struct btr_node *btrn, const char *cmd, + int32_t *result) { char *buf = NULL; - int ret = btr_exec_up(btrn, key, &buf); + int ret = btr_exec_up(btrn, cmd, &buf); - if (ret < 0) - return ret; + assert(ret >= 0); ret = para_atoi32(buf, result); + assert(ret >= 0); free(buf); - return ret; } -/* - * Ask parent btr nodes for the samplerate of the current stream. +/** + * Ask parent btr nodes for the sample rate of the current stream. + * + * \param btrn Where to start the search. + * \param result Filled in by this function. + * + * This function is assumed to succeed and terminates on errors. */ -int get_btr_samplerate(struct btr_node *btrn, int32_t *result) +void get_btr_sample_rate(struct btr_node *btrn, int32_t *result) { - return get_btr_value(btrn, "samplerate", result); + get_btr_value(btrn, "sample_rate", result); } -/* +/** * Ask parent btr nodes for the channel count of the current stream. + * + * \param btrn See \ref get_btr_sample_rate. + * \param result See \ref get_btr_sample_rate. + */ +void get_btr_channels(struct btr_node *btrn, int32_t *result) +{ + get_btr_value(btrn, "channels", result); +} + +/** + * Ask parent btr nodes for the number of bits per sample and the byte sex. + * + * \param btrn See \ref get_btr_sample_rate. + * \param result Contains the sample format as an enum sample_format type. */ -int get_btr_channels(struct btr_node *btrn, int32_t *result) +void get_btr_sample_format(struct btr_node *btrn, int32_t *result) { - return get_btr_value(btrn, "channels", result); + get_btr_value(btrn, "sample_format", result); }