64 .ManufacturerStrIndex = 0x01,
65 .ProductStrIndex = 0x02,
83 .ConfigurationNumber = 1,
91 .Audio_ControlInterface = {
106 .Audio_ControlInterface_SPC = {
116 .InterfaceNumber = 1,
119 .Audio_InputTerminal = {
134 .Audio_OutputTerminal = {
147 .Audio_StreamInterface_Alt0 = {
162 .Audio_StreamInterface_Alt1 = {
177 .Audio_StreamInterface_SPC = {
187 .Audio_AudioFormat = {
196 .SubFrameSize = 0x02,
199 .TotalDiscreteSampleRates =
203 .Audio_AudioFormatSampleRates = {
211 .Audio_StreamEndpoint = {
225 .Audio_StreamEndpoint_SPC = {
232 .LockDelayUnits = 0x00,
235 .Audio_Termination = 0x00
315 const void * *
const DescriptorAddress)
317 const uint8_t DescriptorType = (wValue >> 8);
318 const uint8_t DescriptorNumber = (wValue & 0xFF);
320 const void *Address =
NULL;
323 switch (DescriptorType) {
335 switch (DescriptorNumber) {
338 Size = pgm_read_byte(&LanguageStringPtr->Header.Size);
343 Size = pgm_read_byte(&ManufacturerStringPtr->Header.Size);
348 Size = pgm_read_byte(&ProductStringPtr->Header.Size);
355 *DescriptorAddress = Address;