X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.h;h=321d763c1f9cb5b743db1cbbbf3f95f2f68774cb;hp=a6b390719e72d0d9b1852915b4747f9cca4cfb5a;hb=64dd27ad50e4440b0ba32565ba9cd98a3db66993;hpb=607ac63646d7c31aa1792dcf1d9a60e498654376 diff --git a/filter.h b/filter.h index a6b39071..321d763c 100644 --- a/filter.h +++ b/filter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2006 Andre Noll + * Copyright (C) 2005-2007 Andre Noll * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,18 +75,14 @@ struct filter_chain { * pointer to variable containing the number of bytes loaded in the output buffer */ size_t *out_loaded; - /** - * - * - * non-zero if end of file was encountered - */ - int *eof; - /** - * - * - * non-zero if an error occured - */ - int error; + /** non-zero if this filter wont' produce any more output */ + int eof; + /** pointer to the eof flag of the receiving application */ + int *input_eof; + /** pointer to the eof flag of the writing application */ + int *output_eof; + /** the task associated with the filter chain */ + struct task task; }; /** @@ -213,10 +209,9 @@ struct filter_callback { void close_filters(struct filter_chain *fc); -int filter_io(struct filter_chain *fc); void filter_init(struct filter *all_filters); int check_filter_arg(char *filter_arg, void **conf); -int del_filter_callback(struct filter_callback *fcb); +void filter_pre_select(__a_unused struct sched *s, struct task *t); /** * the structure associated with a paraslash filter @@ -343,15 +338,13 @@ DECLARE_EXTERN_FILTER_INIT(oggdec); #else #define OGGDEC_FILTER #endif +/** \endcond */ -/* - * a macro that defines an array of all available filters - */ -#define DEFINE_FILTER_ARRAY(fa) struct filter fa[] = { \ +/** define an array of all available filters */ +#define DEFINE_FILTER_ARRAY(filters) struct filter filters[] = { \ FILTER_INIT(wav) \ FILTER_INIT(compress) \ MP3DEC_FILTER \ AACDEC_FILTER \ OGGDEC_FILTER \ { .name = NULL } }; -/** \endcond */