Linux v2.6.13
[linux-2.6/next.git] / drivers / usb / class / audio.h
blob45916eb12103ed5d6a674c233893477cb701eabf
1 #define CS_AUDIO_UNDEFINED 0x20
2 #define CS_AUDIO_DEVICE 0x21
3 #define CS_AUDIO_CONFIGURATION 0x22
4 #define CS_AUDIO_STRING 0x23
5 #define CS_AUDIO_INTERFACE 0x24
6 #define CS_AUDIO_ENDPOINT 0x25
8 #define HEADER 0x01
9 #define INPUT_TERMINAL 0x02
10 #define OUTPUT_TERMINAL 0x03
11 #define MIXER_UNIT 0x04
12 #define SELECTOR_UNIT 0x05
13 #define FEATURE_UNIT 0x06
14 #define PROCESSING_UNIT 0x07
15 #define EXTENSION_UNIT 0x08
17 #define AS_GENERAL 0x01
18 #define FORMAT_TYPE 0x02
19 #define FORMAT_SPECIFIC 0x03
21 #define EP_GENERAL 0x01
23 #define MAX_CHAN 9
24 #define MAX_FREQ 16
25 #define MAX_IFACE 8
26 #define MAX_FORMAT 8
27 #define MAX_ALT 32 /* Sorry, we need quite a few for the Philips webcams */
29 struct usb_audio_terminal
31 u8 flags;
32 u8 assoc;
33 u16 type; /* Mic etc */
34 u8 channels;
35 u8 source;
36 u16 chancfg;
39 struct usb_audio_format
41 u8 type;
42 u8 channels;
43 u8 num_freq;
44 u8 sfz;
45 u8 bits;
46 u16 freq[MAX_FREQ];
49 struct usb_audio_interface
51 u8 terminal;
52 u8 delay;
53 u16 num_formats;
54 u16 format_type;
55 u8 flags;
56 u8 idleconf; /* Idle config */
57 #define AU_IFACE_FOUND 1
58 struct usb_audio_format format[MAX_FORMAT];
61 struct usb_audio_device
63 struct list_head list;
64 u8 mixer;
65 u8 selector;
66 void *irq_handle;
67 u8 num_channels;
68 u8 num_dsp_iface;
69 u8 channel_map[MAX_CHAN];
70 struct usb_audio_terminal terminal[MAX_CHAN];
71 struct usb_audio_interface interface[MAX_IFACE][MAX_ALT];
76 /* Audio Class specific Request Codes */
78 #define SET_CUR 0x01
79 #define GET_CUR 0x81
80 #define SET_MIN 0x02
81 #define GET_MIN 0x82
82 #define SET_MAX 0x03
83 #define GET_MAX 0x83
84 #define SET_RES 0x04
85 #define GET_RES 0x84
86 #define SET_MEM 0x05
87 #define GET_MEM 0x85
88 #define GET_STAT 0xff
90 /* Terminal Control Selectors */
92 #define COPY_PROTECT_CONTROL 0x01
94 /* Feature Unit Control Selectors */
96 #define MUTE_CONTROL 0x01
97 #define VOLUME_CONTROL 0x02
98 #define BASS_CONTROL 0x03
99 #define MID_CONTROL 0x04
100 #define TREBLE_CONTROL 0x05
101 #define GRAPHIC_EQUALIZER_CONTROL 0x06
102 #define AUTOMATIC_GAIN_CONTROL 0x07
103 #define DELAY_CONTROL 0x08
104 #define BASS_BOOST_CONTROL 0x09
105 #define LOUDNESS_CONTROL 0x0a
107 /* Endpoint Control Selectors */
109 #define SAMPLING_FREQ_CONTROL 0x01
110 #define PITCH_CONTROL 0x02