forked from PAWPAW-Mirror/lib_xua
Audio 2 config desc patched based on speed (for FS UAC2 mode). Guarded by FULL_SPEED_AUDIO_2
This commit is contained in:
@@ -124,6 +124,7 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
|
|||||||
chanend ?c_mix_ctl, chanend ?c_clk_ctl, chanend ?c_usb_test)
|
chanend ?c_mix_ctl, chanend ?c_clk_ctl, chanend ?c_usb_test)
|
||||||
{
|
{
|
||||||
unsigned char buffer[2];
|
unsigned char buffer[2];
|
||||||
|
|
||||||
USB_SetupPacket_t sp;
|
USB_SetupPacket_t sp;
|
||||||
XUD_ep ep0_out = XUD_InitEp(c_ep0_out);
|
XUD_ep ep0_out = XUD_InitEp(c_ep0_out);
|
||||||
XUD_ep ep0_in = XUD_InitEp(c_ep0_in);
|
XUD_ep ep0_in = XUD_InitEp(c_ep0_in);
|
||||||
@@ -613,6 +614,27 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
|
|||||||
devDesc_Audio1, sizeof(devDesc_Audio1),
|
devDesc_Audio1, sizeof(devDesc_Audio1),
|
||||||
cfgDesc_Audio1, sizeof(cfgDesc_Audio1),
|
cfgDesc_Audio1, sizeof(cfgDesc_Audio1),
|
||||||
strDescs, sp, c_usb_test, g_curUsbSpeed);
|
strDescs, sp, c_usb_test, g_curUsbSpeed);
|
||||||
|
#elif FULL_SPEED_AUDIO_2
|
||||||
|
/* Return Audio 2.0 Descriptors for high_speed and full-speed */
|
||||||
|
|
||||||
|
/* Unfortunately we need to munge the descriptors a bit between full and high-speed */
|
||||||
|
if(g_curUsbSpeed == XUD_SPEED_HS)
|
||||||
|
{
|
||||||
|
/* Mod bSlotSize */
|
||||||
|
cfgDesc_Audio2[STREAMING_ALT1_OFFSET+4] = 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Mod bSlotSize */
|
||||||
|
cfgDesc_Audio2[STREAMING_ALT1_OFFSET+4] = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
retVal = USB_StandardRequests(ep0_out, ep0_in,
|
||||||
|
devDesc_Audio2, sizeof(devDesc_Audio2),
|
||||||
|
cfgDesc_Audio2, sizeof(cfgDesc_Audio2),
|
||||||
|
null, 0,
|
||||||
|
null, 0,
|
||||||
|
strDescs, sp, c_usb_test, g_curUsbSpeed);
|
||||||
#else
|
#else
|
||||||
/* Return Audio 2.0 Descriptors with Null device as fallback */
|
/* Return Audio 2.0 Descriptors with Null device as fallback */
|
||||||
retVal = USB_StandardRequests(ep0_out, ep0_in,
|
retVal = USB_StandardRequests(ep0_out, ep0_in,
|
||||||
|
|||||||
Reference in New Issue
Block a user