This source file includes following definitions.
- audio_device_t
- audio_offset_t
- audio_encoding_t
- mixer_level_t
- audio_mixer_name_t
- mixer_devinfo_t
- mixer_ctrl_t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #ifndef _SYS_AUDIOIO_H_
39 #define _SYS_AUDIOIO_H_
40
41
42
43
44 struct audio_prinfo {
45 u_int sample_rate;
46 u_int channels;
47 u_int precision;
48 u_int encoding;
49 u_int gain;
50 u_int port;
51 u_int seek;
52 u_int avail_ports;
53 u_int buffer_size;
54 u_int _ispare[1];
55
56 u_int samples;
57 u_int eof;
58 u_char pause;
59 u_char error;
60 u_char waiting;
61 u_char balance;
62 u_char cspare[2];
63 u_char open;
64 u_char active;
65 };
66 typedef struct audio_prinfo audio_prinfo_t;
67
68 struct audio_info {
69 struct audio_prinfo play;
70 struct audio_prinfo record;
71
72 u_int monitor_gain;
73
74 u_int blocksize;
75 u_int hiwat;
76 u_int lowat;
77 u_int _ispare1;
78 u_int mode;
79 #define AUMODE_PLAY 0x01
80 #define AUMODE_RECORD 0x02
81 #define AUMODE_PLAY_ALL 0x04
82 };
83 typedef struct audio_info audio_info_t;
84
85 #define AUDIO_INITINFO(p) \
86 (void)memset((void *)(p), 0xff, sizeof(struct audio_info))
87
88
89
90
91
92 #define MAX_AUDIO_DEV_LEN 16
93 typedef struct audio_device {
94 char name[MAX_AUDIO_DEV_LEN];
95 char version[MAX_AUDIO_DEV_LEN];
96 char config[MAX_AUDIO_DEV_LEN];
97 } audio_device_t;
98
99 typedef struct audio_offset {
100 u_int samples;
101 u_int deltablks;
102 u_int offset;
103 } audio_offset_t;
104
105
106
107
108
109 #define AUDIO_ENCODING_NONE 0
110 #define AUDIO_ENCODING_ULAW 1
111 #define AUDIO_ENCODING_ALAW 2
112 #define AUDIO_ENCODING_PCM16 3
113 #define AUDIO_ENCODING_LINEAR AUDIO_ENCODING_PCM16
114 #define AUDIO_ENCODING_PCM8 4
115 #define AUDIO_ENCODING_LINEAR8 AUDIO_ENCODING_PCM8
116 #define AUDIO_ENCODING_ADPCM 5
117 #define AUDIO_ENCODING_SLINEAR_LE 6
118 #define AUDIO_ENCODING_SLINEAR_BE 7
119 #define AUDIO_ENCODING_ULINEAR_LE 8
120 #define AUDIO_ENCODING_ULINEAR_BE 9
121 #define AUDIO_ENCODING_SLINEAR 10
122 #define AUDIO_ENCODING_ULINEAR 11
123 #define AUDIO_ENCODING_MPEG_L1_STREAM 12
124 #define AUDIO_ENCODING_MPEG_L1_PACKETS 13
125 #define AUDIO_ENCODING_MPEG_L1_SYSTEM 14
126 #define AUDIO_ENCODING_MPEG_L2_STREAM 15
127 #define AUDIO_ENCODING_MPEG_L2_PACKETS 16
128 #define AUDIO_ENCODING_MPEG_L2_SYSTEM 17
129 #define AUDIO_ENCODING_MPEG_L3_STREAM 18
130 #define AUDIO_ENCODING_MPEG_L3_PACKETS 19
131 #define AUDIO_ENCODING_MPEG_L3_SYSTEM 20
132
133 typedef struct audio_encoding {
134 int index;
135 char name[MAX_AUDIO_DEV_LEN];
136 int encoding;
137 int precision;
138 int flags;
139 #define AUDIO_ENCODINGFLAG_EMULATED 1
140 } audio_encoding_t;
141
142
143
144
145 #define AUDIO_LEFT_BALANCE 0
146 #define AUDIO_MID_BALANCE 32
147 #define AUDIO_RIGHT_BALANCE 64
148 #define AUDIO_BALANCE_SHIFT 3
149
150
151
152
153 #define AUDIO_SPEAKER 0x01
154 #define AUDIO_HEADPHONE 0x02
155 #define AUDIO_LINE_OUT 0x04
156
157
158
159
160 #define AUDIO_MICROPHONE 0x01
161 #define AUDIO_LINE_IN 0x02
162 #define AUDIO_CD 0x04
163 #define AUDIO_INTERNAL_CD_IN AUDIO_CD
164
165
166
167
168 #define AUDIO_GETINFO _IOR('A', 21, struct audio_info)
169 #define AUDIO_SETINFO _IOWR('A', 22, struct audio_info)
170 #define AUDIO_DRAIN _IO('A', 23)
171 #define AUDIO_FLUSH _IO('A', 24)
172 #define AUDIO_WSEEK _IOR('A', 25, u_long)
173 #define AUDIO_RERROR _IOR('A', 26, int)
174 #define AUDIO_GETDEV _IOR('A', 27, struct audio_device)
175 #define AUDIO_GETENC _IOWR('A', 28, struct audio_encoding)
176 #define AUDIO_GETFD _IOR('A', 29, int)
177 #define AUDIO_SETFD _IOWR('A', 30, int)
178 #define AUDIO_PERROR _IOR('A', 31, int)
179 #define AUDIO_GETIOFFS _IOR('A', 32, struct audio_offset)
180 #define AUDIO_GETOOFFS _IOR('A', 33, struct audio_offset)
181 #define AUDIO_GETPROPS _IOR('A', 34, int)
182 #define AUDIO_PROP_FULLDUPLEX 0x01
183 #define AUDIO_PROP_MMAP 0x02
184 #define AUDIO_PROP_INDEPENDENT 0x04
185
186
187
188
189 #define AUDIO_MIN_GAIN 0
190 #define AUDIO_MAX_GAIN 255
191
192 typedef struct mixer_level {
193 int num_channels;
194 u_char level[8];
195 } mixer_level_t;
196 #define AUDIO_MIXER_LEVEL_MONO 0
197 #define AUDIO_MIXER_LEVEL_LEFT 0
198 #define AUDIO_MIXER_LEVEL_RIGHT 1
199
200
201
202
203
204 typedef struct audio_mixer_name {
205 char name[MAX_AUDIO_DEV_LEN];
206 int msg_id;
207 } audio_mixer_name_t;
208
209 typedef struct mixer_devinfo {
210 int index;
211 audio_mixer_name_t label;
212 int type;
213 #define AUDIO_MIXER_CLASS 0
214 #define AUDIO_MIXER_ENUM 1
215 #define AUDIO_MIXER_SET 2
216 #define AUDIO_MIXER_VALUE 3
217 int mixer_class;
218 int next, prev;
219 #define AUDIO_MIXER_LAST -1
220 union {
221 struct audio_mixer_enum {
222 int num_mem;
223 struct {
224 audio_mixer_name_t label;
225 int ord;
226 } member[32];
227 } e;
228 struct audio_mixer_set {
229 int num_mem;
230 struct {
231 audio_mixer_name_t label;
232 int mask;
233 } member[32];
234 } s;
235 struct audio_mixer_value {
236 audio_mixer_name_t units;
237 int num_channels;
238 int delta;
239 } v;
240 } un;
241 } mixer_devinfo_t;
242
243
244 typedef struct mixer_ctrl {
245 int dev;
246 int type;
247 union {
248 int ord;
249 int mask;
250 mixer_level_t value;
251 } un;
252 } mixer_ctrl_t;
253
254
255
256
257 #define AUDIO_MIXER_READ _IOWR('M', 0, mixer_ctrl_t)
258 #define AUDIO_MIXER_WRITE _IOWR('M', 1, mixer_ctrl_t)
259 #define AUDIO_MIXER_DEVINFO _IOWR('M', 2, mixer_devinfo_t)
260
261
262
263
264 #define AudioNmicrophone "mic"
265 #define AudioNline "line"
266 #define AudioNcd "cd"
267 #define AudioNdac "dac"
268 #define AudioNaux "aux"
269 #define AudioNrecord "record"
270 #define AudioNvolume "volume"
271 #define AudioNmonitor "monitor"
272 #define AudioNtreble "treble"
273 #define AudioNmid "mid"
274 #define AudioNbass "bass"
275 #define AudioNbassboost "bassboost"
276 #define AudioNspeaker "speaker"
277 #define AudioNheadphone "headphones"
278 #define AudioNoutput "output"
279 #define AudioNinput "input"
280 #define AudioNmaster "master"
281 #define AudioNstereo "stereo"
282 #define AudioNmono "mono"
283 #define AudioNloudness "loudness"
284 #define AudioNspatial "spatial"
285 #define AudioNsurround "surround"
286 #define AudioNpseudo "pseudo"
287 #define AudioNmute "mute"
288 #define AudioNenhanced "enhanced"
289 #define AudioNpreamp "preamp"
290 #define AudioNon "on"
291 #define AudioNoff "off"
292 #define AudioNmode "mode"
293 #define AudioNsource "source"
294 #define AudioNfmsynth "fmsynth"
295 #define AudioNwave "wave"
296 #define AudioNmidi "midi"
297 #define AudioNmixerout "mixerout"
298 #define AudioNswap "swap"
299 #define AudioNagc "agc"
300 #define AudioNdelay "delay"
301 #define AudioNselect "select"
302 #define AudioNvideo "video"
303 #define AudioNcenter "center"
304 #define AudioNdepth "depth"
305 #define AudioNlfe "lfe"
306 #define AudioNextamp "extamp"
307
308 #define AudioEmulaw "mulaw"
309 #define AudioEalaw "alaw"
310 #define AudioEadpcm "adpcm"
311 #define AudioEslinear "slinear"
312 #define AudioEslinear_le "slinear_le"
313 #define AudioEslinear_be "slinear_be"
314 #define AudioEulinear "ulinear"
315 #define AudioEulinear_le "ulinear_le"
316 #define AudioEulinear_be "ulinear_be"
317 #define AudioEmpeg_l1_stream "mpeg_l1_stream"
318 #define AudioEmpeg_l1_packets "mpeg_l1_packets"
319 #define AudioEmpeg_l1_system "mpeg_l1_system"
320 #define AudioEmpeg_l2_stream "mpeg_l2_stream"
321 #define AudioEmpeg_l2_packets "mpeg_l2_packets"
322 #define AudioEmpeg_l2_system "mpeg_l2_system"
323
324 #define AudioCinputs "inputs"
325 #define AudioCoutputs "outputs"
326 #define AudioCrecord "record"
327 #define AudioCmonitor "monitor"
328 #define AudioCequalization "equalization"
329
330 #endif