X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=mp3dec_filter.c;h=d95758e4238ef77989e969cc5ff210d0d6dd5504;hp=75745044514159adf9918a0757928df91c2249b7;hb=32600902da1667801fd8c118ed5053b86cae07cb;hpb=c87045a40b9462ebeb28cc169d7bb3721c9a81d3 diff --git a/mp3dec_filter.c b/mp3dec_filter.c index 75745044..d95758e4 100644 --- a/mp3dec_filter.c +++ b/mp3dec_filter.c @@ -316,6 +316,25 @@ err: return ret; } +static int mp3dec_execute(struct btr_node *btrn, const char *cmd, char **result) +{ + struct filter_node *fn = btr_context(btrn); + struct private_mp3dec_data *pmd = fn->private_data; + + if (!strcmp(cmd, "samplerate")) { + if (pmd->samplerate == 0) + return -ERRNO_TO_PARA_ERROR(ENAVAIL); + *result = make_message("%u", pmd->samplerate); + return 1; + } + if (!strcmp(cmd, "channels")) { + if (pmd->channels == 0) + return -ERRNO_TO_PARA_ERROR(ENAVAIL); + *result = make_message("%u", pmd->channels); + return 1; + } + return -ERRNO_TO_PARA_ERROR(ENOTSUP); +} /** * The init function of the mp3dec filter. * @@ -334,6 +353,7 @@ void mp3dec_filter_init(struct filter *f) f->parse_config = mp3dec_parse_config; f->pre_select = mp3dec_pre_select; f->post_select = mp3dec_post_select; + f->execute = mp3dec_execute; f->help = (struct ggo_help) { .short_help = mp3dec_filter_args_info_help, .detailed_help = mp3dec_filter_args_info_detailed_help