X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write.h;h=cb0beff812121b338e3749e80f63ad2cb99999db;hp=fd3983ddf262f1edec986680c856c1d7f7c9c511;hb=HEAD;hpb=764e71ceb1e188086c08e38dfd52d45b67dc15ba diff --git a/write.h b/write.h index fd3983dd..35a8d29f 100644 --- a/write.h +++ b/write.h @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2006 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2006 Andre Noll , see file COPYING. */ /** \file write.h Writer-related structures. */ @@ -24,21 +20,23 @@ struct writer_node { size_t min_iqs; }; -/** Describes one supported writer. */ +/** + * Describes a data sink for audio streams. + * + * A paraslash writer obtains data via the buffer tree mechanism from its + * parent node. It consumes data without producing output on its own. + * + * This structure contains the methods which have to be implemented by each + * writer. + * + * \sa struct \ref writer_node, struct \ref receiver, struct \ref filter, + * struct \ref sched. + */ struct writer { - /** - * Prepare the fd sets for select. - * - * This is called from scheduler. It may use the sched pointer to add - * any file descriptors or to decrease the select timeout. - */ - void (*pre_select)(struct sched *s, void *context); - /** - * Write audio data. - * - * Called from the post_select function of the writer node's task. - */ - int (*post_select)(struct sched *s, void *context); + /** Ask the scheduler to check whether data can be written. */ + void (*pre_monitor)(struct sched *s, void *context); + /** Write audio data. */ + int (*post_monitor)(struct sched *s, void *context); /** * Close one instance of the writer. * @@ -70,7 +68,7 @@ const struct writer *writer_get(int wid); const char *writer_name(int wid); void register_writer_node(struct writer_node *wn, struct btr_node *parent, struct sched *s); -void get_btr_sample_rate(struct btr_node *btrn, int32_t *result); -void get_btr_channels(struct btr_node *btrn, int32_t *result); -void get_btr_sample_format(struct btr_node *btrn, int32_t *result); +int get_btr_sample_rate(struct btr_node *btrn, int32_t *result); +int get_btr_channels(struct btr_node *btrn, int32_t *result); +int get_btr_sample_format(struct btr_node *btrn, int32_t *result); void print_writer_helps(bool detailed);