<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Full Duplex USB Audio with KDS 2.0 in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565467#M5765</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I looking deeper into this I think I found the issue.&amp;nbsp; The KSDK 2.0 only supports 1 audio streaming endpoint.&amp;nbsp; In usb_status_t USB_DeviceAudioStreamEndpointsInit(usb_device_audio_struct_t *audioHandle) [ usb_device_audio.c] breaks on the first streaming interface found, and only stores 1 stream interface number.&amp;nbsp;&amp;nbsp; Based on the USB Audio spec as I read it, only 1 ISO data stream is allowed per interface.&amp;nbsp; So to accomplish input and output I need a second interface and hence the bug.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone confirm this analysis?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Andrew&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 24 Jun 2016 15:51:32 GMT</pubDate>
    <dc:creator>andrewdeliso</dc:creator>
    <dc:date>2016-06-24T15:51:32Z</dc:date>
    <item>
      <title>Full Duplex USB Audio with KDS 2.0</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565466#M5764</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to implement a USB Audio full duplex device.&amp;nbsp; I have the MIC function working fine based off the composite hid audio example.&amp;nbsp; I am trying to get the Speaker function to work and I am unable to configure the USB setup correctly.&amp;nbsp; The descriptor is correct, my Linux host has no issues with it and using wireshark I can see the packets being sent and they are being accepted.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the snippets of the relevant code.&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;/* Audio generator stream endpoint information */ /* Direction from HOST view */ usb_device_endpoint_struct_t g_UsbDeviceAudioGeneratorEndpoints[USB_AUDIO_STREAM_ENDPOINT_COUNT] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio generator ISO IN pipe */ &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_ENDPOINT | (USB_IN &amp;lt;&amp;lt; USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_ISOCHRONOUS, FS_ISO_IN_ENDP_PACKET_SIZE, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp; /* Audio generator ISO OUT pipe */ &amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_OUT_ENDPOINT | (USB_OUT &amp;lt;&amp;lt; USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_ISOCHRONOUS, FS_ISO_IN_ENDP_PACKET_SIZE, &amp;nbsp; }, };&amp;nbsp;&amp;nbsp; /* Audio generator control endpoint information */ usb_device_endpoint_struct_t g_UsbDeviceAudioControlEndpoints[USB_AUDIO_CONTROL_ENDPOINT_COUNT] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_ENDPOINT | (USB_IN &amp;lt;&amp;lt; USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_INTERRUPT, FS_INTERRUPT_IN_PACKET_SIZE, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, };&amp;nbsp;&amp;nbsp; /* Audio generator entity struct */ usb_device_audio_entity_struct_t g_UsbDeviceAudioEntity[] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01, USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_INPUT_TERMINAL, 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02, USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_INPUT_TERMINAL, 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x06, USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_OUTPUT_TERMINAL, 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x07, USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_OUTPUT_TERMINAL, 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, };&amp;nbsp;&amp;nbsp; /* Audio generator entity information */ usb_device_audio_entities_struct_t g_UsbDeviceAudioEntities = { &amp;nbsp;&amp;nbsp;&amp;nbsp; g_UsbDeviceAudioEntity, sizeof(g_UsbDeviceAudioEntity) / sizeof(usb_device_audio_entity_struct_t), };&amp;nbsp;&amp;nbsp; /* Audio generator control interface information */ usb_device_interface_struct_t g_UsbDeviceAudioControInterface[] = {{ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_ENDPOINT_COUNT, g_UsbDeviceAudioControlEndpoints, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;g_UsbDeviceAudioEntities, }};&amp;nbsp;&amp;nbsp; /* Audio generator stream interface information */ usb_device_interface_struct_t g_UsbDeviceAudioStreamInterface[] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0U, NULL, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1U, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_ENDPOINT_COUNT, g_UsbDeviceAudioGeneratorEndpoints, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp; { &amp;nbsp; 2U, &amp;nbsp; { &amp;nbsp; USB_AUDIO_STREAM_ENDPOINT_COUNT, g_UsbDeviceAudioGeneratorEndpoints, &amp;nbsp; }, &amp;nbsp; NULL, &amp;nbsp; } };&amp;nbsp;&amp;nbsp; /* Define interfaces for audio generator */ usb_device_interfaces_struct_t g_UsbDeviceAudioInterfaces[USB_AUDIO_GENERATOR_INTERFACE_COUNT] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio class code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOCONTROL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio control subclass code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_PROTOCOL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio protocol code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_INTERFACE_INDEX, /* The interface number of the Audio control */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_UsbDeviceAudioControInterface,&amp;nbsp;&amp;nbsp; /* The handle of Audio control */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sizeof(g_UsbDeviceAudioControInterface) / sizeof(usb_device_interfaces_struct_t), &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio class code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOSTREAM,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio stream subclass code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_PROTOCOL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio protocol code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_INTERFACE_INDEX, /* The interface number of the Audio control */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_UsbDeviceAudioStreamInterface,&amp;nbsp; /* The handle of Audio stream */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sizeof(g_UsbDeviceAudioStreamInterface) / sizeof(usb_device_interfaces_struct_t), &amp;nbsp;&amp;nbsp;&amp;nbsp; }, &amp;nbsp;&amp;nbsp;&amp;nbsp; { &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio class code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOSTREAM,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio stream subclass code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_PROTOCOL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio protocol code */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_OUT_INTERFACE_INDEX, /* The interface number of the Audio control */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_UsbDeviceAudioStreamInterface,&amp;nbsp; /* The handle of Audio stream */ &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sizeof(g_UsbDeviceAudioStreamInterface) / sizeof(usb_device_interfaces_struct_t), &amp;nbsp;&amp;nbsp;&amp;nbsp; } };&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;P&gt;I feel that this config is wrong, but a can't find a example of how to configure it for 2 interfaces.&amp;nbsp; I am not getting any interrupts when the speaker endpoint is called.&amp;nbsp; Thou in wireshark I see successful transfers.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the descriptor:&lt;/P&gt;&lt;PRE class="c++" name="code"&gt;uint8_t g_UsbDeviceConfigurationDescriptor[USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL] = { &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_CONFIGURE, /* Size of this descriptor in bytes */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_CONFIGURE,&amp;nbsp;&amp;nbsp; /* CONFIGURATION Descriptor Type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_LOW(USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL), &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_HIGH( &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL), /* Total length of data returned for this configuration. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DEVICE_INTERFACE_COUNT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Number of interfaces supported by this configuration */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_COMPOSITE_CONFIGURE_INDEX,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Value to use as an argument to the &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetConfiguration() request to select this configuration */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of string descriptor describing this configuration */ &amp;nbsp;&amp;nbsp;&amp;nbsp; (USB_DESCRIPTOR_CONFIGURE_ATTRIBUTE_D7_MASK) | &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (USB_DEVICE_CONFIG_SELF_POWER &amp;lt;&amp;lt; USB_DESCRIPTOR_CONFIGURE_ATTRIBUTE_SELF_POWERED_SHIFT) | &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (USB_DEVICE_CONFIG_REMOTE_WAKEUP &amp;lt;&amp;lt; USB_DESCRIPTOR_CONFIGURE_ATTRIBUTE_REMOTE_WAKEUP_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configuration characteristics &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D7: Reserved (set to one) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D6: Self-powered &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D5: Remote Wakeup &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D4...0: Reserved (reset to zero) &amp;nbsp;&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DEVICE_MAX_POWER, /* Maximum power consumption of the USB &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * device from the bus in this specific &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * configuration when the device is fully &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * operational. Expressed in 2 mA units &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; (i.e., 50 = 100 mA). &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE,&amp;nbsp;&amp;nbsp; /* Size of this descriptor in bytes */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_INTERFACE_INDEX, /* Number of this interface. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Value used to select this alternate setting &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the interface identified in the prior field */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Number of endpoints used by this &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface (excluding endpoint zero). */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*The interface implements the Audio Interface class&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOCONTROL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*The interface implements the AUDIOCONTROL Subclass&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*The interface doesn't use any class-specific protocols&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device doesn't have a string descriptor describing this iInterface&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type of INTERFACE Descriptor */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_INTERFACE_HEADER_LENGTH+1,&amp;nbsp;&amp;nbsp; /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_HEADER, /* HEADER descriptor subtype&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U, 0x01U, /* Audio Device compliant to the USB Audio specification version 1.00&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2A, 0x00U,&amp;nbsp; /* Total number of bytes returned for the class-specific AudioControl interface descriptor. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Includes the combined length of this descriptor header and all Unit and Terminal &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descriptors. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of AudioStreaming and MIDIStreaming interfaces in the Audio Interface Collection to &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; which this AudioControl interface belongs&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of AudioStreaming and MIDIStreaming interfaces in the Audio Interface baNumber */ &amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of AudioStreaming and MIDIStreaming interfaces in the Audio Interface baNumber */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type of Input Terminal*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_INPUT_TERMINAL_ONLY_DESC_SIZE, /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_INPUT_TERMINAL, &amp;nbsp;&amp;nbsp;&amp;nbsp; /* INPUT_TERMINAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Constant uniquely identifying the Terminal within the audio function. This value is used in all &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requests to address this Terminal.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, 0x01,&amp;nbsp; /* A USB Streaming.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This Input Terminal has no association&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This Terminal's output audio channel cluster has 2 logical output channels&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03U, 0x00U, /* Left Front (L) and Right Front (R) */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the name of the first logical channel.&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the Input Terminal.&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type of Input Terminal*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_INPUT_TERMINAL_ONLY_DESC_SIZE, /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_INPUT_TERMINAL, &amp;nbsp;&amp;nbsp;&amp;nbsp; /* INPUT_TERMINAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Constant uniquely identifying the Terminal within the audio function. This value is used in all &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requests to address this Terminal.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, 0x02,&amp;nbsp; /* A generic microphone that does not fit under any of the other classifications.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This Input Terminal has no association&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This Terminal's output audio channel cluster has 1 logical output channels&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U, 0x00U, /* Mono */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the name of the first logical channel.&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the Input Terminal.&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type of&amp;nbsp; Output Terminal */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_OUTPUT_TERMINAL_ONLY_DESC_SIZE, /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp;&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_OUTPUT_TERMINAL, &amp;nbsp;&amp;nbsp;&amp;nbsp; /* OUTPUT_TERMINAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x06,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Constant uniquely identifying the Terminal within the audio function*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, 0x03U, /* Speaker Interface */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; This Output Terminal has no association&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ID of the Unit or Terminal to which this Terminal is connected.&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the Output Terminal.&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type of&amp;nbsp; Output Terminal */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_OUTPUT_TERMINAL_ONLY_DESC_SIZE, /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp;&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_CONTROL_OUTPUT_TERMINAL, &amp;nbsp;&amp;nbsp;&amp;nbsp; /* OUTPUT_TERMINAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x07,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Constant uniquely identifying the Terminal within the audio function*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, 0x01U, /* A Terminal dealing with a signal carried over an endpoint in an AudioStreaming interface */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; This Output Terminal has no association&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ID of the Unit or Terminal to which this Terminal is connected.&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of a string descriptor, describing the Output Terminal.&amp;nbsp; */&amp;nbsp;&amp;nbsp; // End of Control Section&amp;nbsp;&amp;nbsp; &amp;nbsp; // Optional Control endpoint.... &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_AC_INTERRUPT_ENDPOINT, /* Size of this descriptor, in bytes: 9U */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_ENDPOINT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ENDPOINT descriptor type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CONTROL_ENDPOINT | (USB_IN &amp;lt;&amp;lt; USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Endpoint address */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_INTERRUPT, /* Transfer type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_LOW(FS_INTERRUPT_IN_PACKET_SIZE), USB_SHORT_GET_HIGH(FS_INTERRUPT_IN_PACKET_SIZE), &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Max Packet Size */ &amp;nbsp;&amp;nbsp;&amp;nbsp; FS_INTERRUPT_IN_INTERVAL, /* Interval */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0,&amp;nbsp;&amp;nbsp; /* MIC to the Host on the USB Interface */ &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific INTERFACE Descriptor, alternative interface 0&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE,&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_INTERFACE_INDEX, /* The number of this interface is 1.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The value used to select the alternate setting for this interface is 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of endpoints used by this interface is 0 (excluding endpoint zero)&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface implements the Audio Interface class&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOSTREAM, /* The interface implements the AUDIOSTREAMING Subclass&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface doesn't use any class-specific protocols&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device doesn't have a string descriptor describing this iInterface&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific INTERFACE Descriptor, alternative interface 1 */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE,&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_INTERFACE_INDEX, /*The number of this interface is 1.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The value used to select the alternate setting for this interface is 1&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of endpoints used by this interface is 1 (excluding endpoint zero)&amp;nbsp;&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface implements the Audio Interface class&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SUBCLASS_AUDIOSTREAM, /* The interface implements the AUDIOSTREAMING Subclass&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface doesn't use any class-specific protocols&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device doesn't have a string descriptor describing this iInterface&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific CS INTERFACE Descriptor*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAMING_IFACE_DESC_SIZE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_STREAMING_GENERAL, /* AS_GENERAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x07U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The Terminal ID of the Terminal to which the endpoint of this interface is connected. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Delay introduced by the data path. Expressed in number of frames.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, 0x00U, /* PCM16&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific type I format INTERFACE Descriptor */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAMING_TYPE_I_DESC_SIZE,&amp;nbsp;&amp;nbsp; /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE, /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_STREAMING_FORMAT_TYPE, &amp;nbsp;&amp;nbsp;&amp;nbsp; /* FORMAT_TYPE descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_FORMAT_TYPE_I, /* FORMAT_TYPE_I&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates the number of physical channels in the audio data stream.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of bytes occupied by one audio subframe. Can be 1, 2, 3 or 4.&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of effectively used bits from the available bits in an audio subframe.*/ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates how the sampling frequency can be programmed:&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x40, 0x1F, 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Sampling frequency 1 in Hz for this isochronous data endpoint.&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* ENDPOINT Descriptor */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_AUDIO_DESCRIPTOR_LENGTH,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_ENDPOINT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ENDPOINT Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_ENDPOINT | (USB_IN &amp;lt;&amp;lt; 7), /* This is an IN endpoint with endpoint number 2&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_ISOCHRONOUS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Types - Transfer: ISOCHRONOUS */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_LOW(FS_ISO_IN_ENDP_PACKET_SIZE), &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_HIGH(FS_ISO_IN_ENDP_PACKET_SIZE), /* Maximum packet size for this endpoint is 8 Bytes.&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; ISO_IN_ENDP_INTERVAL, /* The polling interval value is every 1 Frames. If Hi-Speed, every 1 uFrames&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Refresh Rate 2**n ms where n = 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Synchronization Endpoint (if used) is endpoint 0&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Audio Class Specific ENDPOINT Descriptor&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAMING_ENDP_DESC_SIZE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_STREAM_ENDPOINT_DESCRIPTOR,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS_ENDPOINT Descriptor Type&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_AUDIO_EP_GENERAL_DESCRIPTOR_SUBTYPE, /* AUDIO_EP_GENERAL descriptor subtype&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bit 0: Sampling Frequency 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit 1: Pitch 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit 7: MaxPacketsOnly 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates the units used for the wLockDelay field: 0: Undefined&amp;nbsp; */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U, 0x00U, /* Indicates the time it takes this endpoint to reliably lock its internal clock recovery &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; circuitry */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* Speaker from the Host on the USB Interface */ &amp;nbsp; /* Audio Class Specific INTERFACE Descriptor, alternative interface 0&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE,&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_AUDIO_STREAM_OUT_INTERFACE_INDEX, /* The number of this interface is 2.&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The value used to select the alternate setting for this interface is 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of endpoints used by this interface is 0 (excluding endpoint zero)&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface implements the Audio Interface class&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_SUBCLASS_AUDIOSTREAM, /* The interface implements the AUDIOSTREAMING Subclass&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface doesn't use any class-specific protocols&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device doesn't have a string descriptor describing this iInterface&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* Audio Class Specific INTERFACE Descriptor, alternative interface 1 */ &amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE,&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type&amp;nbsp; */ &amp;nbsp; USB_AUDIO_STREAM_OUT_INTERFACE_INDEX, /*The number of this interface is 2.&amp;nbsp; */ &amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The value used to select the alternate setting for this interface is 1&amp;nbsp; */ &amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of endpoints used by this interface is 1 (excluding endpoint zero)&amp;nbsp;&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_AUDIO_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface implements the Audio Interface class&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_SUBCLASS_AUDIOSTREAM, /* The interface implements the AUDIOSTREAMING Subclass&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The interface doesn't use any class-specific protocols&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device doesn't have a string descriptor describing this iInterface&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* Audio Class Specific CS INTERFACE Descriptor*/ &amp;nbsp; USB_AUDIO_STREAMING_IFACE_DESC_SIZE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS_INTERFACE Descriptor Type&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_STREAMING_GENERAL, /* AS_GENERAL descriptor subtype&amp;nbsp; */ &amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The Terminal ID of the Terminal to which the endpoint of this interface is connected. */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Delay introduced by the data path. Expressed in number of frames.&amp;nbsp; */ &amp;nbsp; 0x01U, 0x00U, /* PCM16&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* Audio Class Specific type I format INTERFACE Descriptor */ &amp;nbsp; USB_AUDIO_STREAMING_TYPE_I_DESC_SIZE,&amp;nbsp;&amp;nbsp; /* Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_TYPE_AUDIO_CS_INTERFACE, /* CS_INTERFACE Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_SUBTYPE_AUDIO_STREAMING_FORMAT_TYPE, &amp;nbsp; /* FORMAT_TYPE descriptor subtype&amp;nbsp; */ &amp;nbsp; USB_AUDIO_FORMAT_TYPE_I, /* FORMAT_TYPE_I&amp;nbsp; */ &amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates the number of physical channels in the audio data stream.&amp;nbsp; */ &amp;nbsp; 0x02U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of bytes occupied by one audio subframe. Can be 1, 2, 3 or 4.&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x10U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The number of effectively used bits from the available bits in an audio subframe.*/ &amp;nbsp; 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates how the sampling frequency can be programmed:&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x40, 0x1F, 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Sampling frequency 1 in Hz for this isochronous data endpoint.&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* ENDPOINT Descriptor */ &amp;nbsp; USB_ENDPOINT_AUDIO_DESCRIPTOR_LENGTH,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Descriptor size is 9 bytes&amp;nbsp; */ &amp;nbsp; USB_DESCRIPTOR_TYPE_ENDPOINT,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ENDPOINT Descriptor Type&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_AUDIO_STREAM_OUT_ENDPOINT | (USB_OUT &amp;lt;&amp;lt; 7), /* This is an OUT endpoint with endpoint number 2&amp;nbsp;&amp;nbsp; */ &amp;nbsp; USB_ENDPOINT_ISOCHRONOUS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Types - Transfer: ISOCHRONOUS */ &amp;nbsp; USB_SHORT_GET_LOW(FS_ISO_IN_ENDP_PACKET_SIZE), &amp;nbsp; USB_SHORT_GET_HIGH(FS_ISO_IN_ENDP_PACKET_SIZE), /* Maximum packet size for this endpoint is 8 Bytes.&amp;nbsp; */ &amp;nbsp; ISO_IN_ENDP_INTERVAL, /* The polling interval value is every 1 Frames. If Hi-Speed, every 1 uFrames&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Refresh Rate 2**n ms where n = 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Synchronization Endpoint (if used) is endpoint 0&amp;nbsp;&amp;nbsp; */&amp;nbsp;&amp;nbsp; &amp;nbsp; /* Audio Class Specific ENDPOINT Descriptor&amp;nbsp; */ &amp;nbsp; USB_AUDIO_STREAMING_ENDP_DESC_SIZE,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; Size of the descriptor, in bytes&amp;nbsp; */ &amp;nbsp; USB_AUDIO_STREAM_ENDPOINT_DESCRIPTOR,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* CS_ENDPOINT Descriptor Type&amp;nbsp; */ &amp;nbsp; USB_AUDIO_EP_GENERAL_DESCRIPTOR_SUBTYPE, /* AUDIO_EP_GENERAL descriptor subtype&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bit 0: Sampling Frequency 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit 1: Pitch 0 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bit 7: MaxPacketsOnly 0&amp;nbsp;&amp;nbsp; */ &amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Indicates the units used for the wLockDelay field: 0: Undefined&amp;nbsp; */ &amp;nbsp; 0x00U, 0x00U, /* Indicates the time it takes this endpoint to reliably lock its internal clock recovery &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; circuitry */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Interface Descriptor */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_INTERFACE, /* Size of this descriptor in bytes */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_INTERFACE,&amp;nbsp;&amp;nbsp; /* INTERFACE Descriptor Type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Number of this interface. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Value used to select this alternate setting &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for the interface identified in the prior field */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_GAMEPAD_ENDPOINT_COUNT,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Number of endpoints used by this &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interface (excluding endpoint zero). */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_GAMEPAD_CLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Class code (assigned by the USB-IF). */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_GAMEPAD_SUBCLASS,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Subclass code (assigned by the USB-IF). */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_GAMEPAD_PROTOCOL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Protocol code (assigned by the USB). */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Index of string descriptor describing this interface */&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_HID, /* Numeric expression that is the total size of the HID descriptor. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_HID,&amp;nbsp;&amp;nbsp; /* Constant name specifying type of HID descriptor. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U, 0x01U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Numeric expression identifying the HID Class Specification release. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00U,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Numeric expression identifying country code of the localized hardware */ &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01U, /* Numeric expression specifying the number of class descriptors(at least one report descriptor) */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_HID_REPORT, /* Constant name identifying type of class descriptor. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_LOW(USB_DESCRIPTOR_LENGTH_HID_GAMEPAD_REPORT), &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_HIGH(USB_DESCRIPTOR_LENGTH_HID_GAMEPAD_REPORT), &amp;nbsp;&amp;nbsp;&amp;nbsp; /* Numeric expression that is the total size of the Report descriptor. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_LENGTH_ENDPOINT, /* Size of this descriptor in bytes */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_DESCRIPTOR_TYPE_ENDPOINT,&amp;nbsp;&amp;nbsp; /* ENDPOINT Descriptor Type */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_GAMEPAD_ENDPOINT | (USB_IN &amp;lt;&amp;lt; USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), &amp;nbsp;&amp;nbsp;&amp;nbsp; /* The address of the endpoint on the USB device &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; described by this descriptor. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_ENDPOINT_INTERRUPT, /* This field describes the endpoint's attributes */ &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_LOW(FS_INTERRUPT_IN_PACKET_SIZE), &amp;nbsp;&amp;nbsp;&amp;nbsp; USB_SHORT_GET_HIGH(FS_INTERRUPT_IN_PACKET_SIZE), /* Maximum packet size this endpoint is capable of &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sending or receiving when this configuration is selected. */ &amp;nbsp;&amp;nbsp;&amp;nbsp; FS_INTERRUPT_IN_INTERVAL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Interval for polling endpoint for data transfers. */ };&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for the help.&lt;/P&gt;&lt;P&gt;Andrew&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jun 2016 13:35:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565466#M5764</guid>
      <dc:creator>andrewdeliso</dc:creator>
      <dc:date>2016-06-23T13:35:15Z</dc:date>
    </item>
    <item>
      <title>Re: Full Duplex USB Audio with KDS 2.0</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565467#M5765</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I looking deeper into this I think I found the issue.&amp;nbsp; The KSDK 2.0 only supports 1 audio streaming endpoint.&amp;nbsp; In usb_status_t USB_DeviceAudioStreamEndpointsInit(usb_device_audio_struct_t *audioHandle) [ usb_device_audio.c] breaks on the first streaming interface found, and only stores 1 stream interface number.&amp;nbsp;&amp;nbsp; Based on the USB Audio spec as I read it, only 1 ISO data stream is allowed per interface.&amp;nbsp; So to accomplish input and output I need a second interface and hence the bug.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone confirm this analysis?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Andrew&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 15:51:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565467#M5765</guid>
      <dc:creator>andrewdeliso</dc:creator>
      <dc:date>2016-06-24T15:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: Full Duplex USB Audio with KDS 2.0</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565468#M5766</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Andrew,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for late response, Indeed, you need to configure 2 interfaces (one for ISO OUT data and other for ISO IN data) and also another interface to describe the topology for your audio device (features, units, terminals, etc). At least, 3 interfaces should be defined in order to be detected correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can give a look to this thread: &lt;A href="https://community.nxp.com/thread/379812"&gt;https://community.nxp.com/thread/379812&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope this helps!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Oct 2016 21:17:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Full-Duplex-USB-Audio-with-KDS-2-0/m-p/565468#M5766</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-10-13T21:17:08Z</dc:date>
    </item>
  </channel>
</rss>

