Line No. | Rev | Author | Line |
---|---|---|---|
1 | 32 | kaklik | /******************************************************************************* |
2 | File Information: |
||
3 | FileName: usb_function_audio.h |
||
4 | Dependencies: See INCLUDES section |
||
5 | Processor: PIC18 or PIC24 USB Microcontrollers |
||
6 | Hardware: The code is natively intended to be used on the following |
||
7 | hardware platforms: PICDEM FS USB Demo Board, |
||
8 | PIC18F87J50 FS USB Plug-In Module, or |
||
9 | Explorer 16 + PIC24 USB PIM. The firmware may be |
||
10 | modified for use on other USB platforms by editing the |
||
11 | HardwareProfile.h file. |
||
12 | Complier: Microchip C18 (for PIC18) or C30 (for PIC24) |
||
13 | Company: Microchip Technology, Inc. |
||
14 | |||
15 | Software License Agreement: |
||
16 | |||
17 | The software supplied herewith by Microchip Technology Incorporated |
||
18 | (the Company) for its PIC® Microcontroller is intended and |
||
19 | supplied to you, the Companys customer, for use solely and |
||
20 | exclusively on Microchip PIC Microcontroller products. The |
||
21 | software is owned by the Company and/or its supplier, and is |
||
22 | protected under applicable copyright laws. All rights are reserved. |
||
23 | Any use in violation of the foregoing restrictions may subject the |
||
24 | user to criminal sanctions under applicable laws, as well as to |
||
25 | civil liability for the breach of the terms and conditions of this |
||
26 | license. |
||
27 | |||
28 | THIS SOFTWARE IS PROVIDED IN AN AS IS CONDITION. NO WARRANTIES, |
||
29 | WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED |
||
30 | TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
||
31 | PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, |
||
32 | IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR |
||
33 | CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. |
||
34 | |||
35 | Summary: |
||
36 | This file contains all of functions, macros, definitions, variables, |
||
37 | datatypes, etc. that are required for usage with the AUDIO function |
||
38 | driver. This file should be included in projects that use the Audio |
||
39 | \function driver. This file should also be included into the |
||
40 | usb_descriptors.c file and any other user file that requires access to the |
||
41 | HID interface. |
||
42 | |||
43 | |||
44 | |||
45 | This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB" |
||
46 | directory. |
||
47 | |||
48 | Description: |
||
49 | USB AUDIO Function Driver File |
||
50 | |||
51 | This file contains all of functions, macros, definitions, variables, |
||
52 | datatypes, etc. that are required for usage with the AUDIO function |
||
53 | driver. This file should be included in projects that use the AUDIO |
||
54 | \function driver. This file should also be included into the |
||
55 | usb_descriptors.c file and any other user file that requires access to the |
||
56 | AUDIO interface. |
||
57 | |||
58 | This file is located in the "\<Install Directory\>\\Microchip\\Include\\USB" |
||
59 | directory. |
||
60 | |||
61 | When including this file in a new project, this file can either be |
||
62 | referenced from the directory in which it was installed or copied |
||
63 | directly into the user application folder. If the first method is |
||
64 | chosen to keep the file located in the folder in which it is installed |
||
65 | then include paths need to be added so that the library and the |
||
66 | application both know where to reference each others files. If the |
||
67 | application folder is located in the same folder as the Microchip |
||
68 | folder (like the current demo folders), then the following include |
||
69 | paths need to be added to the application's project: |
||
70 | |||
71 | . |
||
72 | |||
73 | ..\\..\\Microchip\\Include |
||
74 | |||
75 | If a different directory structure is used, modify the paths as |
||
76 | required. An example using absolute paths instead of relative paths |
||
77 | would be the following: |
||
78 | |||
79 | C:\\Microchip Solutions\\Microchip\\Include |
||
80 | |||
81 | C:\\Microchip Solutions\\My Demo Application |
||
82 | *******************************************************************/ |
||
83 | |||
84 | /******************************************************************** |
||
85 | Change History: |
||
86 | Rev Description |
||
87 | ---- ----------- |
||
88 | 2.6 Initial Release |
||
89 | 2.6a- No Change |
||
90 | 2.7a |
||
91 | ********************************************************************/ |
||
92 | |||
93 | #ifndef AUDIO_H |
||
94 | #define AUDIO_H |
||
95 | |||
96 | /** I N C L U D E S *******************************************************/ |
||
97 | |||
98 | |||
99 | /** DEFINITIONS ****************************************************/ |
||
100 | /******Audio Interface Class Code**********/ |
||
101 | #define AUDIO_DEVICE 0x01 |
||
102 | |||
103 | /******* Audio Interface Subclass Codes**********/ |
||
104 | #define AUDIOCONTROL 0x01 |
||
105 | #define AUDIOSTREAMING 0x02 |
||
106 | #define MIDISTREAMING 0x03 |
||
107 | |||
108 | /******* Audio Class-Specific Descriptor Types**********/ |
||
109 | #define CS_UNDEFINED 0x20 |
||
110 | #define CS_DEVICE 0x21 |
||
111 | #define CS_CONFIGURATION 0x22 |
||
112 | #define CS_STRING 0x23 |
||
113 | #define CS_INTERFACE 0x24 |
||
114 | #define CS_ENDPOINT 0x25 |
||
115 | |||
116 | /******* Audio Class-Specific AC Interface Descriptor Subtypes**********/ |
||
117 | #define AC_DESCRIPTOR_UNDEFINED 0x00 |
||
118 | #define HEADER 0x01 |
||
119 | #define INPUT_TERMINAL 0x02 |
||
120 | #define OUTPUT_TERMINAL 0x03 |
||
121 | #define MIXER_UNIT 0x04 |
||
122 | #define SELECTOR_UNIT 0x05 |
||
123 | #define FEATURE_UNIT 0x06 |
||
124 | #define PROCESSING_UNIT 0x07 |
||
125 | #define EXTENSION_UNIT 0x08 |
||
126 | |||
127 | /******* Audio Class-Specific AS Interface Descriptor Subtypes**********/ |
||
128 | #define AS_DESCRIPTOR_UNDEFINED 0x00 |
||
129 | #define AS_GENERAL 0x01 |
||
130 | #define FORMAT_TYPE 0x02 |
||
131 | #define FORMAT_SPECIFIC 0x03 |
||
132 | |||
133 | /******* Processing Unit Process Types **********/ |
||
134 | #define PROCESS_UNDEFINED 0x00 |
||
135 | #define UP_DOWNMIX_PROCESS 0x01 |
||
136 | #define DOLBY_PROLOGIC_PROCESS 0x02 |
||
137 | #define THREE_D_STEREO_EXTENDER_PROCESS 0x03 |
||
138 | #define REVERBERATION_PROCESS 0x04 |
||
139 | #define CHORUS_PROCESS 0x05 |
||
140 | #define DYN_RANGE_COMP_PROCESS 0x06 |
||
141 | |||
142 | /******* Audio Class-Specific Endpoint Descriptor Subtypes**********/ |
||
143 | #define DESCRIPTOR_UNDEFINED 0x00 |
||
144 | #define EP_GENERAL 0x01 |
||
145 | |||
146 | /****** Audio Class-Specific Request Codes ************/ |
||
147 | #define REQUEST_CODE_UNDEFINED 0x00 |
||
148 | #define SET_CUR 0x01 |
||
149 | #define SET_MIN 0x02 |
||
150 | #define SET_MAX 0x03 |
||
151 | #define SET_RES 0x04 |
||
152 | #define SET_MEM 0x05 |
||
153 | #define GET_CUR 0x81 |
||
154 | #define GET_MIN 0x82 |
||
155 | #define GET_MAX 0x83 |
||
156 | #define GET_RES 0x84 |
||
157 | #define GET_MEM 0x85 |
||
158 | #define GET_STAT 0xFF |
||
159 | |||
160 | /************ Terminal Control Selectors ******/ |
||
161 | #define TE_CONTROL_UNDEFINED 0x00 |
||
162 | #define COPY_PROTECT_CONTROL 0x01 |
||
163 | |||
164 | /************ Feature Unit Control Selectors ****/ |
||
165 | #define FU_CONTROL_UNDEFINED 0x00 |
||
166 | #define MUTE_CONTROL 0x01 |
||
167 | #define VOLUME_CONTROL 0x02 |
||
168 | #define BASS_CONTROL 0x03 |
||
169 | #define MID_CONTROL 0x04 |
||
170 | #define TREBLE_CONTROL 0x05 |
||
171 | #define GRAPHIC_EQUALIZER_CONTROL 0x06 |
||
172 | #define AUTOMATIC_GAIN_CONTROL 0x07 |
||
173 | #define DELAY_CONTROL 0x08 |
||
174 | #define BASS_BOOST_CONTROL 0x09 |
||
175 | #define LOUDNESS_CONTROL 0x0A |
||
176 | |||
177 | |||
178 | /************ Processing Unit Control Selectors ****/ |
||
179 | /* Up/Down-mix Processing Unit Control Selectors */ |
||
180 | |||
181 | #define UD_CONTROL_UNDEFINED 0x00 |
||
182 | #define UD_ENABLE_CONTROL 0x01 |
||
183 | #define UD_MODE_SELECT_CONTROL 0x02 |
||
184 | |||
185 | /* Dolby Prologic(TM) Processing Unit Control Selectors */ |
||
186 | #define DP_CONTROL_UNDEFINED 0x00 |
||
187 | #define DP_ENABLE_CONTROL 0x01 |
||
188 | #define DP_MODE_SELECT_CONTROL 0x02 |
||
189 | |||
190 | /* Stereo Extender Processing Unit Control Selectors */ |
||
191 | #define THREE_D_CONTROL_UNDEFINED 0x00 |
||
192 | #define THREE_D_ENABLE_CONTROL 0x01 |
||
193 | #define SPACIOUSNESS_CONTROL 0x03 |
||
194 | |||
195 | /* Reverberation Processing Unit Control Selectors */ |
||
196 | #define RV_CONTROL_UNDEFINED 0x00 |
||
197 | #define RV_ENABLE_CONTROL 0x01 |
||
198 | #define REVERB_LEVEL_CONTROL 0x02 |
||
199 | #define REVERB_TIME_CONTROL 0x03 |
||
200 | #define REVERB_FEEDBACK_CONTROL 0x04 |
||
201 | |||
202 | /* Chorus Processing Unit Control Selectors */ |
||
203 | #define CH_CONTROL_UNDEFINED 0x00 |
||
204 | #define CH_ENABLE_CONTROL 0x01 |
||
205 | #define CHORUS_LEVEL_CONTROL 0x02 |
||
206 | #define CHORUS_RATE_CONTROL 0x03 |
||
207 | #define CHORUS_DEPTH_CONTROL 0x04 |
||
208 | |||
209 | /* Dynamic Range Compressor Processing Unit Control Selectors */ |
||
210 | #define DR_CONTROL_UNDEFINED 0x00 |
||
211 | #define DR_ENABLE_CONTROL 0x01 |
||
212 | #define COMPRESSION_RATE_CONTROL 0x02 |
||
213 | #define MAXAMPL_CONTROL 0x03 |
||
214 | #define THRESHOLD_CONTROL 0x04 |
||
215 | #define ATTACK_TIME 0x05 |
||
216 | #define RELEASE_TIME 0x06 |
||
217 | |||
218 | |||
219 | /************ Extension Unit Control Selectors **********/ |
||
220 | #define XU_CONTROL_UNDEFINED 0x00 |
||
221 | #define XU_ENABLE_CONTROL 0x01 |
||
222 | |||
223 | /************ Endpoint Control Selectors **********/ |
||
224 | #define EP_CONTROL_UNDEFINED 0x00 |
||
225 | #define SAMPLING_FREQ_CONTROL 0x01 |
||
226 | #define PITCH_CONTROL 0x02 |
||
227 | |||
228 | /*********** Terminal Types***********************/ |
||
229 | /*A complete list of Terminal Type codes is provided in |
||
230 | the document USB Audio Terminal Types */ |
||
231 | #define USB_STREAMING 0x01, 0x01 |
||
232 | #define MICROPHONE 0x01,0x02 |
||
233 | #define SPEAKER 0x01,0x03 |
||
234 | #define HEADPHONES 0x02,0x03 |
||
235 | |||
236 | |||
237 | /** E X T E R N S ************************************************************/ |
||
238 | extern USB_HANDLE lastTransmission; |
||
239 | extern volatile CTRL_TRF_SETUP SetupPkt; |
||
240 | extern ROM BYTE configDescriptor1[]; |
||
241 | extern volatile BYTE CtrlTrfData[USB_EP0_BUFF_SIZE]; |
||
242 | |||
243 | |||
244 | |||
245 | /** Section: PUBLIC PROTOTYPES **********************************************/ |
||
246 | void USBCheckAudioRequest(void); |
||
247 | #endif //AUDIO_H |
Powered by WebSVN v2.8.3