AudioClassCommon.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 /* Includes: */
5 #include "types.h"
6 #include "StdDescriptors.h"
7 
8 /* Enable C linkage for C++ Compilers: */
9 #if defined(__cplusplus)
10 extern "C" {
11 #endif
12 
13 /* Macros: */
17 #define AUDIO_CHANNEL_LEFT_FRONT (1 << 0)
18 
20 #define AUDIO_CHANNEL_RIGHT_FRONT (1 << 1)
21 
23 #define AUDIO_CHANNEL_CENTER_FRONT (1 << 2)
24 
26 #define AUDIO_CHANNEL_LOW_FREQ_ENHANCE (1 << 3)
27 
29 #define AUDIO_CHANNEL_LEFT_SURROUND (1 << 4)
30 
32 #define AUDIO_CHANNEL_RIGHT_SURROUND (1 << 5)
33 
35 #define AUDIO_CHANNEL_LEFT_OF_CENTER (1 << 6)
36 
38 #define AUDIO_CHANNEL_RIGHT_OF_CENTER (1 << 7)
39 
41 #define AUDIO_CHANNEL_SURROUND (1 << 8)
42 
44 #define AUDIO_CHANNEL_SIDE_LEFT (1 << 9)
45 
47 #define AUDIO_CHANNEL_SIDE_RIGHT (1 << 10)
48 
50 #define AUDIO_CHANNEL_TOP (1 << 11)
51 
52 
56 #define AUDIO_FEATURE_MUTE (1 << 0)
57 
59 #define AUDIO_FEATURE_VOLUME (1 << 1)
60 
62 #define AUDIO_FEATURE_BASS (1 << 2)
63 
65 #define AUDIO_FEATURE_MID (1 << 3)
66 
68 #define AUDIO_FEATURE_TREBLE (1 << 4)
69 
71 #define AUDIO_FEATURE_GRAPHIC_EQUALIZER (1 << 5)
72 
74 #define AUDIO_FEATURE_AUTOMATIC_GAIN (1 << 6)
75 
77 #define AUDIO_FEATURE_DELAY (1 << 7)
78 
80 #define AUDIO_FEATURE_BASS_BOOST (1 << 8)
81 
83 #define AUDIO_FEATURE_BASS_LOUDNESS (1 << 9)
84 
85 
89 #define AUDIO_TERMINAL_UNDEFINED 0x0100
90 
92 #define AUDIO_TERMINAL_STREAMING 0x0101
93 
95 #define AUDIO_TERMINAL_VENDOR 0x01FF
96 
98 #define AUDIO_TERMINAL_IN_UNDEFINED 0x0200
99 
101 #define AUDIO_TERMINAL_IN_MIC 0x0201
102 
104 #define AUDIO_TERMINAL_IN_DESKTOP_MIC 0x0202
105 
107 #define AUDIO_TERMINAL_IN_PERSONAL_MIC 0x0203
108 
110 #define AUDIO_TERMINAL_IN_OMNIDIR_MIC 0x0204
111 
113 #define AUDIO_TERMINAL_IN_MIC_ARRAY 0x0205
114 
116 #define AUDIO_TERMINAL_IN_PROCESSING_MIC 0x0206
117 
119 #define AUDIO_TERMINAL_IN_OUT_UNDEFINED 0x0300
120 
122 #define AUDIO_TERMINAL_OUT_SPEAKER 0x0301
123 
125 #define AUDIO_TERMINAL_OUT_HEADPHONES 0x0302
126 
128 #define AUDIO_TERMINAL_OUT_HEAD_MOUNTED 0x0303
129 
131 #define AUDIO_TERMINAL_OUT_DESKTOP 0x0304
132 
134 #define AUDIO_TERMINAL_OUT_ROOM 0x0305
135 
137 #define AUDIO_TERMINAL_OUT_COMMUNICATION 0x0306
138 
140 #define AUDIO_TERMINAL_OUT_LOWFREQ 0x0307
141 
142 
147 #define AUDIO_SAMPLE_FREQ(freq) {.Byte1 = ((uint32_t)freq & 0xFF), .Byte2 = (((uint32_t)freq >> 8) & 0xFF), .Byte3 = (((uint32_t)freq >> 16) & 0xFF)}
148 
152 #define AUDIO_EP_FULL_PACKETS_ONLY (1 << 7)
153 
157 #define AUDIO_EP_ACCEPTS_SMALL_PACKETS (0 << 7)
158 
162 #define AUDIO_EP_SAMPLE_FREQ_CONTROL (1 << 0)
163 
167 #define AUDIO_EP_PITCH_CONTROL (1 << 1)
168 
169 /* Enums: */
174 {
193 };
194 
197 {
206 };
207 
210 {
214 };
215 
218 {
220 };
221 
224 {
236 };
237 
242 {
245 };
246 
247 /* Type Defines: */
258 typedef struct
259 {
276 
288 typedef struct
289 {
309 
320 typedef struct
321 {
336 
348 typedef struct
349 {
367 
378 typedef struct
379 {
385  u8 ACSpecification[2];
386  u8 TotalLength[2];
391 
392 /*surport mic && speaker*/
393 typedef struct
394 {
400  u8 ACSpecification[2];
401  u8 TotalLength[2];
407 
419 typedef struct
420 {
430  u8 bcdADC[2];
431  u8 wTotalLength[2];
436 
447 typedef struct
448 {
458  u8 ChannelControls[3];
462 
463 /*just for usb_mic*/
464 typedef struct
465 {
475  u8 ChannelControls[2];
479 
491 typedef struct
492 {
506  u8 bmaControls[3];
510 
520 typedef struct
521 {
530  u8 AudioFormat[2];
532 
543 typedef struct
544 {
559 
573 typedef struct
574 {
592 
600 typedef struct
601 {
606 
621 typedef struct
622 {
644 
654 typedef struct
655 {
661 
672 typedef struct
673 {
694 
705 typedef struct
706 {
715  u8 LockDelay[2];
717 
729 typedef struct
730 {
745 
746 /* Disable C linkage for C++ Compilers: */
747 #if defined(__cplusplus)
748 }
749 #endif
750 
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:522
u8 iChannelNames
Definition: AudioClassCommon.h:306
u8 ChannelStrIndex
Definition: AudioClassCommon.h:273
Definition: AudioClassCommon.h:205
u8 bEndpointAddress
Definition: AudioClassCommon.h:678
u8 bLockDelayUnits
Definition: AudioClassCommon.h:742
Definition: AudioClassCommon.h:229
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:426
u8 bUnitID
Definition: AudioClassCommon.h:502
Definition: AudioClassCommon.h:211
u8 bDescriptorType
Definition: AudioClassCommon.h:546
u8 bInterval
Definition: AudioClassCommon.h:687
u8 bLength
Definition: AudioClassCommon.h:421
u8 Subtype
Definition: AudioClassCommon.h:450
Definition: AudioClassCommon.h:200
u8 AssociatedOutputTerminal
Definition: AudioClassCommon.h:267
Audio class-specific Streaming Endpoint Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:672
Definition: AudioClassCommon.h:230
Definition: AudioClassCommon.h:225
u8 TerminalStrIndex
Definition: AudioClassCommon.h:334
Definition: AudioClassCommon.h:190
u16 wTerminalType
Definition: AudioClassCommon.h:359
u8 Subtype
Definition: AudioClassCommon.h:523
u16 wTerminalType
Definition: AudioClassCommon.h:299
Definition: AudioClassCommon.h:244
u8 bDelay
Definition: AudioClassCommon.h:556
u8 bBitResolution
Definition: AudioClassCommon.h:636
u8 InterfaceNumber_speaker
Definition: AudioClassCommon.h:404
u8 iTerminal
Definition: AudioClassCommon.h:307
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:380
Audio_CSInterface_AS_SubTypes_t
Definition: AudioClassCommon.h:209
u8 BitResolution
Definition: AudioClassCommon.h:584
u8 Subtype
Definition: AudioClassCommon.h:396
u8 Byte2
Definition: AudioClassCommon.h:603
u8 bmAttributes
Definition: AudioClassCommon.h:740
u8 bInterfaceNumbers
Definition: AudioClassCommon.h:434
u8 Subtype
Definition: AudioClassCommon.h:467
Definition: AudioClassCommon.h:231
u8 LockDelayUnits
Definition: AudioClassCommon.h:714
u8 bDescriptorType
Definition: AudioClassCommon.h:624
u8 bLength
Definition: AudioClassCommon.h:545
u8 bDescriptorType
Definition: AudioClassCommon.h:422
Definition: AudioClassCommon.h:201
Standard USB Descriptor Header (LUFA naming conventions).
Definition: stdDescriptors.h:173
u8 InCollection
Definition: AudioClassCommon.h:388
u8 bTerminalLink
Definition: AudioClassCommon.h:554
Standard USB Endpoint Descriptor (LUFA naming conventions).
Definition: stdDescriptors.h:537
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:449
Definition: AudioClassCommon.h:187
u8 bDescriptorType
Definition: AudioClassCommon.h:732
Definition: AudioClassCommon.h:198
USB_Descriptor_Endpoint_t Endpoint
Definition: AudioClassCommon.h:656
Definition: AudioClassCommon.h:178
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:395
u8 Subtype
Definition: AudioClassCommon.h:708
u8 bAssocTerminal
Definition: AudioClassCommon.h:300
Definition: AudioClassCommon.h:243
u8 bDescriptorType
Definition: AudioClassCommon.h:494
u8 bSourceID
Definition: AudioClassCommon.h:363
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:707
u8 TerminalID
Definition: AudioClassCommon.h:265
u8 FormatType
Definition: AudioClassCommon.h:580
u8 SourceID
Definition: AudioClassCommon.h:472
u8 bLength
Definition: AudioClassCommon.h:290
u8 FeatureUnitStrIndex
Definition: AudioClassCommon.h:460
u8 TerminalStrIndex
Definition: AudioClassCommon.h:274
Definition: AudioClassCommon.h:204
Audio class-specific Streaming Audio Interface Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:520
u8 bLength
Definition: AudioClassCommon.h:731
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:550
u8 bSourceID
Definition: AudioClassCommon.h:503
u8 SourceID
Definition: AudioClassCommon.h:455
Audio class-specific Interface Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:419
Audio class-specific Streaming Endpoint Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:654
Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:705
Definition: AudioClassCommon.h:181
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:355
Audio class-specific Output Terminal Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:348
u8 ControlSize
Definition: AudioClassCommon.h:457
u8 bDescriptorType
Definition: AudioClassCommon.h:291
u8 Refresh
Definition: AudioClassCommon.h:658
u8 iFeature
Definition: AudioClassCommon.h:508
Definition: AudioClassCommon.h:227
Definition: AudioClassCommon.h:393
Definition: AudioClassCommon.h:199
Audio_CSEndpoint_SubTypes_t
Definition: AudioClassCommon.h:217
u8 TerminalID
Definition: AudioClassCommon.h:327
Definition: AudioClassCommon.h:219
u16 wLockDelay
Definition: AudioClassCommon.h:743
u16 ChannelConfig
Definition: AudioClassCommon.h:271
Audio_Descriptor_ClassSubclassProtocol_t
Definition: AudioClassCommon.h:173
Definition: AudioClassCommon.h:228
Definition: AudioClassCommon.h:175
Audio_CSInterface_AC_SubTypes_t
Definition: AudioClassCommon.h:196
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:322
u8 Byte1
Definition: AudioClassCommon.h:602
u8 bAssocTerminal
Definition: AudioClassCommon.h:360
u8 bLength
Definition: AudioClassCommon.h:623
u8 UnitID
Definition: AudioClassCommon.h:471
u8 TerminalLink
Definition: AudioClassCommon.h:527
u8 AssociatedInputTerminal
Definition: AudioClassCommon.h:329
u8 Attributes
Definition: AudioClassCommon.h:712
u8 bLength
Definition: AudioClassCommon.h:493
u8 Subtype
Definition: AudioClassCommon.h:323
u8 bInCollection
Definition: AudioClassCommon.h:433
u8 SubFrameSize
Definition: AudioClassCommon.h:583
u8 InCollection
Definition: AudioClassCommon.h:403
Definition: AudioClassCommon.h:212
u8 TotalDiscreteSampleRates
Definition: AudioClassCommon.h:586
24-Bit Audio Frequency Structure.
Definition: AudioClassCommon.h:600
Audio class-specific Input Terminal Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:258
u8 bFormatType
Definition: AudioClassCommon.h:632
Audio class-specific Extended Endpoint Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:729
Definition: AudioClassCommon.h:184
Audio_EndpointControls_t
Definition: AudioClassCommon.h:241
Audio class-specific Streaming Audio Interface Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:543
u8 bRefresh
Definition: AudioClassCommon.h:691
u8 Subtype
Definition: AudioClassCommon.h:576
Definition: AudioClassCommon.h:464
Audio class-specific Input Terminal Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:288
u8 UnitID
Definition: AudioClassCommon.h:454
u8 FeatureUnitStrIndex
Definition: AudioClassCommon.h:477
Audio_ClassRequests_t
Definition: AudioClassCommon.h:223
Definition: AudioClassCommon.h:203
u8 bSubFrameSize
Definition: AudioClassCommon.h:635
u16 wMaxPacketSize
Definition: AudioClassCommon.h:684
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:295
Definition: AudioClassCommon.h:202
u8 Byte3
Definition: AudioClassCommon.h:604
u16 TerminalType
Definition: AudioClassCommon.h:328
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:466
u8 SyncEndpointNumber
Definition: AudioClassCommon.h:659
u8 bSampleFrequencyType
Definition: AudioClassCommon.h:638
Audio class-specific Feature Unit Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:447
u8 InterfaceNumber
Definition: AudioClassCommon.h:389
u8 bSynchAddress
Definition: AudioClassCommon.h:692
u8 bNrChannels
Definition: AudioClassCommon.h:303
Definition: AudioClassCommon.h:235
u8 TotalChannels
Definition: AudioClassCommon.h:270
u8 Subtype
Definition: AudioClassCommon.h:261
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:498
u8 bmAttributes
Definition: AudioClassCommon.h:681
u8 bTerminalID
Definition: AudioClassCommon.h:298
unsigned short u16
Definition: types.h:15
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:628
unsigned char u8
Definition: types.h:14
u8 ControlSize
Definition: AudioClassCommon.h:474
Definition: AudioClassCommon.h:232
u8 bLength
Definition: AudioClassCommon.h:674
u8 FrameDelay
Definition: AudioClassCommon.h:529
u8 Channels
Definition: AudioClassCommon.h:581
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:260
u8 bDescriptorType
Definition: AudioClassCommon.h:351
u8 bNrChannels
Definition: AudioClassCommon.h:633
Definition: AudioClassCommon.h:213
u8 bTerminalID
Definition: AudioClassCommon.h:358
u8 Subtype
Definition: AudioClassCommon.h:381
Definition: AudioClassCommon.h:234
u16 TerminalType
Definition: AudioClassCommon.h:266
u8 bLength
Definition: AudioClassCommon.h:350
u16 wFormatTag
Definition: AudioClassCommon.h:557
u16 wChannelConfig
Definition: AudioClassCommon.h:304
Audio class-specific Feature Unit Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:491
Audio class-specific Format Descriptor (USB-IF naming conventions).
Definition: AudioClassCommon.h:621
u8 SourceID
Definition: AudioClassCommon.h:332
Audio class-specific Interface Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:378
u8 bDescriptorSubtype
Definition: AudioClassCommon.h:736
Definition: AudioClassCommon.h:233
u8 bControlSize
Definition: AudioClassCommon.h:505
u8 iTerminal
Definition: AudioClassCommon.h:365
u8 InterfaceNumber_mic
Definition: AudioClassCommon.h:405
u8 bDescriptorType
Definition: AudioClassCommon.h:675
Definition: AudioClassCommon.h:226
Audio class-specific Format Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:573
USB_Descriptor_Header_t Header
Definition: AudioClassCommon.h:575
Audio class-specific Output Terminal Descriptor (LUFA naming conventions).
Definition: AudioClassCommon.h:320