/*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005 Andre Noll <maan@tuebingen.mpg.de>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
/** 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;
};
/**
* 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 set t->error to a (negative)
- * error code.
+ * 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.
*
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);