X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=write.h;h=b47784af8785f2df6481cd1d3c23f517d6697adc;hp=365c237bf2b41e92e7ae14129d460d95396576ca;hb=c4d243653174f3f4ffc331a4bfc54de94d612f34;hpb=0855a5fcdbebabacebee968939cf00bf3161cfaf diff --git a/write.h b/write.h index 365c237b..b47784af 100644 --- a/write.h +++ b/write.h @@ -13,8 +13,8 @@ enum writer_enum {WRITER_ENUM}; * Describes one running instance of a writer. */ struct writer_node { - /** Points to the writer structure associated with this node. */ - struct writer *writer; /* FIXME: Should better be only the number. */ + /** The number of this writer. */ + int writer_num; /** Writer-specific data. */ void *private_data; /** Pointer to the group this node belongs to. */ @@ -23,6 +23,8 @@ struct writer_node { void *conf; /** How much of the wng's buffer is already written. */ size_t written; + struct btr_node *btrn; + struct task task; /* move this to btr as btr nodes do not make sense w/o task */ }; /** Describes one supported writer. */ @@ -60,6 +62,7 @@ struct writer { * on errors. */ int (*pre_select)(struct sched *s, struct writer_node *wn); + void (*pre_select_btr)(struct sched *s, struct task *t); /** * Write audio data. * @@ -70,6 +73,7 @@ struct writer { * negative on errors. */ int (*post_select)(struct sched *s, struct writer_node *wn); + void (*post_select_btr)(struct sched *s, struct task *t); /** * Close one instance of the writer. * @@ -107,6 +111,8 @@ struct writer_node_group { struct task task; /** Whether the group is open, i.e. wng_open() was called. */ int open; + /** Max number of bytes written in the previous post_select() call. */ + int last_written; }; /** Loop over each writer node in a writer group. */