1 /**
2  * @file aufile.h  Audio File -- internal API
3  *
4  * Copyright (C) 2010 Creytiv.com
5  */
6 
7 
8 enum wavfmt {
9 	WAVE_FMT_PCM    = 0x0001,
10 	WAVE_FMT_ALAW   = 0x0006,
11 	WAVE_FMT_ULAW   = 0x0007,
12 };
13 
14 /** WAVE format sub-chunk */
15 struct wav_fmt {
16 	uint16_t format;
17 	uint16_t channels;
18 	uint32_t srate;
19 	uint32_t byterate;
20 	uint16_t block_align;
21 	uint16_t bps;
22 	uint16_t extra;
23 };
24 
25 int wav_header_encode(FILE *f, uint16_t format, uint16_t channels,
26 		      uint32_t srate, uint16_t bps, size_t bytes);
27 int wav_header_decode(struct wav_fmt *fmt, size_t *datasize, FILE *f);
28