X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.h;h=15bfaf8cdb0c2533c463fe8272d21e5528b80dbd;hp=2a75b1864dd49348a50087c5aa7e4aa1e6edb453;hb=bb6721e17e741b7ea52fbf88661d2b177bed72c3;hpb=e9caff38b33b06cf0bc90802539bffd13bfe07bc diff --git a/filter.h b/filter.h index 2a75b186..15bfaf8c 100644 --- a/filter.h +++ b/filter.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2005-2008 Andre Noll + * Copyright (C) 2005-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ -/** \file filter.h Filter-related structures and exported symbols from filter_chain.c. */ +/** \file filter.h Filter-related structures and exported symbols from filter_common.c. */ /** The list of supported filters. */ enum filter_enum {FILTER_ENUM}; @@ -59,13 +59,13 @@ struct filter_chain { * buffer used to read from stdin for para_filter; the output buffer of the * current receiver for para_audiod). */ - char *inbuf; + char **inbufp; /** * The output buffer of the filter chain. * * Points to the output buffer of the last filter in the filter chain. */ - char *outbuf; + char **outbufp; /** Contains the number of bytes loaded in the input buffer. */ size_t *in_loaded; /** Contains the number of bytes loaded in the output buffer. */ @@ -95,18 +95,10 @@ struct filter_chain { struct filter_callback { /** All callbacks are organized in a doubly linked list. */ struct list_head node; - /** - * Private data. - * - * May be initialized by the application before registering the callback. This - * pointer is not used by the filter subsystem. It is provided for use within - * the input/output/close callback functions. - */ - void *data; /** * The input callback. * - * In not \p NULL, the filter subsystem calls this function whenever the filter + * If not \p NULL, the filter subsystem calls this function whenever the filter * consumed some or all of its input buffer. A pointer to the buffer of consumed * data, its length and a pointer to the own \a filter_callback structure are passed * to \a input_cb. The input callback is expected to return a negative value on errors. @@ -143,7 +135,7 @@ struct filter_callback { * Note: As several instances of the same filter may be running at the same * time, all these filter functions must be reentrant; no static non-constant * variables may be used. - * \sa mp3dec.c, oggdec.c, wav.c, compress.c, filter_node + * \sa mp3dec_filter.c, oggdec_filter.c, wav_filter.c, compress_filter.c, filter_node */ struct filter { /** The name of the filter. */ @@ -183,13 +175,6 @@ struct filter { * by the open() function. */ void (*close)(struct filter_node *fn); - /** - * Print the help text for this filter and exit. - * - * This is optional and it is not necessary to initialize this pointer if - * the filter does not have a help text. - */ - void (*print_help)(void); /** * A pointer to the filter's command line parser. * @@ -203,13 +188,16 @@ struct filter { * argv. On failure, a negative paraslash error code must be returned. */ int (*parse_config)(int argc, char **argv, void **config); + + /** The help texts for this filter. */ + struct ggo_help help; }; void close_filters(struct filter_chain *fc); -void filter_init(struct filter *all_filters); +void filter_init(void); int check_filter_arg(char *filter_arg, void **conf); -void filter_pre_select(__a_unused struct sched *s, struct task *t); - +void filter_post_select(__a_unused struct sched *s, struct task *t); +void print_filter_helps(int detailed); static inline void write_int16_host_endian(char *buf, int val) {