* 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. */
void *conf;
/** How much of the wng's buffer is already written. */
size_t written;
+ struct btr_node *btrn;
+ struct task task;
};
/** Describes one supported 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.
*
* 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.
*
*/
void (*shutdown)(struct writer_node *);
struct ggo_help help;
+ btr_command_handler execute;
};
/**
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. */