/** size of the audio_file info string */
#define AUDIO_FILE_INFO_SIZE 16384
+/**
+ * Audio format dependent information. Details vary between each audio format
+ * handler.
+ */
struct audio_format_info {
- /** the number of chunks this audio file contains */
+ /** The number of chunks this audio file contains. */
long unsigned chunks_total;
- /** the length of the audio file in seconds */
+ /** The length of the audio file in seconds. */
long unsigned seconds_total;
- /** a string that gets filled in by the audio format handler */
+ /** A string that gets filled in by the audio format handler. */
char info_string[AUDIO_FILE_INFO_SIZE];
/**
- * the table that specifies the offset of the individual pieces in
+ * The table that specifies the offset of the individual pieces in
* the current audio file.
*/
size_t *chunk_table;
- /** period of time between sending data chunks */
+ /** Period of time between sending data chunks. */
struct timeval chunk_tv;
- /** end of file timeout - do not load new audio file until this time */
+ /** End of file timeout - Do not load new audio file until this time. */
struct timeval eof_tv;
/**
* The header is needed by senders in case a new client connects in the
* header_len equals zero.
*/
unsigned header_offset;
+ /** The number of channels. */
uint8_t channels;
+ /** Frquency on Hz. */
uint16_t frequency;
+ /** Exact meaning depends on audio format. */
uint16_t bitrate;
};
/**
- * structure for audio format handling
+ * Structure for audio format handling.
*
- * There's exactly one such struct for each supported audio format. Initially,
- * only \a name and \a init are defined. During the startup process,
- * para_server calls the \a init function of each audio format handler which is
- * expected to fill in all the other function pointers.
+ * There's one such struct for each supported audio format. Initially, only \a
+ * name and \a init are defined. During the startup process, para_server calls
+ * the \a init function of each audio format handler which is expected to fill
+ * in the other part of this struct.
*/
struct audio_format_handler {
- /**
- * name of the audio format
- */
+ /** Name of the audio format. */
const char *name;
/**
- * typical file endings for files that can be handled by this afh.
- */
- const char **suffixes;
- /**
- * pointer to the audio format handler's init function
+ * Pointer to the audio format handler's init function.
*
* Must initialize all function pointers and is assumed to succeed.
*/
void (*init)(struct audio_format_handler*);
+ /** Typical file endings for files that can be handled by this afh. */
+ const char **suffixes;
/**
- * check if this audio format handler can handle the file
+ * Check if this audio format handler can handle the file.
*
* This is a pointer to a function returning whether a given file is
* valid for this audio format. A negative return value indicates that
- * this audio format handler did not recognize the given file. On
+ * this audio format handler is unable to decode the given file. On
* success, the function must return a positive value and fill in the
* given struct audio_format_info.
*
* \sa struct audio_format_info
- */
+ */
int (*get_file_info)(char *map, size_t numbytes,
struct audio_format_info *afi);
};