X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.h;h=7ae28fe4946a578b0d0f229359f740252de4b1b9;hp=de8ce8e8b5d0ca128cbc2cb4f3bb568ec416c07e;hb=8c74f69967ee4d6dff3970735c8bc83ea1aae4cb;hpb=027f2c1237051d2d569d6be7f381c886f659bac3 diff --git a/filter.h b/filter.h index de8ce8e8..7ae28fe4 100644 --- a/filter.h +++ b/filter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2014 Andre Noll + * Copyright (C) 2005 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -27,7 +27,7 @@ struct filter_node { /** The buffer tree node. */ struct btr_node *btrn; /** The task corresponding to this filter node. */ - struct task task; + struct task *task; /** The minimal input queue size, see \ref btr_node_status(). */ size_t min_iqs; }; @@ -96,19 +96,21 @@ struct filter { /** * Set scheduler timeout and add file descriptors to fd sets. * - * This function is used to control the timeout value for select. It - * only allowed to decrease the current value. The second purpose of - * this function is to set file descriptors to be watched by the - * subsequent select call to the two fd sets. + * This function controls the timeout value for the next call to + * select(2). It may decrease the current timeout but shall never + * increase it. The second purpose of this function is to add file + * descriptors to the two fd sets of the sched structure. The + * descriptors in these sets will be watched by the subsequent + * select(2) call. */ - void (*pre_select)(struct sched *s, struct task *t); + void (*pre_select)(struct sched *s, void *context); /** * Convert (filter) the given data. * * Pointer to the converting function of the filter. On errors, the * post_select function is supposed to return a negative error code. */ - int (*post_select)(struct sched *s, struct task *t); + int (*post_select)(struct sched *s, void *context); /** * Answer a buffer tree query. * @@ -121,7 +123,7 @@ struct filter { void filter_init(void); int check_filter_arg(char *filter_arg, void **conf); void print_filter_helps(unsigned flags); -void generic_filter_pre_select(struct sched *s, struct task *t); +void generic_filter_pre_select(struct sched *s, void *context); int decoder_execute(const char *cmd, unsigned sample_rate, unsigned channels, char **result);