forked from PAWPAW-Mirror/lib_xua
Endpoint0 thread now sends different channel counts based on USB speed. In addition, OUT direction is now set as well as IN
This commit is contained in:
@@ -476,8 +476,9 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
|
|||||||
if( sp.wIndex < NUM_INTERFACES )
|
if( sp.wIndex < NUM_INTERFACES )
|
||||||
interfaceAlt[sp.wIndex] = sp.wValue;
|
interfaceAlt[sp.wIndex] = sp.wValue;
|
||||||
#if 1
|
#if 1
|
||||||
|
|
||||||
/* Check for audio stream from host start/stop */
|
/* Check for audio stream from host start/stop */
|
||||||
if(sp.wIndex == 2) // Input interface
|
if(sp.wIndex == 1) // Ouput interface
|
||||||
{
|
{
|
||||||
switch(sp.wValue)
|
switch(sp.wValue)
|
||||||
{
|
{
|
||||||
@@ -487,9 +488,44 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
|
|||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
/* Stream active + 0 chans */
|
/* Stream active + 0 chans */
|
||||||
outuint(c_audioControl, SET_CHAN_COUNT_IN);
|
/* NOTE there could be a difference between HS/UAC1 and FS/UAC1 channel count */
|
||||||
outuint(c_audioControl, NUM_USB_CHAN_IN);
|
/* Also note, currently we assume with won't be doing ADAT in FS/UAC1...*/
|
||||||
|
if(g_curUsbSpeed == XUD_SPEED_HS)
|
||||||
|
{
|
||||||
|
outuint(c_audioControl, SET_CHAN_COUNT_OUT);
|
||||||
|
outuint(c_audioControl, NUM_USB_CHAN_OUT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outuint(c_audioControl, SET_CHAN_COUNT_OUT);
|
||||||
|
outuint(c_audioControl, NUM_USB_CHAN_OUT_A1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if(sp.wIndex == 2) // Input interface
|
||||||
|
{
|
||||||
|
switch(sp.wValue)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
/* Stream active + 0 chans */
|
||||||
|
/* NOTE there could be a difference between HS/UAC1 and FS/UAC1 channel count */
|
||||||
|
/* Also note, currently we assume with won't be doing ADAT in FS/UAC1...*/
|
||||||
|
if(g_curUsbSpeed == XUD_SPEED_HS)
|
||||||
|
{
|
||||||
|
outuint(c_audioControl, SET_CHAN_COUNT_IN);
|
||||||
|
outuint(c_audioControl, NUM_USB_CHAN_IN);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outuint(c_audioControl, SET_CHAN_COUNT_IN);
|
||||||
|
outuint(c_audioControl, NUM_USB_CHAN_IN_A1);
|
||||||
|
}
|
||||||
#ifdef ADAT_RX
|
#ifdef ADAT_RX
|
||||||
outuint(c_clk_ctl, SET_SMUX);
|
outuint(c_clk_ctl, SET_SMUX);
|
||||||
outuint(c_clk_ctl, 0);
|
outuint(c_clk_ctl, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user