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

Reply via email to