X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.h;h=135a6887405e496ef7c44154886d449c1e3e8156;hp=692020c40ca80fcd7dd008d59095d7df469d9399;hb=6fbd93c8420823356a24a3637d332c23c0c85dcd;hpb=c773ec0d537d239e2eebe2d77a786f0ba49fdc22 diff --git a/filter.h b/filter.h index 692020c4..135a6887 100644 --- a/filter.h +++ b/filter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2010 Andre Noll + * Copyright (C) 2005 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -24,8 +24,11 @@ struct filter_node { struct list_head callbacks; /** A pointer to the configuration of this instance. */ void *conf; + /** The buffer tree node. */ struct btr_node *btrn; - struct task task; + /** The task corresponding to this filter node. */ + struct task *task; + /** The minimal input queue size, see \ref btr_node_status(). */ size_t min_iqs; }; @@ -98,15 +101,14 @@ struct filter { * this function is to set file descriptors to be watched by the * subsequent select call to the two fd sets. */ - 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 set t->error to a (negative) - * error code. + * post_select function is supposed to return a negative error code. */ - void (*post_select)(struct sched *s, struct task *t); + int (*post_select)(struct sched *s, void *context); /** * Answer a buffer tree query. * @@ -118,8 +120,8 @@ struct filter { void filter_init(void); int check_filter_arg(char *filter_arg, void **conf); -void print_filter_helps(int detailed); -void generic_filter_pre_select(struct sched *s, struct task *t); +void print_filter_helps(unsigned flags); +void generic_filter_pre_select(struct sched *s, void *context); int decoder_execute(const char *cmd, unsigned sample_rate, unsigned channels, char **result); @@ -136,6 +138,7 @@ static inline void write_int16_host_endian(char *buf, int val) DECLARE_FILTER_INITS +/** Iterate over the array of supported filters. */ #define FOR_EACH_SUPPORTED_FILTER(j) for (j = 0; j < NUM_SUPPORTED_FILTERS; j++) /** The filter array, one structure for each supported filter. */