Author: Paul_R
Date: 2008-09-19 10:55:07 +0200 (Fri, 19 Sep 2008)
New Revision: 1914
Modified:
firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.c
firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.h
Log:
* Changed the discriptor to fix the Audio card problems on Window.
For Windows, the default card is the last detected. The last audio card on the
dongle is the TTS. So, to fix the windows problem, the solution is to switch
the normal audio card with the TTS card.
So, the new descriptor model is :
ACtts, AStts, Dummy Interface, HID (or libusb), ACnorm, ASmic, ASspk.
Modified: firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.c
===================================================================
--- firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.c
2008-09-19 08:51:38 UTC (rev 1913)
+++ firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.c
2008-09-19 08:55:07 UTC (rev 1914)
@@ -124,85 +124,53 @@
CONF_ATTRIBUTES, // bmAttributes
MAX_POWER // MaxPower
},
-
//-------------------------------------------------------------------------
// Audio
//-------------------------------------------------------------------------
// Interface 0 :: Audio Control
-
//-------------------------------------------------------------------------
+
//-------------------------------------------------------------------------
// StandardACInterfaceDescriptor_1[] =
//-------------------------------------
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x00, // interface number (0)
+ 0x00, // interface number (4)
0x00, // alternate setting (0)
0x00, // number of endpoints (0)
0x01, // interface class AUDIO
0x01, // interface sub-class AUDIO_CONTROL
0x00, // interface protocol UNUSED
- 0x08 // interface string index UNUSED
+ 0x07 // interface string index UNUSED
},
// SpecificACInterfaceDescriptor[] =
//-------------------------------------
{
- 0x0A, // length of descriptor (10 bytes)
+ 0x09, // length of descriptor (9 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x01, // HEADER subtype
0x0001, // bcdADC Revision of class specification 1.0
- 0x3400, // wTotal Lenght Total size of class specific descriptors
- 0x02, // blnCollection Number of streaming interfaces
- 0x01, // baInterfaceNr
- 0x02 // baInterfaceNr
+ 0x1E00, // wTotal Lenght Total size of class specific descriptors
+ 0x01, // blnCollection Number of streaming interfaces
+ 0x01 // baInterfaceNr
},
- // IT Microphone Part : Hardware
- // MicInputTerminal1Descriptor[] =
- //-------------------------------------
- {
- 0x0C, // length of descriptor (12 bytes)
- 0x24, // bdescriptor type (CS_INTERFACE)
- 0x02, // bdescriptor Subtype INPUT_TERMINAL subtype
- 0x01, // bTerminalID ID of this Input Terminal
- 0x0102, // Terminal is Microphone
- 0x00, // bAssocTerminal No Association
- 0x01, // bNrChannels One channel
- 0x0000, // wChannelConfig Mono Sets no posistion bits
- 0x00, // iChannelNames Unused
- 0x06 // iTerminal Unused
- },
-
- // IT Speaker Part : USB
- // SpkInputTerminalDescriptor[] =
+ // IT Speaker Part : USB
+ // SpkInputTerminalDescriptor[] =
//-------------------------------------
{
0x0C, // length of descriptor (12 bytes)
0x24, // bdescriptor type (CS_INTERFACE)
0x02, // bdescriptor Subtype INPUT_TERMINAL subtype
- 0x02, // bTerminalID ID of this Input Terminal
+ 0x07, // bTerminalID ID of this Input Terminal
0x0101, // Terminal is USB
0x00, // bAssocTerminal No Association
0x01, // bNrChannels One channel
0x0000, // wChannelConfig Mono Sets no posistion bits
- 0x05, // iChannelNames Unused
- 0 // iTerminal Unused
+ 0x00, // iChannelNames Unused
+ 0x07 // iTerminal Unused
},
- // OT Microphone Part : Software
- // MicOutputTerminal1Descriptor[] =
- //-------------------------------------
- {
- 0x09, // length of descriptor (9 bytes)
- 0x24, // descriptor type (CS_INTERFACE)
- 0x03, // bdescriptor subtype OUTPUT_TERMINAL
- 0x03, // bTerminalID ID of this Output Terminal
- 0x0101, // 0x0101 USB Streaming
- 0x00, // bAssocTerminal No association
- 0x01, // bSourceID From Input Termianl
- 0x06 // iTerminal Unused
- },
-
// OT Speaker Part : Software
// SpkOutputTerminalDescriptor[] =
//-------------------------------------
@@ -210,113 +178,31 @@
0x09, // length of descriptor (9 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x03, // bdescriptor subtype OUTPUT_TERMINAL
- 0x04, // bTerminalID ID of this Output Terminal
+ 0x08, // bTerminalID ID of this Output Terminal
0x0103, // 0x0301 Speaker
0x00, // bAssocTerminal No association
- 0x02, // bSourceID From Input Termianl
- 0x05 // iTerminal Unused
+ 0x07, // bSourceID From Input Termianl
+ 0x07 // iTerminal Unused
},
//-------------------------------------------------------------------------
- // Microphone
+ // Speaker
//-------------------------------------------------------------------------
// Interface 1 :: Audio Stream
//-------------------------------------------------------------------------
- // MicStandardAlt0ASInterfaceDescriptor[] =
- //-------------------------------------
- {
- 0x09, // length of descriptor (9 bytes)
- 0x04, // descriptor type (INTERFACE)
- 0x01, // interface number Index of this interface
- 0x00, // alternate setting Index of this alternate setting
- 0x00, // number of endpoints (0)
- 0x01, // interface class AUDIO
- 0x02, // interface sub-class AUDIO_STREAMING
- 0x00, // interface protocol UNUSED
- 0x06 // interface string index UNUSED
- },
- // MicStandardAlt1ASInterfaceDescriptor[] =
- //-------------------------------------
- {
- 0x09, // length of descriptor (9 bytes)
- 0x04, // descriptor type (INTERFACE)
- 0x01, // interface number Index of this interface
- 0x01, // alternate setting Index of this alternate setting
- 0x01, // number of endpoints (1)
- 0x01, // interface class AUDIO
- 0x02, // interface sub-class AUDIO_STREAMING
- 0x00, // interface protocol UNUSED
- 0x06 // interface string index UNUSED
- },
-
- // MicSpecificASInterfaceDescriptor[] =
- //-------------------------------------
- {
- 0x07, // length of descriptor (7 bytes)
- 0x24, // descriptor type (CS_INTERFACE)
- 0x01, // GENERAL
- 0x03, // wTerminalLink Unit ID of the Output Terminal
- 0x01, // Interface Delay
- 0x0200 // wFormatTag PCM8
- },
-
- // MicFormatTypeDescriptor[] =
- //-------------------------------------
- {
- 0x0B, // length of descriptor (11 bytes)
- 0x24, // descriptor type (CS_INTERFACE)
- 0x02, // descriptor subtype FORMAT TYPE subType
- 0x01, // bFormatype FORMAT TYPE I
- 0x01, // bNrChannels One Channel
- 0x01, // bSubFrameSize 1 Bytes per Audio Subframe
- 0x08, // BitResolution 8 bits per Sample
- 0x01, // SampleFreqType One Frequency supported
- 0x40,0x1F,0x00 // SamFreq 8000Hz
- },
-
- // MicStandardEndpointDescriptor[] =
- //-------------------------------------
- {
- 0x09, // descriptor length (9 bytes)
- 0x05, // descriptor type (ENDPOINT)
- IN_ENDPOINT1, // endpoint address (IN endpoint, endpoint 1)
- 0x01, // endpoint attributes (Isochronous)
- 0x0800, // maximum packet size (8 bytes)
- 0x01, // polling interval (1ms)
- 0x00, // brefresh
- 0x00 // Unused
- },
-
- // MicEndpointDescriptor[] =
- //-------------------------------------
- {
- 0x07, // descriptor length (7 bytes)
- 0x25, // descriptor type (CS_ENDPOINT)
- 0x01, // DescriptorSubType GENERAL subtype
- 0x00, // bMAttributes bit 7 :: max paket
- 0x00, // bLockDelayUnits Unused
- 0x0000 // LockDelay
- },
-
- //-------------------------------------------------------------------------
- // Speaker
- //-------------------------------------------------------------------------
- // Interface 2 :: Audio Stream
- //-------------------------------------------------------------------------
-
// SpkStandardAlt0ASInterfaceDescriptor[] =
//-------------------------------------
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x02, // interface number Index of this interface
+ 0x01, // interface number Index of this interface
0x00, // alternate setting Index of this alternate setting
0x00, // number of endpoints (0)
0x01, // interface class AUDIO
0x02, // interface sub-class AUDIO_STREAMING
0x00, // interface protocol UNUSED
- 0x05 // interface string index UNUSED
+ 0x07 // interface string index UNUSED
},
// SpkStandardAlt1ASInterfaceDescriptor[] =
@@ -325,13 +211,13 @@
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x02, // interface number Index of this interface
+ 0x01, // interface number Index of this interface
0x01, // alternate setting Index of this alternate setting
0x01, // number of endpoints (1)
0x01, // interface class AUDIO
0x02, // interface sub-class AUDIO_STREAMING
0x00, // interface protocol UNUSED
- 0x05 // interface string index UNUSED
+ 0x07 // interface string index UNUSED
},
// SpkSpecificASInterfaceDescriptor[] =
@@ -340,19 +226,19 @@
0x07, // length of descriptor (7 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x01, // GENERAL
- 0x02, // wTerminalLink Unit ID of the Output Terminal
+ 0x07, // wTerminalLink Unit ID of the Output Terminal
0x01, // Interface Delay
- 0x0200 // wFormatTag PCM 8
+ 0x0200 // wFormatTag PCM8
},
// SpkFormatTypeDescriptor[] =
//-------------------------------------
{
- 0x0B, // length of descriptor (11 bytes)
+ 0x0B, // length of descriptor (11 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x02, // descriptor subtype FORMAT TYPE subType
0x01, // bFormatype FORMAT TYPE I
- 0x01, // bNrChannels One Channel
+ 0x01, // bNrChannels One Channel
0x01, // bSubFrameSize 1 Bytes per Audio Subframe
0x08, // BitResolution 8 bits per Sample
0x01, // SampleFreqType One Frequency supported
@@ -364,7 +250,7 @@
{
0x09, // descriptor length (9 bytes)
0x05, // descriptor type (ENDPOINT)
- OUT_ENDPOINT2, // endpoint address (OUT endpoint, endpoint 2)
+ OUT_ENDPOINT3, // endpoint address (OUT endpoint, endpoint 2)
0x01, // endpoint attributes (Isochronous)
0x0800, // maximum packet size (8 bytes)
0x01, // polling interval (1ms)
@@ -380,8 +266,30 @@
0x01, // DescriptorSubType GENERAL subtype
0x00, // bMAttributes bit 7 :: max paket
0x00, // bLockDelayUnits Unused
- 0x0000 // LockDelay
+ 0x0000 // LockDelay
},
+
+
+
//----------------------------------------------------------------------------
+ // Dummy interface
+
//----------------------------------------------------------------------------
+ // Interface 2 ::
+
//--------------------------------------------------------------------------
+
+ // HIDInterfaceDescriptor[] =
+ //-------------------------------------
+ {
+ 0x09, // length of descriptor (9 bytes)
+ 0x04, // descriptor type (INTERFACE)
+ 0x02, // interface number Index of this interface
+ 0x00, // alternate setting Index of this alternate setting
+ 0x00, // number of endpoints
+ 0x00, // interface class HID
+ 0x00, // interface sub-class
+ 0x00, // interface protocol
+ 0x00 // interface string index
+ },
+
#ifdef HID_DEVICE
//-------------------------------------------------------------------------
// "HID" LIB USB
@@ -469,54 +377,84 @@
0x01 // polling interval 1ms
},
#endif
-
//-------------------------------------------------------------------------
// Audio
//-------------------------------------------------------------------------
// Interface 4 :: Audio Control
-
//-------------------------------------------------------------------------
+
//-------------------------------------------------------------------------
// StandardACInterfaceDescriptor_1[] =
//-------------------------------------
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x04, // interface number (4)
+ 0x04, // interface number (0)
0x00, // alternate setting (0)
0x00, // number of endpoints (0)
0x01, // interface class AUDIO
0x01, // interface sub-class AUDIO_CONTROL
0x00, // interface protocol UNUSED
- 0x07 // interface string index UNUSED
+ 0x08 // interface string index UNUSED
},
// SpecificACInterfaceDescriptor[] =
//-------------------------------------
{
- 0x09, // length of descriptor (9 bytes)
+ 0x0A, // length of descriptor (10 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x01, // HEADER subtype
0x0001, // bcdADC Revision of class specification 1.0
- 0x1E00, // wTotal Lenght Total size of class specific descriptors
- 0x01, // blnCollection Number of streaming interfaces
- 0x05 // baInterfaceNr
+ 0x3400, // wTotal Lenght Total size of class specific descriptors
+ 0x02, // blnCollection Number of streaming interfaces
+ 0x05, // baInterfaceNr
+ 0x06 // baInterfaceNr
},
- // IT Speaker Part : USB
- // SpkInputTerminalDescriptor[] =
+ // IT Microphone Part : Hardware
+ // MicInputTerminal1Descriptor[] =
+ //-------------------------------------
+ {
+ 0x0C, // length of descriptor (12 bytes)
+ 0x24, // bdescriptor type (CS_INTERFACE)
+ 0x02, // bdescriptor Subtype INPUT_TERMINAL subtype
+ 0x01, // bTerminalID ID of this Input Terminal
+ 0x0102, // Terminal is Microphone
+ 0x00, // bAssocTerminal No Association
+ 0x01, // bNrChannels One channel
+ 0x0000, // wChannelConfig Mono Sets no posistion bits
+ 0x00, // iChannelNames Unused
+ 0x06 // iTerminal Unused
+ },
+
+ // IT Speaker Part : USB
+ // SpkInputTerminalDescriptor[] =
//-------------------------------------
{
0x0C, // length of descriptor (12 bytes)
0x24, // bdescriptor type (CS_INTERFACE)
0x02, // bdescriptor Subtype INPUT_TERMINAL subtype
- 0x07, // bTerminalID ID of this Input Terminal
+ 0x02, // bTerminalID ID of this Input Terminal
0x0101, // Terminal is USB
0x00, // bAssocTerminal No Association
0x01, // bNrChannels One channel
0x0000, // wChannelConfig Mono Sets no posistion bits
- 0x00, // iChannelNames Unused
- 0x07 // iTerminal Unused
+ 0x05, // iChannelNames Unused
+ 0 // iTerminal Unused
},
+ // OT Microphone Part : Software
+ // MicOutputTerminal1Descriptor[] =
+ //-------------------------------------
+ {
+ 0x09, // length of descriptor (9 bytes)
+ 0x24, // descriptor type (CS_INTERFACE)
+ 0x03, // bdescriptor subtype OUTPUT_TERMINAL
+ 0x03, // bTerminalID ID of this Output Terminal
+ 0x0101, // 0x0101 USB Streaming
+ 0x00, // bAssocTerminal No association
+ 0x01, // bSourceID From Input Termianl
+ 0x06 // iTerminal Unused
+ },
+
// OT Speaker Part : Software
// SpkOutputTerminalDescriptor[] =
//-------------------------------------
@@ -524,31 +462,113 @@
0x09, // length of descriptor (9 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x03, // bdescriptor subtype OUTPUT_TERMINAL
- 0x08, // bTerminalID ID of this Output Terminal
+ 0x04, // bTerminalID ID of this Output Terminal
0x0103, // 0x0301 Speaker
0x00, // bAssocTerminal No association
- 0x07, // bSourceID From Input Termianl
- 0x07 // iTerminal Unused
+ 0x02, // bSourceID From Input Termianl
+ 0x05 // iTerminal Unused
},
//-------------------------------------------------------------------------
- // Speaker
+ // Microphone
//-------------------------------------------------------------------------
// Interface 5 :: Audio Stream
//-------------------------------------------------------------------------
+ // MicStandardAlt0ASInterfaceDescriptor[] =
+ //-------------------------------------
+ {
+ 0x09, // length of descriptor (9 bytes)
+ 0x04, // descriptor type (INTERFACE)
+ 0x05, // interface number Index of this interface
+ 0x00, // alternate setting Index of this alternate setting
+ 0x00, // number of endpoints (0)
+ 0x01, // interface class AUDIO
+ 0x02, // interface sub-class AUDIO_STREAMING
+ 0x00, // interface protocol UNUSED
+ 0x06 // interface string index UNUSED
+ },
+ // MicStandardAlt1ASInterfaceDescriptor[] =
+ //-------------------------------------
+ {
+ 0x09, // length of descriptor (9 bytes)
+ 0x04, // descriptor type (INTERFACE)
+ 0x05, // interface number Index of this interface
+ 0x01, // alternate setting Index of this alternate setting
+ 0x01, // number of endpoints (1)
+ 0x01, // interface class AUDIO
+ 0x02, // interface sub-class AUDIO_STREAMING
+ 0x00, // interface protocol UNUSED
+ 0x06 // interface string index UNUSED
+ },
+
+ // MicSpecificASInterfaceDescriptor[] =
+ //-------------------------------------
+ {
+ 0x07, // length of descriptor (7 bytes)
+ 0x24, // descriptor type (CS_INTERFACE)
+ 0x01, // GENERAL
+ 0x03, // wTerminalLink Unit ID of the Output Terminal
+ 0x01, // Interface Delay
+ 0x0200 // wFormatTag PCM8
+ },
+
+ // MicFormatTypeDescriptor[] =
+ //-------------------------------------
+ {
+ 0x0B, // length of descriptor (11 bytes)
+ 0x24, // descriptor type (CS_INTERFACE)
+ 0x02, // descriptor subtype FORMAT TYPE subType
+ 0x01, // bFormatype FORMAT TYPE I
+ 0x01, // bNrChannels One Channel
+ 0x01, // bSubFrameSize 1 Bytes per Audio Subframe
+ 0x08, // BitResolution 8 bits per Sample
+ 0x01, // SampleFreqType One Frequency supported
+ 0x40,0x1F,0x00 // SamFreq 8000Hz
+ },
+
+ // MicStandardEndpointDescriptor[] =
+ //-------------------------------------
+ {
+ 0x09, // descriptor length (9 bytes)
+ 0x05, // descriptor type (ENDPOINT)
+ IN_ENDPOINT1, // endpoint address (IN endpoint, endpoint 1)
+ 0x01, // endpoint attributes (Isochronous)
+ 0x0800, // maximum packet size (8 bytes)
+ 0x01, // polling interval (1ms)
+ 0x00, // brefresh
+ 0x00 // Unused
+ },
+
+ // MicEndpointDescriptor[] =
+ //-------------------------------------
+ {
+ 0x07, // descriptor length (7 bytes)
+ 0x25, // descriptor type (CS_ENDPOINT)
+ 0x01, // DescriptorSubType GENERAL subtype
+ 0x00, // bMAttributes bit 7 :: max paket
+ 0x00, // bLockDelayUnits Unused
+ 0x0000 // LockDelay
+ },
+
+ //-------------------------------------------------------------------------
+ // Speaker
+ //-------------------------------------------------------------------------
+ // Interface 6 :: Audio Stream
+ //-------------------------------------------------------------------------
+
// SpkStandardAlt0ASInterfaceDescriptor[] =
//-------------------------------------
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x05, // interface number Index of this interface
+ 0x06, // interface number Index of this interface
0x00, // alternate setting Index of this alternate setting
0x00, // number of endpoints (0)
0x01, // interface class AUDIO
0x02, // interface sub-class AUDIO_STREAMING
0x00, // interface protocol UNUSED
- 0x07 // interface string index UNUSED
+ 0x05 // interface string index UNUSED
},
// SpkStandardAlt1ASInterfaceDescriptor[] =
@@ -557,13 +577,13 @@
{
0x09, // length of descriptor (9 bytes)
0x04, // descriptor type (INTERFACE)
- 0x05, // interface number Index of this interface
+ 0x06, // interface number Index of this interface
0x01, // alternate setting Index of this alternate setting
0x01, // number of endpoints (1)
0x01, // interface class AUDIO
0x02, // interface sub-class AUDIO_STREAMING
0x00, // interface protocol UNUSED
- 0x07 // interface string index UNUSED
+ 0x05 // interface string index UNUSED
},
// SpkSpecificASInterfaceDescriptor[] =
@@ -572,19 +592,19 @@
0x07, // length of descriptor (7 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x01, // GENERAL
- 0x07, // wTerminalLink Unit ID of the Output Terminal
+ 0x02, // wTerminalLink Unit ID of the Output Terminal
0x01, // Interface Delay
- 0x0200 // wFormatTag PCM8
+ 0x0200 // wFormatTag PCM 8
},
// SpkFormatTypeDescriptor[] =
//-------------------------------------
{
- 0x0B, // length of descriptor (11 bytes)
+ 0x0B, // length of descriptor (11 bytes)
0x24, // descriptor type (CS_INTERFACE)
0x02, // descriptor subtype FORMAT TYPE subType
0x01, // bFormatype FORMAT TYPE I
- 0x01, // bNrChannels One Channel
+ 0x01, // bNrChannels One Channel
0x01, // bSubFrameSize 1 Bytes per Audio Subframe
0x08, // BitResolution 8 bits per Sample
0x01, // SampleFreqType One Frequency supported
@@ -596,7 +616,7 @@
{
0x09, // descriptor length (9 bytes)
0x05, // descriptor type (ENDPOINT)
- OUT_ENDPOINT3, // endpoint address (OUT endpoint, endpoint 2)
+ OUT_ENDPOINT2, // endpoint address (OUT endpoint, endpoint 2)
0x01, // endpoint attributes (Isochronous)
0x0800, // maximum packet size (8 bytes)
0x01, // polling interval (1ms)
@@ -612,7 +632,8 @@
0x01, // DescriptorSubType GENERAL subtype
0x00, // bMAttributes bit 7 :: max paket
0x00, // bLockDelayUnits Unused
- 0x0000 // LockDelay
+ 0x0000 // LockDelay
+
#ifndef HID_DEVICE
}
#else
Modified: firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.h
===================================================================
--- firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.h
2008-09-19 08:51:38 UTC (rev 1913)
+++ firmware/fuxusb/branches/new_audio_iface_desc/src/usb_desc.h
2008-09-19 08:55:07 UTC (rev 1914)
@@ -198,11 +198,11 @@
* @{ */
#ifdef HID_DEVICE
# define SIZE_OF_REPORT 0x22
+# define CONF_LENGTH 0x3201 // 306
+# define NB_INTERFACE 7
+#else
# define CONF_LENGTH 0x2901 // 297
-# define NB_INTERFACE 6
-#else
-# define CONF_LENGTH 0x2001 // 288
-# define NB_INTERFACE 6
+# define NB_INTERFACE 7
#endif
#define CONF_NB 1
@@ -430,51 +430,35 @@
/*! Configuration descriptor */
struct usb_st_configuration_descriptor cfg;
-
- // Interface O :: Audio Control
+ // Interface 0 :: Audio Control
//-------------------------------------------------------------------------
/*! Standard interface descriptor */
- struct usb_Audio_st_ACinterface_descriptor StandardACInterfaceDescriptor_1;
+ struct usb_Audio_st_ACinterface_descriptor
StandardACInterfaceDescriptor_TTS;
/*! Specific interface descriptor */
- struct usb_Audio_cs_ACinterface_descriptor SpecificACInterfaceDescriptor;
- /*! Microphone input terminal */
- struct usb_Audio_InputTerminal_descriptor MicInputTerminal1Descriptor;
- /*! Speaker input terminal */
- struct usb_Audio_InputTerminal_descriptor SpkInputTerminalDescriptor;
- /*! Microphone output terminal */
- struct usb_Audio_OutputTerminal_descriptor MicOutputTerminal1Descriptor;
- /*! Speaker output descriptor */
- struct usb_Audio_OutputTerminal_descriptor SpkOutputTerminalDescriptor;
+ struct usb_Audio_cs_ACinterface_descriptor_NbCol1
SpecificACInterfaceDescriptor_TTS;
+ /*! TTS input terminal */
+ struct usb_Audio_InputTerminal_descriptor SpkInputTerminalDescriptor_TTS;
+ /*! TTS output terminal */
+ struct usb_Audio_OutputTerminal_descriptor SpkOutputTerminalDescriptor_TTS;
- // Interface 1 :: Audio Stream Microphone
+ // Interface 1 :: Audio Stream
//-------------------------------------------------------------------------
/*! Standard interface descriptor (alt. 0) */
- struct usb_Audio_st_ASinterface_descriptor
MicStandardAlt0ASInterfaceDescriptor;
- /*! Standard interface descriptor (alt. 1 - active) */
- struct usb_Audio_st_ASinterface_descriptor
MicStandardAlt1ASInterfaceDescriptor;
+ struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt0ASInterfaceDescriptor_TTS;
+ /*! Standard interface descriptor (alt. 1 - active) */
+ struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt1ASInterfaceDescriptor_TTS;
/*! Specific audio stream interface descriptor */
- struct usb_Audio_cs_ASinterface_descriptor
MicSpecificASInterfaceDescriptor;
+ struct usb_Audio_cs_ASinterface_descriptor
SpkSpecificASInterfaceDescriptor_TTS;
/*! Format descriptor */
- struct usb_Audio_TYPEI_FormatType_descriptor MicFormatTypeDescriptor;
+ struct usb_Audio_TYPEI_FormatType_descriptor SpkFormatTypeDescriptor_TTS;
/*! Standard endpoint descriptor */
- struct usb_Audio_st_endpoint_descriptor MicStandardEndpointDescriptor;
+ struct usb_Audio_st_endpoint_descriptor SpkStandardEndpointDescriptor_TTS;
/*! Endpoint */
- struct usb_Audio_cs_ASendpoint_descriptor MicEndpointDescriptor;
+ struct usb_Audio_cs_ASendpoint_descriptor SpkEndpointDescriptor_TTS;
- // Interface 2 :: Audio Stream Speaker
+ // Interface 2 :: Dummy interface
//-------------------------------------------------------------------------
- /*! Standard interface descriptor (alt. 0) */
- struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt0ASInterfaceDescriptor;
- /*! Standard interface descriptor (alt. 1 - active) */
- struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt1ASInterfaceDescriptor;
- /*! Specific audio stream interface descriptor */
- struct usb_Audio_cs_ASinterface_descriptor
SpkSpecificASInterfaceDescriptor;
- /*! Format descriptor */
- struct usb_Audio_TYPEI_FormatType_descriptor SpkFormatTypeDescriptor;
- /*! Standard endpoint descriptor */
- struct usb_Audio_st_endpoint_descriptor SpkStandardEndpointDescriptor;
- /*! Endpoint */
- struct usb_Audio_cs_ASendpoint_descriptor SpkEndpointDescriptor;
+ struct usb_st_interface_descriptor DummyInterfaceDescriptor;
// Interface 3 :: Command / Status Interface
//-------------------------------------------------------------------------
@@ -496,31 +480,50 @@
struct usb_st_endpoint_descriptor HID_OutEndpointDescriptor;
#endif
- // Interface 4 :: Audio Control
+// Interface 4 :: Audio Control
//-------------------------------------------------------------------------
/*! Standard interface descriptor */
- struct usb_Audio_st_ACinterface_descriptor
StandardACInterfaceDescriptor_TTS;
+ struct usb_Audio_st_ACinterface_descriptor StandardACInterfaceDescriptor_1;
/*! Specific interface descriptor */
- struct usb_Audio_cs_ACinterface_descriptor_NbCol1
SpecificACInterfaceDescriptor_TTS;
- /*! TTS input terminal */
- struct usb_Audio_InputTerminal_descriptor SpkInputTerminalDescriptor_TTS;
- /*! TTS output terminal */
- struct usb_Audio_OutputTerminal_descriptor SpkOutputTerminalDescriptor_TTS;
+ struct usb_Audio_cs_ACinterface_descriptor SpecificACInterfaceDescriptor;
+ /*! Microphone input terminal */
+ struct usb_Audio_InputTerminal_descriptor MicInputTerminal1Descriptor;
+ /*! Speaker input terminal */
+ struct usb_Audio_InputTerminal_descriptor SpkInputTerminalDescriptor;
+ /*! Microphone output terminal */
+ struct usb_Audio_OutputTerminal_descriptor MicOutputTerminal1Descriptor;
+ /*! Speaker output descriptor */
+ struct usb_Audio_OutputTerminal_descriptor SpkOutputTerminalDescriptor;
- // Interface 5 :: Audio Stream
+ // Interface 5 :: Audio Stream Microphone
//-------------------------------------------------------------------------
/*! Standard interface descriptor (alt. 0) */
- struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt0ASInterfaceDescriptor_TTS;
+ struct usb_Audio_st_ASinterface_descriptor
MicStandardAlt0ASInterfaceDescriptor;
+ /*! Standard interface descriptor (alt. 1 - active) */
+ struct usb_Audio_st_ASinterface_descriptor
MicStandardAlt1ASInterfaceDescriptor;
+ /*! Specific audio stream interface descriptor */
+ struct usb_Audio_cs_ASinterface_descriptor
MicSpecificASInterfaceDescriptor;
+ /*! Format descriptor */
+ struct usb_Audio_TYPEI_FormatType_descriptor MicFormatTypeDescriptor;
+ /*! Standard endpoint descriptor */
+ struct usb_Audio_st_endpoint_descriptor MicStandardEndpointDescriptor;
+ /*! Endpoint */
+ struct usb_Audio_cs_ASendpoint_descriptor MicEndpointDescriptor;
+
+ // Interface 6 :: Audio Stream Speaker
+ //-------------------------------------------------------------------------
+ /*! Standard interface descriptor (alt. 0) */
+ struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt0ASInterfaceDescriptor;
/*! Standard interface descriptor (alt. 1 - active) */
- struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt1ASInterfaceDescriptor_TTS;
+ struct usb_Audio_st_ASinterface_descriptor
SpkStandardAlt1ASInterfaceDescriptor;
/*! Specific audio stream interface descriptor */
- struct usb_Audio_cs_ASinterface_descriptor
SpkSpecificASInterfaceDescriptor_TTS;
+ struct usb_Audio_cs_ASinterface_descriptor
SpkSpecificASInterfaceDescriptor;
/*! Format descriptor */
- struct usb_Audio_TYPEI_FormatType_descriptor SpkFormatTypeDescriptor_TTS;
+ struct usb_Audio_TYPEI_FormatType_descriptor SpkFormatTypeDescriptor;
/*! Standard endpoint descriptor */
- struct usb_Audio_st_endpoint_descriptor SpkStandardEndpointDescriptor_TTS;
+ struct usb_Audio_st_endpoint_descriptor SpkStandardEndpointDescriptor;
/*! Endpoint */
- struct usb_Audio_cs_ASendpoint_descriptor SpkEndpointDescriptor_TTS;
+ struct usb_Audio_cs_ASendpoint_descriptor SpkEndpointDescriptor;
#ifdef HID_DEVICE
// Report descriptor
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn