| 
 
| 有那位做过USB 音频输出的?可知道能否配置成直接通过USB输出压缩文件?<br />想先写一个声音输出的,花了老长时间写了下面一个描述符,一运行就会死机,请高手指点.<br />code const complete_configuration ConfigDesc =<br />{<br />   {          // Standard configuration descriptor    配置 :三个interfaces<br />      0x09,                            // bLength (9)<br />      0x02,                            // bDescriptorType (CONFIGURATION)<br />      0x7100,                          // wTotallength (145)                    // 0x71<br />      0x02,                            // bNumInterfaces (3)            //0x02<br />      0x01,                            // bConfigurationValue (1)<br />      0x00,                            // iConfiguration (none)<br />      0x80,                            // bmAttributes (bus-powered)<br />      0x32,                            // bMaxPower (100 mA)<br />   },<br />   {               /* Audio control interface            音频控制     接口描述符    */<br />      0x09,                            // bLength (9)<br />      0x04,                            // bDescriptorType (INTERFACE)<br />      0x00,                            // bInterfaceNumber (0)<br />      0x00,                            // bAlternateSetting (none)<br />      0x00,                            // bNumEndpoints (none)<br />      0x01,                            // bInterfaceClass (AUDIO)<br />      0x01,                            // bInterfaceSubClass (AUDIO_CONTROL)<br />      0x00,                            // bInterfaceProtocol (none)<br />      0x00                             // iInterface (none)<br />   },<br /> // -----------------------------------------------------------------------------------------  <br />   {         /* Audio class-specific interface header      音频控制类说明  */<br />      0x09,                            // bLength (9)<br />      0x24,                            // bDescriptorType  (CS_INTERFACE)             -----------------------  cs_interface<br />      0x01,                            // bDescriptorSubtype (HEADER)                  ------header<br />      0x0001,                          // bcdADC (1.0)<br />      0x2B00,                          // wTotalLength (43)<br />      0x01,                            // bInCollection (1 streaming interface)<br />      0x01                             // baInterfaceNr (interface 1 is stream)<br />   },<br />    {         // Audio class-specific output terminal<br />      0x09,                            // bLength (9)<br />      0x24,                            // bDescriptorType (CS_INTERFACE)<br />      0x03,                            // bDescriptorSubtype (OUTPUT_TERMINAL)    ----- output terminal<br />      0x01,                            // bTerminalID (3)          // 3 //<br />      0x0101,                          // wTerminalType (USB streaming)<br />      0x00,                            // bAssocTerminal (none)<br />      0x02,                            // bSourceID (feature unit 2)<br />      0x00                             // iTerminal (none)<br />   },<br />   {           // Audio class-specific feature unit<br />      0x0D,                            // bLength (13)<br />      0x24,                            // bDescriptorType (CS_INTERFACE)<br />      0x06,                            // bDescriptorSubtype (FEATURE_UNIT)        ------feature unit<br />      0x02,                            // bUnitID (2)<br />      0x01,                            // bSourceID (input terminal 1)<br />      0x02,                            // bControlSize (2 bytes)<br />      0x0100,                          // Master controls<br />      0x0000,                          // Channel 0 controls<br />      0x0000,                          // Channel 1 controls<br />      0x00                             // iFeature (none)<br />   },<br />    {         // Audio class-specific input terminal<br />      0x0C,                            // bLength (12)<br />      0x24,                            // bDescriptorType (CS_INTERFACE)<br />      0x02,                            // bDescriptorSubtype (INPUT_TERMINAL)      -----input terminal   // 02 //<br />      0x03,                            // bTerminalID (1)<br />      0x1007,                          // wTerminalType (radio receiver)            // 1007 //<br />      0x00,                            // bAssocTerminal (none)<br />      0x02,                            // bNrChannels (2)<br />      0x0300,                          // wChannelConfig (left, right)<br />      0x00,                            // iChannelNames (none)<br />      0x00                             // iTerminal (none)<br />   },<br /> <br /> // -----------------------------------------------------------------------------------------  <br />   {           /* Audio zero-bandwidth interface          */<br />      0x09,                            // bLength (9)<br />      0x04,                            // bDescriptorType (INTERFACE)<br />      0x01,                            // bInterfaceNumber (1)<br />      0x00,                            // bAlternateSetting (0)<br />      0x00,                            // bNumEndpoints (0)<br />      0x01,                            // bInterfaceClass (AUDIO)<br />      0x02,                            // bInterfaceSubClass (AUDIO_STREAMING)<br />      0x00,                            // bInterfaceProtocol (none)<br />      0x00                             // iInterface (none)<br />   },<br />   {          // Audio streaming interface (alternate)<br />      0x09,                            // bLength (9)<br />      0x04,                            // bDescriptorType (INTERFACE)<br />      0x01,                            // bInterfaceNumber (1)<br />      0x01,                            // bAlternateSetting (1)<br />      0x01,                            // bNumEndpoints (1)<br />      0x01,                            // bInterfaceClass (AUDIO)<br />      0x02,                            // bInterfaceSubClass (AUDIO_STREAMING)<br />      0x00,                            // bInterfaceProtocol (none)<br />      0x00                             // iInterface (none)<br />   },<br />   {          // Audio class-specific stream interface                            --------------- AS interface descriptor<br />      0x07,                            // bLength (7)<br />      0x24,                            // bDescriptorType (CS_INTERFACE)<br />      0x01,                            // bDescriptorSubtype (AS_GENERAL)   ---- as general<br />      0x03,                            // bTerminalLink (terminal 3)<br />      0x00,                            // bDelay (none)<br />      0x0100                           // wFormatTag (PCM format)<br />   },<br />   {           // Audio class-specific type I format<br />      0x0B,                            // bLength (11)<br />      0x24,                            // bDescriptorType (CS_INTERFACE)<br />      0x02,                            // bDescriptorSubtype (FORMAT_TYPE)    ---- for type<br />      0x01,                            // bFormatType (TYPE_I)<br />      0x02,                            // bNrChannels (2)<br />      0x02,                            // bSubFrameSize (2)<br />      // The next field should be 10, but 16 works with more standard software<br />      0x10,                            // bBitResolution (16)<br />      0x01,                            // bSamFreqType (1 sampling frequency)<br />      0x80,                            // 48,000 Hz (byte 0)<br />      0xBB,                            // 48,000 Hz (byte 1)<br />      0x00                             // 48,000 Hz (byte 2)<br />   },<br />   {          // Audio streaming isochronous endpoint<br />      0x09,                            // bLength (9)<br />      0x05,                            // bDescriptorType (ENDPOINT)<br />      0x03,                            // bEndpointAddress (EP3 in)                       //83//<br />      0x05,                            // bmAttributes (asynchronous)<br />      0x0002,                          // wMaxPacketSize (512)<br />      0x01,                            // bInterval (1 millisecond)<br />      0x00,                            // bRefresh (0)<br />      0x00                             // bSynchAddress (no synchronization)<br />   },<br />   {         // Audio isochronous endpoint<br />      0x07,                            // bLength (7)<br />      0x25,                            // bDescriptorType (CS_ENDPOINT)<br />      0x01,                            // bDescriptorSubtype (EP_GENERAL)<br />      0x00,                            // bmAttributes (none)<br />      0x02,                            // bLockDelayUnits (PCM samples)<br />      0x0000                           // wLockDelay (0)<br />   }<br />};                                     // End of ConfigDesc<br /> | 
 |