{
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                        uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
                        uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
                        uint8_t                 AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals
                        uint8_t                 TerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
                        uint16_t                TerminalType; /**< Type of terminal, a TERMINAL_* mask. */
                        uint8_t                 AssociatedOutputTerminal; /**< ID of associated output terminal, for physically grouped terminals
                        uint8_t                 TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */
                        uint16_t                ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */
                        
                        uint8_t                 TotalChannels; /**< Total number of separate audio channels within this interface (right, left, etc.) */
                        uint16_t                ChannelConfig; /**< CHANNEL_* masks indicating what channel layout is supported by this terminal. */
                        
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
 
                        uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
                        uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
 
                        uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */
                        uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
 
                        uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */               
                        uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
 
                        uint8_t  bDescriptorSubtype; /**< Sub type value used to distinguish between audio class-specific descriptors. */               
                        uint8_t  bTerminalID; /**< ID value of this terminal unit - must be a unique value within the device. */
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a
                        uint8_t  bRefresh; /**< Always set to zero for Audio class devices. */
                        uint8_t  bSynchAddress; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */
                } USB_Audio_StdDescriptor_StreamEndpoint_Std_t;
                        uint8_t  bRefresh; /**< Always set to zero for Audio class devices. */
                        uint8_t  bSynchAddress; /**< Endpoint address to send synchronization information to, if needed (zero otherwise). */
                } USB_Audio_StdDescriptor_StreamEndpoint_Std_t;
                /** \brief Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).
                 *
                 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information
                /** \brief Audio class-specific Extended Endpoint Descriptor (LUFA naming conventions).
                 *
                 *  Type define for an Audio class-specific extended endpoint descriptor. This contains extra information
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value
                {
                        uint8_t  bLength; /**< Size of the descriptor, in bytes. */
                        uint8_t  bDescriptorType; /**< Type of the descriptor, either a value in \ref USB_DescriptorTypes_t or a value