forked from PAWPAW-Mirror/lib_xua
Manuallay apply adaptive descriptors from asrc_usb branch
This commit is contained in:
@@ -28,6 +28,12 @@
|
|||||||
|
|
||||||
#define STR_TABLE_ENTRY(name) char *name
|
#define STR_TABLE_ENTRY(name) char *name
|
||||||
|
|
||||||
|
#define ISO_EP_ATTRIBUTES_ASYNCH 0x05 //ISO, ASYNCH, DATA EP
|
||||||
|
#define ISO_EP_ATTRIBUTES_ADAPTIVE 0x09 //ISO, ADAPTIVE, DATA EP
|
||||||
|
#define ISO_EP_IMPL_ATTRIBUTES_ASYNCH 0x25 //ISO, ASYNCH, IMPLICIT FB DATA EP
|
||||||
|
#define ISO_EP_IMPL_ATTRIBUTES_ADAPTIVE 0x29 //ISO, ADAPTIVE, IMPLICIT FB DATA EP
|
||||||
|
|
||||||
|
|
||||||
#if __STDC__
|
#if __STDC__
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@@ -1448,7 +1454,11 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bLength = sizeof(USB_Descriptor_Endpoint_t),
|
.bLength = sizeof(USB_Descriptor_Endpoint_t),
|
||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
||||||
.bmAttributes = 0x05, /* (bitmap) */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE, /* (bitmap) */
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* (bitmap) */
|
||||||
|
#endif
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE,
|
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE,
|
||||||
.bInterval = 1,
|
.bInterval = 1,
|
||||||
},
|
},
|
||||||
@@ -1526,7 +1536,11 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bLength = sizeof(USB_Descriptor_Endpoint_t),
|
.bLength = sizeof(USB_Descriptor_Endpoint_t),
|
||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
||||||
.bmAttributes = 0x05,
|
#ifdef XUA_ADAPTIVE
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE, /* (bitmap) */
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* (bitmap) */
|
||||||
|
#endif
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_2_MAXPACKETSIZE,
|
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_2_MAXPACKETSIZE,
|
||||||
.bInterval = 1,
|
.bInterval = 1,
|
||||||
},
|
},
|
||||||
@@ -1606,8 +1620,11 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bLength = 0x07,
|
.bLength = 0x07,
|
||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
|
||||||
.bmAttributes = 0x05,
|
#ifdef XUA_ADAPTIVE
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_3_MAXPACKETSIZE,
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE, /* (bitmap) */
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* (bitmap) */
|
||||||
|
#endif .wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_3_MAXPACKETSIZE,
|
||||||
.bInterval = 1,
|
.bInterval = 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1700,9 +1717,13 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
.bmAttributes = 0x05, /* Iso, async, data endpoint */
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* Iso, async, data endpoint */
|
||||||
#else
|
#else
|
||||||
.bmAttributes = 0x25, /* Iso, async, implicit feedback data endpoint */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE,
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_IMPL_ATTRIBUTES_ASYNCH, /* Feedback data endpoint */
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE,
|
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE,
|
||||||
.bInterval = 0x01,
|
.bInterval = 0x01,
|
||||||
@@ -1768,9 +1789,13 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
.bmAttributes = 0x05, /* Iso, async, data endpoint */
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* Iso, async, data endpoint */
|
||||||
#else
|
#else
|
||||||
.bmAttributes = 0x25, /* Iso, async, implicit feedback data endpoint */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE,
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_IMPL_ATTRIBUTES_ASYNCH, /* Feedback data endpoint */
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_2_MAXPACKETSIZE,
|
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_2_MAXPACKETSIZE,
|
||||||
.bInterval = 0x01,
|
.bInterval = 0x01,
|
||||||
@@ -1837,9 +1862,13 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
|
|||||||
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
|
||||||
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
.bEndpointAddress = ENDPOINT_ADDRESS_IN_AUDIO,
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
.bmAttributes = 0x05, /* Iso, async, data endpoint */
|
.bmAttributes = ISO_EP_ATTRIBUTES_ASYNCH, /* Iso, async, data endpoint */
|
||||||
#else
|
#else
|
||||||
.bmAttributes = 0x25, /* Iso, async, implicit feedback data endpoint */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
.bmAttributes = ISO_EP_ATTRIBUTES_ADAPTIVE,
|
||||||
|
#else
|
||||||
|
.bmAttributes = ISO_EP_IMPL_ATTRIBUTES_ASYNCH, /* Feedback data endpoint */
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_3_MAXPACKETSIZE,
|
.wMaxPacketSize = HS_STREAM_FORMAT_INPUT_3_MAXPACKETSIZE,
|
||||||
.bInterval = 0x01,
|
.bInterval = 0x01,
|
||||||
@@ -2599,15 +2628,23 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
0x09,
|
0x09,
|
||||||
0x05, /* ENDPOINT */
|
0x05, /* ENDPOINT */
|
||||||
0x01, /* endpointAddress - D7, direction (0 OUT, 1 IN). D6..4 reserved (0). D3..0 endpoint no. */
|
0x01, /* endpointAddress - D7, direction (0 OUT, 1 IN). D6..4 reserved (0). D3..0 endpoint no. */
|
||||||
0x05, /* attributes - isochronous async */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
ISO_EP_ATTRIBUTES_ADAPTIVE,
|
||||||
|
#else
|
||||||
|
ISO_EP_ATTRIBUTES_ASYNCH,
|
||||||
|
#endif
|
||||||
(FS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE&0xff), /* 4 wMaxPacketSize (Typically 294 bytes)*/
|
(FS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE&0xff), /* 4 wMaxPacketSize (Typically 294 bytes)*/
|
||||||
(FS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE&0xff00)>>8, /* 5 wMaxPacketSize */
|
(FS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE&0xff00)>>8, /* 5 wMaxPacketSize */
|
||||||
0x01, /* bInterval */
|
0x01, /* bInterval */
|
||||||
0x00, /* bRefresh */
|
0x00, /* bRefresh */
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
ENDPOINT_ADDRESS_IN_FEEDBACK, /* bSynchAdddress - address of EP used to communicate sync info */
|
ENDPOINT_ADDRESS_IN_FEEDBACK, /* bSynchAdddress - address of EP used to communicate sync info */
|
||||||
|
#else /* Bi-directional in/out device */
|
||||||
|
#ifdef XUA_ADAPTIVE
|
||||||
|
0, /* OUT */
|
||||||
#else
|
#else
|
||||||
ENDPOINT_ADDRESS_IN_AUDIO,
|
ENDPOINT_ADDRESS_IN_AUDIO,
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* CS_Endpoint Descriptor ?? */
|
/* CS_Endpoint Descriptor ?? */
|
||||||
@@ -2616,7 +2653,7 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
0x01, /* subtype - GENERAL */
|
0x01, /* subtype - GENERAL */
|
||||||
0x01, /* attributes. D[0]: sample freq ctrl. */
|
0x01, /* attributes. D[0]: sample freq ctrl. */
|
||||||
0x02, /* bLockDelayUnits */
|
0x02, /* bLockDelayUnits */
|
||||||
0x00, 0x00, /* bLockDelay */
|
0x08, 0x00, /* bLockDelay */
|
||||||
|
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
/* Feedback EP */
|
/* Feedback EP */
|
||||||
@@ -2728,9 +2765,13 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
0x05, /* ENDPOINT */
|
0x05, /* ENDPOINT */
|
||||||
ENDPOINT_ADDRESS_IN_AUDIO, /* EndpointAddress */
|
ENDPOINT_ADDRESS_IN_AUDIO, /* EndpointAddress */
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
0x05, /* Iso, async, data endpoint */
|
ISO_EP_ATTRIBUTES_ASYNCH, /* Iso, async, data endpoint */
|
||||||
#else
|
#else
|
||||||
0x25, /* Iso, async, implicit feedback data endpoint */
|
#ifdef XUA_ADAPTIVE
|
||||||
|
ISO_EP_ATTRIBUTES_ADAPTIVE,
|
||||||
|
#else
|
||||||
|
ISO_EP_IMPL_ATTRIBUTES_ASYNCH, /* Feedback data endpoint */
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
FS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE&0xff, /* 4 wMaxPacketSize (Typically 294 bytes)*/
|
FS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE&0xff, /* 4 wMaxPacketSize (Typically 294 bytes)*/
|
||||||
(FS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE&0xff00)>>8, /* 5 wMaxPacketSize */
|
(FS_STREAM_FORMAT_INPUT_1_MAXPACKETSIZE&0xff00)>>8, /* 5 wMaxPacketSize */
|
||||||
@@ -2743,8 +2784,8 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
0x25, /* CS_ENDPOINT */
|
0x25, /* CS_ENDPOINT */
|
||||||
0x01, /* Subtype - GENERAL */
|
0x01, /* Subtype - GENERAL */
|
||||||
0x01, /* Attributes. D[0]: sample freq ctrl. */
|
0x01, /* Attributes. D[0]: sample freq ctrl. */
|
||||||
0x00, /* Unused */
|
0x02, /* Lock Delay units PCM samples*/
|
||||||
0x00, 0x00, /* Unused */
|
0x08, 0x00, /* No lock delay */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (XUA_DFU_EN == 1) && (FORCE_UAC1_DFU == 1)
|
#if (XUA_DFU_EN == 1) && (FORCE_UAC1_DFU == 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user