root/Examples_CP-JR_ARM7_LPC2368/ETT_LPC2368_Examples/USB_DEMO/USBAudio/audio.h

Revision 8, 16.3 kB (checked in by phil, 15 years ago)

Added Examples etc. from CD

Line 
1 /*----------------------------------------------------------------------------
2  *      U S B  -  K e r n e l
3  *----------------------------------------------------------------------------
4  *      Name:    AUDIO.H
5  *      Purpose: USB Audio Device Class Definitions
6  *      Version: V1.10
7  *----------------------------------------------------------------------------
8  *      This file is part of the uVision/ARM development tools.
9  *      This software may only be used under the terms of a valid, current,
10  *      end user licence from KEIL for a compatible version of KEIL software
11  *      development tools. Nothing else gives you the right to use it.
12  *
13  *      Copyright (c) 2005-2006 Keil Software.
14  *---------------------------------------------------------------------------*/
15
16 #ifndef __AUDIO_H__
17 #define __AUDIO_H__
18
19
20 /* Audio Interface Subclass Codes */
21 #define AUDIO_SUBCLASS_UNDEFINED                0x00
22 #define AUDIO_SUBCLASS_AUDIOCONTROL             0x01
23 #define AUDIO_SUBCLASS_AUDIOSTREAMING           0x02
24 #define AUDIO_SUBCLASS_MIDISTREAMING            0x03
25
26 /* Audio Interface Protocol Codes */
27 #define AUDIO_PROTOCOL_UNDEFINED                0x00
28
29
30 /* Audio Descriptor Types */
31 #define AUDIO_UNDEFINED_DESCRIPTOR_TYPE         0x20
32 #define AUDIO_DEVICE_DESCRIPTOR_TYPE            0x21
33 #define AUDIO_CONFIGURATION_DESCRIPTOR_TYPE     0x22
34 #define AUDIO_STRING_DESCRIPTOR_TYPE            0x23
35 #define AUDIO_INTERFACE_DESCRIPTOR_TYPE         0x24
36 #define AUDIO_ENDPOINT_DESCRIPTOR_TYPE          0x25
37
38
39 /* Audio Control Interface Descriptor Subtypes */
40 #define AUDIO_CONTROL_UNDEFINED                 0x00
41 #define AUDIO_CONTROL_HEADER                    0x01
42 #define AUDIO_CONTROL_INPUT_TERMINAL            0x02
43 #define AUDIO_CONTROL_OUTPUT_TERMINAL           0x03
44 #define AUDIO_CONTROL_MIXER_UNIT                0x04
45 #define AUDIO_CONTROL_SELECTOR_UNIT             0x05
46 #define AUDIO_CONTROL_FEATURE_UNIT              0x06
47 #define AUDIO_CONTROL_PROCESSING_UNIT           0x07
48 #define AUDIO_CONTROL_EXTENSION_UNIT            0x08
49
50 /* Audio Streaming Interface Descriptor Subtypes */
51 #define AUDIO_STREAMING_UNDEFINED               0x00
52 #define AUDIO_STREAMING_GENERAL                 0x01
53 #define AUDIO_STREAMING_FORMAT_TYPE             0x02
54 #define AUDIO_STREAMING_FORMAT_SPECIFIC         0x03
55
56 /* Audio Endpoint Descriptor Subtypes */
57 #define AUDIO_ENDPOINT_UNDEFINED                0x00
58 #define AUDIO_ENDPOINT_GENERAL                  0x01
59
60
61 /* Audio Descriptor Sizes */
62 #define AUDIO_CONTROL_INTERFACE_DESC_SZ(n)      0x08+n
63 #define AUDIO_STREAMING_INTERFACE_DESC_SIZE     0x07
64 #define AUDIO_INPUT_TERMINAL_DESC_SIZE          0x0C
65 #define AUDIO_OUTPUT_TERMINAL_DESC_SIZE         0x09
66 #define AUDIO_MIXER_UNIT_DESC_SZ(p,n)           0x0A+p+n
67 #define AUDIO_SELECTOR_UNIT_DESC_SZ(p)          0x06+p
68 #define AUDIO_FEATURE_UNIT_DESC_SZ(ch,n)        0x07+(ch+1)*n
69 #define AUDIO_PROCESSING_UNIT_DESC_SZ(p,n,x)    0x0D+p+n+x
70 #define AUDIO_EXTENSION_UNIT_DESC_SZ(p,n)       0x0D+p+n
71 #define AUDIO_STANDARD_ENDPOINT_DESC_SIZE       0x09
72 #define AUDIO_STREAMING_ENDPOINT_DESC_SIZE      0x07
73
74
75 /* Audio Processing Unit Process Types */
76 #define AUDIO_UNDEFINED_PROCESS                 0x00
77 #define AUDIO_UP_DOWN_MIX_PROCESS               0x01
78 #define AUDIO_DOLBY_PROLOGIC_PROCESS            0x02
79 #define AUDIO_3D_STEREO_PROCESS                 0x03
80 #define AUDIO_REVERBERATION_PROCESS             0x04
81 #define AUDIO_CHORUS_PROCESS                    0x05
82 #define AUDIO_DYN_RANGE_COMP_PROCESS            0x06
83
84
85 /* Audio Request Codes */
86 #define AUDIO_REQUEST_UNDEFINED                 0x00
87 #define AUDIO_REQUEST_SET_CUR                   0x01
88 #define AUDIO_REQUEST_GET_CUR                   0x81
89 #define AUDIO_REQUEST_SET_MIN                   0x02
90 #define AUDIO_REQUEST_GET_MIN                   0x82
91 #define AUDIO_REQUEST_SET_MAX                   0x03
92 #define AUDIO_REQUEST_GET_MAX                   0x83
93 #define AUDIO_REQUEST_SET_RES                   0x04
94 #define AUDIO_REQUEST_GET_RES                   0x84
95 #define AUDIO_REQUEST_SET_MEM                   0x05
96 #define AUDIO_REQUEST_GET_MEM                   0x85
97 #define AUDIO_REQUEST_GET_STAT                  0xFF
98
99
100 /* Audio Control Selector Codes */
101 #define AUDIO_CONTROL_UNDEFINED                 0x00    /* Common Selector */
102
103 /*  Terminal Control Selectors */
104 #define AUDIO_COPY_PROTECT_CONTROL              0x01
105
106 /*  Feature Unit Control Selectors */
107 #define AUDIO_MUTE_CONTROL                      0x01
108 #define AUDIO_VOLUME_CONTROL                    0x02
109 #define AUDIO_BASS_CONTROL                      0x03
110 #define AUDIO_MID_CONTROL                       0x04
111 #define AUDIO_TREBLE_CONTROL                    0x05
112 #define AUDIO_GRAPHIC_EQUALIZER_CONTROL         0x06
113 #define AUDIO_AUTOMATIC_GAIN_CONTROL            0x07
114 #define AUDIO_DELAY_CONTROL                     0x08
115 #define AUDIO_BASS_BOOST_CONTROL                0x09
116 #define AUDIO_LOUDNESS_CONTROL                  0x0A
117
118 /*  Processing Unit Control Selectors: */
119 #define AUDIO_ENABLE_CONTROL                    0x01    /* Common Selector */
120 #define AUDIO_MODE_SELECT_CONTROL               0x02    /* Common Selector */
121
122 /*  - Up/Down-mix Control Selectors */
123 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
124 /*      AUDIO_MODE_SELECT_CONTROL               0x02       Common Selector */
125
126 /*  - Dolby Prologic Control Selectors */
127 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
128 /*      AUDIO_MODE_SELECT_CONTROL               0x02       Common Selector */
129
130 /*  - 3D Stereo Extender Control Selectors */
131 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
132 #define AUDIO_SPACIOUSNESS_CONTROL              0x02
133
134 /*  - Reverberation Control Selectors */
135 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
136 #define AUDIO_REVERB_LEVEL_CONTROL              0x02
137 #define AUDIO_REVERB_TIME_CONTROL               0x03
138 #define AUDIO_REVERB_FEEDBACK_CONTROL           0x04
139
140 /*  - Chorus Control Selectors */
141 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
142 #define AUDIO_CHORUS_LEVEL_CONTROL              0x02
143 #define AUDIO_SHORUS_RATE_CONTROL               0x03
144 #define AUDIO_CHORUS_DEPTH_CONTROL              0x04
145
146 /*  - Dynamic Range Compressor Control Selectors */
147 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
148 #define AUDIO_COMPRESSION_RATE_CONTROL          0x02
149 #define AUDIO_MAX_AMPL_CONTROL                  0x03
150 #define AUDIO_THRESHOLD_CONTROL                 0x04
151 #define AUDIO_ATTACK_TIME_CONTROL               0x05
152 #define AUDIO_RELEASE_TIME_CONTROL              0x06
153
154 /*  Extension Unit Control Selectors */
155 /*      AUDIO_ENABLE_CONTROL                    0x01       Common Selector */
156
157 /*  Endpoint Control Selectors */
158 #define AUDIO_SAMPLING_FREQ_CONTROL             0x01
159 #define AUDIO_PITCH_CONTROL                     0x02
160
161
162 /* Audio Format Specific Control Selectors */
163
164 /*  MPEG Control Selectors */
165 #define AUDIO_MPEG_CONTROL_UNDEFINED            0x00
166 #define AUDIO_MPEG_DUAL_CHANNEL_CONTROL         0x01
167 #define AUDIO_MPEG_SECOND_STEREO_CONTROL        0x02
168 #define AUDIO_MPEG_MULTILINGUAL_CONTROL         0x03
169 #define AUDIO_MPEG_DYN_RANGE_CONTROL            0x04
170 #define AUDIO_MPEG_SCALING_CONTROL              0x05
171 #define AUDIO_MPEG_HILO_SCALING_CONTROL         0x06
172
173 /*  AC-3 Control Selectors */
174 #define AUDIO_AC3_CONTROL_UNDEFINED             0x00
175 #define AUDIO_AC3_MODE_CONTROL                  0x01
176 #define AUDIO_AC3_DYN_RANGE_CONTROL             0x02
177 #define AUDIO_AC3_SCALING_CONTROL               0x03
178 #define AUDIO_AC3_HILO_SCALING_CONTROL          0x04
179
180
181 /* Audio Format Types */
182 #define AUDIO_FORMAT_TYPE_UNDEFINED             0x00
183 #define AUDIO_FORMAT_TYPE_I                     0x01
184 #define AUDIO_FORMAT_TYPE_II                    0x02
185 #define AUDIO_FORMAT_TYPE_III                   0x03
186
187
188 /* Audio Format Type Descriptor Sizes */
189 #define AUDIO_FORMAT_TYPE_I_DESC_SZ(n)          0x08+(n*3)
190 #define AUDIO_FORMAT_TYPE_II_DESC_SZ(n)         0x09+(n*3)
191 #define AUDIO_FORMAT_TYPE_III_DESC_SZ(n)        0x08+(n*3)
192 #define AUDIO_FORMAT_MPEG_DESC_SIZE             0x09
193 #define AUDIO_FORMAT_AC3_DESC_SIZE              0x0A
194
195
196 /* Audio Data Format Codes */
197
198 /*  Audio Data Format Type I Codes */
199 #define AUDIO_FORMAT_TYPE_I_UNDEFINED           0x0000
200 #define AUDIO_FORMAT_PCM                        0x0001
201 #define AUDIO_FORMAT_PCM8                       0x0002
202 #define AUDIO_FORMAT_IEEE_FLOAT                 0x0003
203 #define AUDIO_FORMAT_ALAW                       0x0004
204 #define AUDIO_FORMAT_MULAW                      0x0005
205
206 /*  Audio Data Format Type II Codes */
207 #define AUDIO_FORMAT_TYPE_II_UNDEFINED          0x1000
208 #define AUDIO_FORMAT_MPEG                       0x1001
209 #define AUDIO_FORMAT_AC3                        0x1002
210
211 /*  Audio Data Format Type III Codes */
212 #define AUDIO_FORMAT_TYPE_III_UNDEFINED         0x2000
213 #define AUDIO_FORMAT_IEC1937_AC3                0x2001
214 #define AUDIO_FORMAT_IEC1937_MPEG1_L1           0x2002
215 #define AUDIO_FORMAT_IEC1937_MPEG1_L2_3         0x2003
216 #define AUDIO_FORMAT_IEC1937_MPEG2_NOEXT        0x2003
217 #define AUDIO_FORMAT_IEC1937_MPEG2_EXT          0x2004
218 #define AUDIO_FORMAT_IEC1937_MPEG2_L1_LS        0x2005
219 #define AUDIO_FORMAT_IEC1937_MPEG2_L2_3         0x2006
220
221
222 /* Predefined Audio Channel Configuration Bits */
223 #define AUDIO_CHANNEL_M                         0x0000  /* Mono */
224 #define AUDIO_CHANNEL_L                         0x0001  /* Left Front */
225 #define AUDIO_CHANNEL_R                         0x0002  /* Right Front */
226 #define AUDIO_CHANNEL_C                         0x0004  /* Center Front */
227 #define AUDIO_CHANNEL_LFE                       0x0008  /* Low Freq. Enhance. */
228 #define AUDIO_CHANNEL_LS                        0x0010  /* Left Surround */
229 #define AUDIO_CHANNEL_RS                        0x0020  /* Right Surround */
230 #define AUDIO_CHANNEL_LC                        0x0040  /* Left of Center */
231 #define AUDIO_CHANNEL_RC                        0x0080  /* Right of Center */
232 #define AUDIO_CHANNEL_S                         0x0100  /* Surround */
233 #define AUDIO_CHANNEL_SL                        0x0200  /* Side Left */
234 #define AUDIO_CHANNEL_SR                        0x0400  /* Side Right */
235 #define AUDIO_CHANNEL_T                         0x0800  /* Top */
236
237
238 /* Feature Unit Control Bits */
239 #define AUDIO_CONTROL_MUTE                      0x0001
240 #define AUDIO_CONTROL_VOLUME                    0x0002
241 #define AUDIO_CONTROL_BASS                      0x0004
242 #define AUDIO_CONTROL_MID                       0x0008
243 #define AUDIO_CONTROL_TREBLE                    0x0010
244 #define AUDIO_CONTROL_GRAPHIC_EQUALIZER         0x0020
245 #define AUDIO_CONTROL_AUTOMATIC_GAIN            0x0040
246 #define AUDIO_CONTROL_DEALY                     0x0080
247 #define AUDIO_CONTROL_BASS_BOOST                0x0100
248 #define AUDIO_CONTROL_LOUDNESS                  0x0200
249
250 /* Processing Unit Control Bits: */
251 #define AUDIO_CONTROL_ENABLE                    0x0001  /* Common Bit */
252 #define AUDIO_CONTROL_MODE_SELECT               0x0002  /* Common Bit */
253
254 /* - Up/Down-mix Control Bits */
255 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
256 /*      AUDIO_CONTROL_MODE_SELECT               0x0002     Common Bit */
257
258 /* - Dolby Prologic Control Bits */
259 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
260 /*      AUDIO_CONTROL_MODE_SELECT               0x0002     Common Bit */
261
262 /* - 3D Stereo Extender Control Bits */
263 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
264 #define AUDIO_CONTROL_SPACIOUSNESS              0x0002
265
266 /* - Reverberation Control Bits */
267 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
268 #define AUDIO_CONTROL_REVERB_TYPE               0x0002
269 #define AUDIO_CONTROL_REVERB_LEVEL              0x0004
270 #define AUDIO_CONTROL_REVERB_TIME               0x0008
271 #define AUDIO_CONTROL_REVERB_FEEDBACK           0x0010
272
273 /* - Chorus Control Bits */
274 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
275 #define AUDIO_CONTROL_CHORUS_LEVEL              0x0002
276 #define AUDIO_CONTROL_SHORUS_RATE               0x0004
277 #define AUDIO_CONTROL_CHORUS_DEPTH              0x0008
278
279 /* - Dynamic Range Compressor Control Bits */
280 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
281 #define AUDIO_CONTROL_COMPRESSION_RATE          0x0002
282 #define AUDIO_CONTROL_MAX_AMPL                  0x0004
283 #define AUDIO_CONTROL_THRESHOLD                 0x0008
284 #define AUDIO_CONTROL_ATTACK_TIME               0x0010
285 #define AUDIO_CONTROL_RELEASE_TIME              0x0020
286
287 /* Extension Unit Control Bits */
288 /*      AUDIO_CONTROL_ENABLE                    0x0001     Common Bit */
289
290 /* Endpoint Control Bits */
291 #define AUDIO_CONTROL_SAMPLING_FREQ             0x01
292 #define AUDIO_CONTROL_PITCH                     0x02
293 #define AUDIO_MAX_PACKETS_ONLY                  0x80
294
295
296 /* Audio Terminal Types */
297
298 /*  USB Terminal Types */
299 #define AUDIO_TERMINAL_USB_UNDEFINED            0x0100
300 #define AUDIO_TERMINAL_USB_STREAMING            0x0101
301 #define AUDIO_TERMINAL_USB_VENDOR_SPECIFIC      0x01FF
302
303 /*  Input Terminal Types */
304 #define AUDIO_TERMINAL_INPUT_UNDEFINED          0x0200
305 #define AUDIO_TERMINAL_MICROPHONE               0x0201
306 #define AUDIO_TERMINAL_DESKTOP_MICROPHONE       0x0202
307 #define AUDIO_TERMINAL_PERSONAL_MICROPHONE      0x0203
308 #define AUDIO_TERMINAL_OMNI_DIR_MICROPHONE      0x0204
309 #define AUDIO_TERMINAL_MICROPHONE_ARRAY         0x0205
310 #define AUDIO_TERMINAL_PROCESSING_MIC_ARRAY     0x0206
311
312 /*  Output Terminal Types */
313 #define AUDIO_TERMINAL_OUTPUT_UNDEFINED         0x0300
314 #define AUDIO_TERMINAL_SPEAKER                  0x0301
315 #define AUDIO_TERMINAL_HEADPHONES               0x0302
316 #define AUDIO_TERMINAL_HEAD_MOUNTED_AUDIO       0x0303
317 #define AUDIO_TERMINAL_DESKTOP_SPEAKER          0x0304
318 #define AUDIO_TERMINAL_ROOM_SPEAKER             0x0305
319 #define AUDIO_TERMINAL_COMMUNICATION_SPEAKER    0x0306
320 #define AUDIO_TERMINAL_LOW_FREQ_SPEAKER         0x0307
321
322 /*  Bi-directional Terminal Types */
323 #define AUDIO_TERMINAL_BIDIRECTIONAL_UNDEFINED  0x0400
324 #define AUDIO_TERMINAL_HANDSET                  0x0401
325 #define AUDIO_TERMINAL_HEAD_MOUNTED_HANDSET     0x0402
326 #define AUDIO_TERMINAL_SPEAKERPHONE             0x0403
327 #define AUDIO_TERMINAL_SPEAKERPHONE_ECHOSUPRESS 0x0404
328 #define AUDIO_TERMINAL_SPEAKERPHONE_ECHOCANCEL  0x0405
329
330 /*  Telephony Terminal Types */
331 #define AUDIO_TERMINAL_TELEPHONY_UNDEFINED      0x0500
332 #define AUDIO_TERMINAL_PHONE_LINE               0x0501
333 #define AUDIO_TERMINAL_TELEPHONE                0x0502
334 #define AUDIO_TERMINAL_DOWN_LINE_PHONE          0x0503
335
336 /*  External Terminal Types */
337 #define AUDIO_TERMINAL_EXTERNAL_UNDEFINED       0x0600
338 #define AUDIO_TERMINAL_ANALOG_CONNECTOR         0x0601
339 #define AUDIO_TERMINAL_DIGITAL_AUDIO_INTERFACE  0x0602
340 #define AUDIO_TERMINAL_LINE_CONNECTOR           0x0603
341 #define AUDIO_TERMINAL_LEGACY_AUDIO_CONNECTOR   0x0604
342 #define AUDIO_TERMINAL_SPDIF_INTERFACE          0x0605
343 #define AUDIO_TERMINAL_1394_DA_STREAM           0x0606
344 #define AUDIO_TERMINAL_1394_DA_STREAM_TRACK     0x0607
345
346 /*  Embedded Function Terminal Types */
347 #define AUDIO_TERMINAL_EMBEDDED_UNDEFINED       0x0700
348 #define AUDIO_TERMINAL_CALIBRATION_NOISE        0x0701
349 #define AUDIO_TERMINAL_EQUALIZATION_NOISE       0x0702
350 #define AUDIO_TERMINAL_CD_PLAYER                0x0703
351 #define AUDIO_TERMINAL_DAT                      0x0704
352 #define AUDIO_TERMINAL_DCC                      0x0705
353 #define AUDIO_TERMINAL_MINI_DISK                0x0706
354 #define AUDIO_TERMINAL_ANALOG_TAPE              0x0707
355 #define AUDIO_TERMINAL_PHONOGRAPH               0x0708
356 #define AUDIO_TERMINAL_VCR_AUDIO                0x0709
357 #define AUDIO_TERMINAL_VIDEO_DISC_AUDIO         0x070A
358 #define AUDIO_TERMINAL_DVD_AUDIO                0x070B
359 #define AUDIO_TERMINAL_TV_TUNER_AUDIO           0x070C
360 #define AUDIO_TERMINAL_SATELLITE_RECEIVER_AUDIO 0x070D
361 #define AUDIO_TERMINAL_CABLE_TUNER_AUDIO        0x070E
362 #define AUDIO_TERMINAL_DSS_AUDIO                0x070F
363 #define AUDIO_TERMINAL_RADIO_RECEIVER           0x0710
364 #define AUDIO_TERMINAL_RADIO_TRANSMITTER        0x0711
365 #define AUDIO_TERMINAL_MULTI_TRACK_RECORDER     0x0712
366 #define AUDIO_TERMINAL_SYNTHESIZER              0x0713
367
368
369 #endif  /* __AUDIO_H__ */
Note: See TracBrowser for help on using the browser.