trivial mdct cleanups
[paraslash.git] / write.h
diff --git a/write.h b/write.h
index 9723977ae4357506ac1c6b64284695577d1e5683..8816be7314bcd14516afc4e91226f3f3124df6c1 100644 (file)
--- a/write.h
+++ b/write.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2009 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -13,12 +13,10 @@ 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;
-       /** Send that many bytes in one go. */
-       int chunk_bytes;
        /** Pointer to the group this node belongs to. */
        struct writer_node_group *wng;
        /** The writer-specific configuration of this node. */
@@ -49,7 +47,7 @@ struct writer {
         * Open one instance of this writer.
         *
         * This function should perform any work necessary to write the incoming
-        * stream. If To this aim, it may allocate its private data structure and store
+        * stream. To this aim, it may allocate its private data structure and store
         * a pointer to that structure via the given writer_node parameter.
         */
        int (*open)(struct writer_node *);
@@ -84,6 +82,7 @@ struct writer {
         * This is a optional function pointer used for cleaning up.
         */
        void (*shutdown)(struct writer_node *);
+       struct ggo_help help;
 };
 
 /**
@@ -94,12 +93,10 @@ struct writer_node_group {
        unsigned num_writers;
        /** Array of pointers to the corresponding writer nodes. */
        struct writer_node *writer_nodes;
-       /** The maximum of the chunk_bytes values of the writer nodes in this group. */
-       int max_chunk_bytes;
        /** Non-zero if an error or end of file was encountered by the feeding task. */
        int *input_error;
        /** Current output buffer. */
-       char *buf;
+       char **bufp;
        /** Number of bytes loaded in the output buffer. */
        size_t *loaded;
        /** Number of audio channels of the current stream. */
@@ -110,6 +107,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. */