#ifndef __USB_STD_CLASS_DEF_H__ #define __USB_STD_CLASS_DEF_H__ /**************************************************************************/ /* CLASS BITMAP 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 HID AUDIO SPEAKER Mass Storage */ /**************************************************************************/ #define MASSSTORAGE_CLASS 0x00000001 #define SPEAKER_CLASS 0x00000002 #define MIC_CLASS 0x00000004 #define AUDIO_CLASS (SPEAKER_CLASS|MIC_CLASS) #define HID_CLASS 0x00000008 #define CDC_CLASS 0x00000010 #define CUSTOM_HID_CLASS 0x00000020 #define WEBUSB_CLASS 0x00000040 #ifndef FUSB_MODE #define FUSB_MODE 1 #endif ///////////MassStorage Class #ifndef MSD_BULK_EP_OUT #define MSD_BULK_EP_OUT 1 #endif #ifndef MSD_BULK_EP_IN #define MSD_BULK_EP_IN 1 #endif #ifndef MAXP_SIZE_BULKOUT_FS #define MAXP_SIZE_BULKOUT_FS 64 #endif #ifndef MAXP_SIZE_BULKOUT_HS #define MAXP_SIZE_BULKOUT_HS 512 #endif #ifndef MAXP_SIZE_BULKOUT #if defined(FUSB_MODE) && FUSB_MODE #define MAXP_SIZE_BULKOUT MAXP_SIZE_BULKOUT_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define MAXP_SIZE_BULKOUT MAXP_SIZE_BULKOUT_HS #endif #endif #ifndef MAXP_SIZE_BULKIN_FS #define MAXP_SIZE_BULKIN_FS 64 #endif #ifndef MAXP_SIZE_BULKIN_HS #define MAXP_SIZE_BULKIN_HS 512 #endif #ifndef MAXP_SIZE_BULKIN #if defined(FUSB_MODE) && FUSB_MODE #define MAXP_SIZE_BULKIN MAXP_SIZE_BULKIN_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define MAXP_SIZE_BULKIN MAXP_SIZE_BULKIN_HS #endif #endif #ifndef MSD_STR_INDEX #define MSD_STR_INDEX 7 #endif ///////////HID class #ifndef HID_EP_IN #define HID_EP_IN 2 #endif #ifndef HID_EP_OUT #define HID_EP_OUT 2 #endif #ifndef HID_EP_IN_2 #define HID_EP_IN_2 3 #endif #ifndef HID_EP_OUT_2 #define HID_EP_OUT_2 3 #endif #ifndef MAXP_SIZE_HIDOUT #define MAXP_SIZE_HIDOUT 16 #endif #ifndef MAXP_SIZE_HIDIN #define MAXP_SIZE_HIDIN 16 #endif #ifndef HID_INTR_INTERVAL_FS #define HID_INTR_INTERVAL_FS 1 #endif #ifndef HID_INTR_INTERVAL_HS #define HID_INTR_INTERVAL_HS 4 #endif #ifndef HID_INTR_INTERVAL #if defined(FUSB_MODE) && FUSB_MODE #define HID_INTR_INTERVAL HID_INTR_INTERVAL_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define HID_INTR_INTERVAL HID_INTR_INTERVAL_HS #endif #endif /////////////Audio Class /** * 注意事项: * 1. uac 2.0需要使能spk的多采样率以及mic的多采样率才能被正确枚举 * 2. Microsoft从Windodws 10 1703开始才支持uac 2.0,Linux则较早就支持,基于性能 * 考虑,还是基于兼容性考虑,请谨慎选用 * 3. Windows上,uac 2.0音量控制,不下发音量命令给设备,而是修改音频数据增益实现 * 4. 切换版本后,为避免出现未预料的问题,请先在设备管理器卸载一次 */ #define USB_AUDIO_VERSION_1_0 0x10 #define USB_AUDIO_VERSION_2_0 0x20 #ifndef USB_AUDIO_VERSION #define USB_AUDIO_VERSION USB_AUDIO_VERSION_1_0 #endif #ifndef UAC_ISO_INTERVAL_FS #define UAC_ISO_INTERVAL_FS 1 #endif #ifndef UAC_ISO_INTERVAL_HS #define UAC_ISO_INTERVAL_HS 4 #endif #ifndef UAC_ISO_INTERVAL #if defined(FUSB_MODE) && FUSB_MODE #define UAC_ISO_INTERVAL UAC_ISO_INTERVAL_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define UAC_ISO_INTERVAL UAC_ISO_INTERVAL_HS #endif #endif #ifndef UAC_24BIT_IN_4BYTE //0: 24bit in 3byte, 1: 24 bit in 4byte //Windows不支持这种数据格式,安卓支持这种数据格式 #define UAC_24BIT_IN_4BYTE 0 #endif //speaker class #ifndef SPK_AUDIO_RATE_NUM #define SPK_AUDIO_RATE_NUM 1 #endif #if SPK_AUDIO_RATE_NUM == 1 #define SPK_AUDIO_RATE 48000 #else #define SPK_AUDIO_RATE 96000 #define SPK_AUDIO_RATE_1 44100 #define SPK_AUDIO_RATE_2 48000 #endif #ifndef SPK_AUDIO_RES #define SPK_AUDIO_RES 16 #endif #ifndef SPK_AUDIO_RES_2 #define SPK_AUDIO_RES_2 0//24 #endif #ifndef SPK_CHANNEL #define SPK_CHANNEL 2 #endif #ifndef SPK_FRAME_LEN #define SPK_FRAME_LEN (((SPK_AUDIO_RATE) * SPK_AUDIO_RES / 8 * SPK_CHANNEL)/1000+4) #endif #ifndef SPK_PCM_Type #define SPK_PCM_Type (SPK_AUDIO_RES >> 4) // 0=8 ,1=16 #endif #ifndef SPK_AUDIO_TYPE #define SPK_AUDIO_TYPE (0x02 - SPK_PCM_Type) // TYPE1_PCM16 #endif #ifndef SPK_ISO_EP_OUT #ifdef CONFIG_CPU_BR18 #define SPK_ISO_EP_OUT 2 #else #define SPK_ISO_EP_OUT 3 #endif #endif #ifndef SPEAKER_STR_INDEX #define SPEAKER_STR_INDEX 5 #endif #ifndef SPK_INPUT_TERMINAL_ID #define SPK_INPUT_TERMINAL_ID 1 #endif #ifndef SPK_FEATURE_UNIT_ID #define SPK_FEATURE_UNIT_ID 2 #endif #ifndef SPK_OUTPUT_TERMINAL_ID #define SPK_OUTPUT_TERMINAL_ID 3 #endif #ifndef SPK_SELECTOR_UNIT_ID #define SPK_SELECTOR_UNIT_ID 8 #endif /////////////Microphone Class #ifndef MIC_AUDIO_RATE_NUM #define MIC_AUDIO_RATE_NUM 1 #endif #if MIC_AUDIO_RATE_NUM == 1 #define MIC_AUDIO_RATE 48000 #else #define MIC_AUDIO_RATE 48000 #define MIC_AUDIO_RATE_1 16000 #define MIC_AUDIO_RATE_2 44100 #endif #ifndef MIC_AUDIO_RES #define MIC_AUDIO_RES 16 #endif #ifndef MIC_AUDIO_RES_2 #define MIC_AUDIO_RES_2 0//24 #endif #ifndef MIC_CHANNEL #define MIC_CHANNEL 1 #endif #ifndef MIC_FRAME_LEN #define MIC_FRAME_LEN ((MIC_AUDIO_RATE * MIC_AUDIO_RES / 8 * MIC_CHANNEL)/1000) #endif #ifndef MIC_PCM_TYPE #define MIC_PCM_TYPE (MIC_AUDIO_RES >> 4) // 0=8 ,1=16 #endif #ifndef MIC_AUDIO_TYPE #define MIC_AUDIO_TYPE (0x02 - MIC_PCM_TYPE) #endif #ifndef MIC_ISO_EP_IN #define MIC_ISO_EP_IN 3 #endif #ifndef MIC_STR_INDEX #define MIC_STR_INDEX 6 #endif #ifndef MIC_INPUT_TERMINAL_ID #define MIC_INPUT_TERMINAL_ID 4 #endif #ifndef MIC_FEATURE_UNIT_ID #define MIC_FEATURE_UNIT_ID 5 #endif #ifndef MIC_OUTPUT_TERMINAL_ID #define MIC_OUTPUT_TERMINAL_ID 6 #endif #ifndef MIC_SELECTOR_UNIT_ID #define MIC_SELECTOR_UNIT_ID 7 #endif ////////////CDC Class #ifndef CDC_DATA_EP_IN #define CDC_DATA_EP_IN 4 #endif #ifndef CDC_DATA_EP_OUT #define CDC_DATA_EP_OUT 4 #endif #ifndef CDC_INTR_EP_IN #define CDC_INTR_EP_IN 5 #endif #ifndef MAXP_SIZE_CDC_BULKIN #define MAXP_SIZE_CDC_BULKIN 64 #endif #ifndef MAXP_SIZE_CDC_BULKOUT #define MAXP_SIZE_CDC_BULKOUT 64 #endif #ifndef MAXP_SIZE_CDC_INTRIN #define MAXP_SIZE_CDC_INTRIN 8 #endif #ifndef CDC_INTR_INTERVAL_FS #define CDC_INTR_INTERVAL_FS 1 #endif #ifndef CDC_INTR_INTERVAL_HS #define CDC_INTR_INTERVAL_HS 4 #endif #ifndef CDC_INTR_INTERVAL #if defined(FUSB_MODE) && FUSB_MODE #define CDC_INTR_INTERVAL CDC_INTR_INTERVAL_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define CDC_INTR_INTERVAL CDC_INTR_INTERVAL_HS #endif #endif #ifndef CDC_INTR_EP_ENABLE #define CDC_INTR_EP_ENABLE 0 #endif ///////////CUSTOM_HID class #ifndef CUSTOM_HID_EP_IN #define CUSTOM_HID_EP_IN 4 #endif #ifndef CUSTOM_HID_EP_OUT #define CUSTOM_HID_EP_OUT 4 #endif #ifndef MAXP_SIZE_CUSTOM_HIDIN #define MAXP_SIZE_CUSTOM_HIDIN 64 #endif #ifndef MAXP_SIZE_CUSTOM_HIDOUT #define MAXP_SIZE_CUSTOM_HIDOUT 64 #endif #ifndef CUSTOM_HID_INTERVAL_FS #define CUSTOM_HID_INTERVAL_FS 1 #endif #ifndef CUSTOM_HID_INTERVAL_HS #define CUSTOM_HID_INTERVAL_HS 4 #endif #ifndef CUSTOM_HID_INTERVAL #if defined(FUSB_MODE) && FUSB_MODE #define CUSTOM_HID_INTERVAL CUSTOM_HID_INTERVAL_FS #elif defined(FUSB_MODE) && FUSB_MODE == 0 #define CUSTOM_HID_INTERVAL CUSTOM_HID_INTERVAL_HS #endif #endif #define WEBUSB_EP_IN 2 #define WEBUSB_EP_OUT 2 #define MAXP_SIZE_WEBUSBIN 64 #define MAXP_SIZE_WEBUSBOUT 64 #endif