+/** Audio format dependent information. */
+struct afh_info {
+ /** The number of chunks this audio file contains. */
+ long unsigned chunks_total;
+ /** The length of the audio file in seconds. */
+ long unsigned seconds_total;
+ /** A string that gets filled in by the audio format handler. */
+ char *info_string;
+ /**
+ * The table that specifies the offset of the individual pieces in
+ * the current audio file.
+ */
+ uint32_t *chunk_table;
+ /** Period of time between sending data chunks. */
+ struct timeval chunk_tv;
+ /** End of file timeout - Do not load new audio file until this time. */
+ struct timeval eof_tv;
+ /**
+ * The position of the header within the audio file. Ignored if \a
+ * header_len equals zero.
+ */
+ uint32_t header_offset;
+ /**
+ * The header is needed by senders in case a new client connects in the
+ * middle of the stream. The length of the header defaults to zero
+ * which means that this audio format does not need any special header
+ * treatment. The audio format handler does not need to set this to
+ * zero in this case.
+ */
+ uint32_t header_len;
+ /** The number of channels. */
+ uint8_t channels;
+ /** Frequency in Hz. */
+ uint16_t frequency;
+ /** Exact meaning depends on audio format. */
+ uint16_t bitrate;
+};
+