1/*
2 * Copyright (c) 2003-2004, Marcus Overhagen
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 *  * Redistributions of source code must retain the above copyright notice,
9 *    this list of conditions and the following disclaimer.
10 *  * Redistributions in binary form must reproduce the above copyright notice,
11 *    this list of conditions and the following disclaimer in the documentation
12 *    and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
18 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
19 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
22 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
23 * OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25#ifndef _AU_H
26#define _AU_H
27
28struct snd_header {
29	uint32 magic;			// magic number '.snd'
30	uint32 data_start;		// offset to the data
31	uint32 data_size;		// number of bytes of data
32	uint32 data_format;		// data format code
33	uint32 sampling_rate;	// sampling rate
34	uint32 channel_count;	// number of channels
35	char info[4];			// optional text information, NULL termintated, at least 4 bytes
36};
37
38enum {
39	SND_FORMAT_UNSPECIFIED = 0,	// unspecified format
40	SND_FORMAT_MULAW_8 = 1,		// 8-bit mu-law samples
41	SND_FORMAT_LINEAR_8 = 2,	// 8-bit linear samples
42	SND_FORMAT_LINEAR_16 = 3,	// 16-bit linear samples
43	SND_FORMAT_LINEAR_24 = 4,	// 24-bit linear samples
44	SND_FORMAT_LINEAR_32 = 5,	// 32-bit linear samples
45	SND_FORMAT_FLOAT = 6,		// 32-bit IEEE floating-point samples
46	SND_FORMAT_DOUBLE = 7,		// 64-bit IEEE floating-point samples
47	SND_FORMAT_INDIRECT = 8,	// fragmented sampled data
48	SND_FORMAT_NESTED = 9,
49	SND_FORMAT_DSP_CORE = 10,	// DSP program
50	SND_FORMAT_DSP_DATA_8 = 11,	// 8-bit fixed-point samples
51	SND_FORMAT_DSP_DATA_16 = 12,// 16-bit fixed-point samples
52	SND_FORMAT_DSP_DATA_24 = 13,// 24-bit fixed-point samples
53	SND_FORMAT_DSP_DATA_32 = 14,// 32-bit fixed-point samples
54	SND_FORMAT_15 = 15,
55	SND_FORMAT_DISPLAY = 16,	// non-audio display data
56	SND_FORMAT_MULAW_SQUELCH = 17,
57	SND_FORMAT_EMPHASIZED = 18,	// 16-bit linear with emphasis
58	SND_FORMAT_COMPRESSED = 19,	// 16-bit linear with compression
59	SND_FORMAT_COMPRESSED_EMPHASIZED = 20, // A combination of the two above
60	SND_FORMAT_DSP_COMMANDS = 21,// Music Kit DSP commands
61	SND_FORMAT_DSP_COMMANDS_SAMPLES = 22,
62	SND_FORMAT_ADPCM_G721 = 23,
63	SND_FORMAT_ADPCM_G722 = 24,
64	SND_FORMAT_ADPCM_G723_3 = 25,
65	SND_FORMAT_ADPCM_G723_5 = 26,
66	SND_FORMAT_ALAW_8 = 27,
67};
68
69#define SND_RATE_8012	8012.821	// CODEC input
70#define SND_RATE_22050	22050.0		// low sampling rate output
71#define SND_RATE_44100	44100.0		// high sampling rate output
72
73#define SND_MAGIC 0x2e736e64		// '.snd'
74
75#endif
76