forked from PAWPAW-Mirror/lib_xua
@@ -4,6 +4,7 @@ sc_usb_audio Change Log
|
|||||||
7.2.0
|
7.2.0
|
||||||
-----
|
-----
|
||||||
- ADDED: DFU to UAC1 descriptors (guarded by DFU and FORCE_UAC1_DFU)
|
- ADDED: DFU to UAC1 descriptors (guarded by DFU and FORCE_UAC1_DFU)
|
||||||
|
- RESOLVED: Removed 'reinterpretation to type of larger alignment' warnings
|
||||||
|
|
||||||
7.1.0
|
7.1.0
|
||||||
-----
|
-----
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ static void updateVol(int unitID, int channel, chanend ?c_mix_ctl)
|
|||||||
int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, chanend c_audioControl, chanend ?c_mix_ctl, chanend ?c_clk_ctl
|
int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, chanend c_audioControl, chanend ?c_mix_ctl, chanend ?c_clk_ctl
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
unsigned char buffer[128];
|
unsigned int buffer[32];
|
||||||
int unitID;
|
int unitID;
|
||||||
XUD_Result_t result;
|
XUD_Result_t result;
|
||||||
unsigned datalength;
|
unsigned datalength;
|
||||||
@@ -306,7 +306,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
||||||
{
|
{
|
||||||
/* Get OUT data with Sample Rate into buffer*/
|
/* Get OUT data with Sample Rate into buffer*/
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -315,7 +315,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(datalength == 4)
|
if(datalength == 4)
|
||||||
{
|
{
|
||||||
/* Re-construct Sample Freq */
|
/* Re-construct Sample Freq */
|
||||||
int newSampleRate = buffer[0] | (buffer[1] << 8) | buffer[2] << 16 | buffer[3] << 24;
|
int newSampleRate = buffer[0];
|
||||||
|
|
||||||
/* Instruct audio thread to change sample freq (if change required) */
|
/* Instruct audio thread to change sample freq (if change required) */
|
||||||
if(newSampleRate != g_curSamFreq)
|
if(newSampleRate != g_curSamFreq)
|
||||||
@@ -387,22 +387,22 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_clk_ctl, GET_FREQ);
|
outuint(c_clk_ctl, GET_FREQ);
|
||||||
outuint(c_clk_ctl, CLOCK_SPDIF_INDEX);
|
outuint(c_clk_ctl, CLOCK_SPDIF_INDEX);
|
||||||
outct(c_clk_ctl, XS1_CT_END);
|
outct(c_clk_ctl, XS1_CT_END);
|
||||||
(buffer, unsigned[])[0] = inuint(c_clk_ctl);
|
buffer[0] = inuint(c_clk_ctl);
|
||||||
chkct(c_clk_ctl, XS1_CT_END);
|
chkct(c_clk_ctl, XS1_CT_END);
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 4, sp.wLength );
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 4, sp.wLength );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
(buffer, unsigned[])[0] = g_curSamFreq;
|
buffer[0] = g_curSamFreq;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 4, sp.wLength );
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 4, sp.wLength );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case ID_CLKSRC_INT:
|
case ID_CLKSRC_INT:
|
||||||
/* Always report our current operating frequency */
|
/* Always report our current operating frequency */
|
||||||
(buffer, unsigned[])[0] = g_curSamFreq;
|
buffer[0] = g_curSamFreq;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 4, sp.wLength );
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 4, sp.wLength );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -422,8 +422,8 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
case ID_CLKSRC_INT:
|
case ID_CLKSRC_INT:
|
||||||
|
|
||||||
/* Internal clock always valid */
|
/* Internal clock always valid */
|
||||||
buffer[0] = 1;
|
(buffer, unsigned char[])[0] = 1;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 1, sp.wLength);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_CLKSRC_SPDIF:
|
case ID_CLKSRC_SPDIF:
|
||||||
@@ -434,9 +434,9 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_clk_ctl, GET_VALID);
|
outuint(c_clk_ctl, GET_VALID);
|
||||||
outuint(c_clk_ctl, CLOCK_SPDIF_INDEX);
|
outuint(c_clk_ctl, CLOCK_SPDIF_INDEX);
|
||||||
outct(c_clk_ctl, XS1_CT_END);
|
outct(c_clk_ctl, XS1_CT_END);
|
||||||
buffer[0] = inuint(c_clk_ctl);
|
(buffer, unsigned char[])[0] = inuint(c_clk_ctl);
|
||||||
chkct(c_clk_ctl, XS1_CT_END);
|
chkct(c_clk_ctl, XS1_CT_END);
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 1, sp.wLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -448,9 +448,9 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_clk_ctl, GET_VALID);
|
outuint(c_clk_ctl, GET_VALID);
|
||||||
outuint(c_clk_ctl, CLOCK_ADAT_INDEX);
|
outuint(c_clk_ctl, CLOCK_ADAT_INDEX);
|
||||||
outct(c_clk_ctl, XS1_CT_END);
|
outct(c_clk_ctl, XS1_CT_END);
|
||||||
buffer[0] = inuint(c_clk_ctl);
|
(buffer, unsigned char[])[0] = inuint(c_clk_ctl);
|
||||||
chkct(c_clk_ctl, XS1_CT_END);
|
chkct(c_clk_ctl, XS1_CT_END);
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 1, sp.wLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -477,7 +477,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
/* Direction: Host-to-device */
|
/* Direction: Host-to-device */
|
||||||
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D )
|
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D )
|
||||||
{
|
{
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -488,7 +488,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if (!isnull(c_clk_ctl))
|
if (!isnull(c_clk_ctl))
|
||||||
{
|
{
|
||||||
outuint(c_clk_ctl, SET_SEL);
|
outuint(c_clk_ctl, SET_SEL);
|
||||||
outuint(c_clk_ctl, buffer[0]);
|
outuint(c_clk_ctl, (buffer, unsigned char[])[0]);
|
||||||
outct(c_clk_ctl, XS1_CT_END);
|
outct(c_clk_ctl, XS1_CT_END);
|
||||||
}
|
}
|
||||||
/* Send 0 Length as status stage */
|
/* Send 0 Length as status stage */
|
||||||
@@ -499,15 +499,15 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Direction: Device-to-host: Send Current Selection */
|
/* Direction: Device-to-host: Send Current Selection */
|
||||||
buffer[0] = 1;
|
(buffer, unsigned char[])[0] = 1;
|
||||||
if (!isnull(c_clk_ctl))
|
if (!isnull(c_clk_ctl))
|
||||||
{
|
{
|
||||||
outuint(c_clk_ctl, GET_SEL);
|
outuint(c_clk_ctl, GET_SEL);
|
||||||
outct(c_clk_ctl, XS1_CT_END);
|
outct(c_clk_ctl, XS1_CT_END);
|
||||||
buffer[0] = inuint(c_clk_ctl);
|
(buffer, unsigned char[])[0] = inuint(c_clk_ctl);
|
||||||
chkct(c_clk_ctl, XS1_CT_END);
|
chkct(c_clk_ctl, XS1_CT_END);
|
||||||
}
|
}
|
||||||
return XUD_DoGetRequest( ep0_out, ep0_in, buffer, 1, sp.wLength );
|
return XUD_DoGetRequest( ep0_out, ep0_in, (buffer, unsigned char[]), 1, sp.wLength );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -527,7 +527,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
||||||
{
|
{
|
||||||
/* Expect OUT here (with volume) */
|
/* Expect OUT here (with volume) */
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -536,7 +536,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
||||||
{
|
{
|
||||||
volsOut[ sp.wValue&0xff ] = buffer[0] | (((int) (signed char) buffer[1]) << 8);
|
volsOut[ sp.wValue&0xff ] = (buffer, unsigned char[])[0] | (((int) (signed char) (buffer, unsigned char[])[1]) << 8);
|
||||||
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl );
|
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl );
|
||||||
return XUD_DoSetRequestStatus(ep0_in);
|
return XUD_DoSetRequestStatus(ep0_in);
|
||||||
}
|
}
|
||||||
@@ -545,7 +545,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
||||||
{
|
{
|
||||||
volsIn[ sp.wValue&0xff ] = buffer[0] | (((int) (signed char) buffer[1]) << 8);
|
volsIn[ sp.wValue&0xff ] = (buffer, unsigned char[])[0] | (((int) (signed char) (buffer, unsigned char[])[1]) << 8);
|
||||||
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl );
|
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl );
|
||||||
return XUD_DoSetRequestStatus(ep0_in);
|
return XUD_DoSetRequestStatus(ep0_in);
|
||||||
}
|
}
|
||||||
@@ -557,18 +557,18 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
||||||
{
|
{
|
||||||
buffer[0] = volsOut[ sp.wValue&0xff ];
|
(buffer, unsigned char[])[0] = volsOut[ sp.wValue&0xff ];
|
||||||
buffer[1] = volsOut[ sp.wValue&0xff ] >> 8;
|
(buffer, unsigned char[])[1] = volsOut[ sp.wValue&0xff ] >> 8;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 2, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 2, sp.wLength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
||||||
{
|
{
|
||||||
buffer[0] = volsIn[ sp.wValue&0xff ];
|
(buffer, unsigned char[])[0] = volsIn[ sp.wValue&0xff ];
|
||||||
buffer[1] = volsIn[ sp.wValue&0xff ] >> 8;
|
(buffer, unsigned char[])[1] = volsIn[ sp.wValue&0xff ] >> 8;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 2, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 2, sp.wLength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -579,7 +579,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
||||||
{
|
{
|
||||||
/* Expect OUT here with mute */
|
/* Expect OUT here with mute */
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -588,7 +588,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
||||||
{
|
{
|
||||||
mutesOut[sp.wValue & 0xff] = buffer[0];
|
mutesOut[sp.wValue & 0xff] = (buffer, unsigned char[])[0];
|
||||||
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl);
|
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl);
|
||||||
return XUD_DoSetRequestStatus(ep0_in);
|
return XUD_DoSetRequestStatus(ep0_in);
|
||||||
}
|
}
|
||||||
@@ -597,7 +597,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
if((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
||||||
{
|
{
|
||||||
mutesIn[ sp.wValue&0xff ] = buffer[0];
|
mutesIn[ sp.wValue&0xff ] = (buffer, unsigned char[])[0];
|
||||||
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl);
|
updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl);
|
||||||
return XUD_DoSetRequestStatus(ep0_in);
|
return XUD_DoSetRequestStatus(ep0_in);
|
||||||
}
|
}
|
||||||
@@ -609,16 +609,16 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
if ((sp.wValue & 0xff) <= NUM_USB_CHAN_OUT)
|
||||||
{
|
{
|
||||||
buffer[0] = mutesOut[sp.wValue&0xff];
|
(buffer, unsigned char[])[0] = mutesOut[sp.wValue&0xff];
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
if((sp.wValue & 0xff) <= NUM_USB_CHAN_IN)
|
||||||
{
|
{
|
||||||
buffer[0] = mutesIn[ sp.wValue&0xff ];
|
(buffer, unsigned char[])[0] = mutesIn[ sp.wValue&0xff ];
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -641,12 +641,12 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
int c = sp.wValue & 0xff;
|
int c = sp.wValue & 0xff;
|
||||||
|
|
||||||
|
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
channelMapAud[c] = buffer[0] | buffer[1] << 8;
|
channelMapAud[c] = (buffer, unsigned char[])[0] | (buffer, unsigned char[])[1] << 8;
|
||||||
|
|
||||||
if (!isnull(c_mix_ctl))
|
if (!isnull(c_mix_ctl))
|
||||||
{
|
{
|
||||||
@@ -664,10 +664,10 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
buffer[0] = channelMapAud[sp.wValue & 0xff];
|
(buffer, unsigned char[])[0] = channelMapAud[sp.wValue & 0xff];
|
||||||
buffer[1] = 0;
|
(buffer, unsigned char[])[1] = 0;
|
||||||
|
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -679,12 +679,12 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
unsigned volume = 0;
|
unsigned volume = 0;
|
||||||
int c = sp.wValue & 0xff;
|
int c = sp.wValue & 0xff;
|
||||||
|
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
channelMapUsb[c] = buffer[0] | buffer[1] << 8;
|
channelMapUsb[c] = (buffer, unsigned char[])[0] | (buffer, unsigned char[])[1] << 8;
|
||||||
|
|
||||||
if (c < NUM_USB_CHAN_IN)
|
if (c < NUM_USB_CHAN_IN)
|
||||||
{
|
{
|
||||||
@@ -701,9 +701,9 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Direction: Device-to-host */
|
/* Direction: Device-to-host */
|
||||||
buffer[0] = channelMapUsb[sp.wValue & 0xff];
|
(buffer, unsigned char[])[0] = channelMapUsb[sp.wValue & 0xff];
|
||||||
buffer[1] = 0;
|
(buffer, unsigned char[])[1] = 0;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -716,7 +716,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
if(sp.bmRequestType.Direction == USB_BM_REQTYPE_DIRECTION_H2D)
|
||||||
{
|
{
|
||||||
/* Direction: Host-to-device */ /* Host-to-device */
|
/* Direction: Host-to-device */ /* Host-to-device */
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -731,13 +731,13 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if(cs < (MAX_MIX_COUNT + 1))
|
if(cs < (MAX_MIX_COUNT + 1))
|
||||||
{
|
{
|
||||||
/* Check for "off" - update local state */
|
/* Check for "off" - update local state */
|
||||||
if(buffer[0] == 0xFF)
|
if((buffer, unsigned char[])[0] == 0xFF)
|
||||||
{
|
{
|
||||||
mixSel[cs][cn] = (NUM_USB_CHAN_OUT + NUM_USB_CHAN_IN + MAX_MIX_COUNT);
|
mixSel[cs][cn] = (NUM_USB_CHAN_OUT + NUM_USB_CHAN_IN + MAX_MIX_COUNT);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mixSel[cs][cn] = buffer[0];
|
mixSel[cs][cn] = (buffer, unsigned char[])[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cs == 0)
|
if(cs == 0)
|
||||||
@@ -770,7 +770,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Direction: Device-to-Host (GET) */
|
/* Direction: Device-to-Host (GET) */
|
||||||
buffer[0] = 0;
|
(buffer, unsigned char[])[0] = 0;
|
||||||
|
|
||||||
/* Channel Number bounds check for safety */
|
/* Channel Number bounds check for safety */
|
||||||
if(cn < MIX_INPUTS)
|
if(cn < MIX_INPUTS)
|
||||||
@@ -779,8 +779,8 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
/* TODO ideally have a return for cs = 0. I.e all mix maps */
|
/* TODO ideally have a return for cs = 0. I.e all mix maps */
|
||||||
if((cs > 0) && (cs < (MAX_MIX_COUNT+1)))
|
if((cs > 0) && (cs < (MAX_MIX_COUNT+1)))
|
||||||
{
|
{
|
||||||
buffer[0] = mixSel[cs-1][cn];
|
(buffer, unsigned char[])[0] = mixSel[cs-1][cn];
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, 1 );
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 1, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -794,12 +794,12 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
unsigned volume = 0;
|
unsigned volume = 0;
|
||||||
|
|
||||||
/* Expect OUT here with mute */
|
/* Expect OUT here with mute */
|
||||||
if((result = XUD_GetBuffer(ep0_out, buffer, datalength)) != XUD_RES_OKAY)
|
if((result = XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), datalength)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
mixer1Weights[sp.wValue & 0xff] = buffer[0] | buffer[1] << 8;
|
mixer1Weights[sp.wValue & 0xff] = (buffer, unsigned char[])[0] | (buffer, unsigned char[])[1] << 8;
|
||||||
|
|
||||||
if (mixer1Weights[sp.wValue & 0xff] == 0x8000)
|
if (mixer1Weights[sp.wValue & 0xff] == 0x8000)
|
||||||
{
|
{
|
||||||
@@ -824,10 +824,10 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
short weight = mixer1Weights[sp.wValue & 0xff];
|
short weight = mixer1Weights[sp.wValue & 0xff];
|
||||||
buffer[0] = weight & 0xff;
|
(buffer, unsigned char[])[0] = weight & 0xff;
|
||||||
buffer[1] = (weight >> 8) & 0xff;
|
(buffer, unsigned char[])[1] = (weight >> 8) & 0xff;
|
||||||
|
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -882,7 +882,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if((lowSampleRateList[k] >= MIN_FREQ) && (lowSampleRateList[k] <= MAX_FREQ))
|
if((lowSampleRateList[k] >= MIN_FREQ) && (lowSampleRateList[k] <= MAX_FREQ))
|
||||||
{
|
{
|
||||||
storeFreq(buffer, i, lowSampleRateList[k]);
|
storeFreq((buffer, unsigned char[]), i, lowSampleRateList[k]);
|
||||||
num_freqs++;
|
num_freqs++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -894,7 +894,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
{
|
{
|
||||||
if((currentFreq44 <= maxFreq) && (currentFreq44 >= MIN_FREQ))
|
if((currentFreq44 <= maxFreq) && (currentFreq44 >= MIN_FREQ))
|
||||||
{
|
{
|
||||||
storeFreq(buffer, i, currentFreq44);
|
storeFreq((buffer, unsigned char[]), i, currentFreq44);
|
||||||
num_freqs++;
|
num_freqs++;
|
||||||
currentFreq44*=2;
|
currentFreq44*=2;
|
||||||
}
|
}
|
||||||
@@ -902,7 +902,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
if((currentFreq48 <= maxFreq))
|
if((currentFreq48 <= maxFreq))
|
||||||
{
|
{
|
||||||
/* Note i passed byref here */
|
/* Note i passed byref here */
|
||||||
storeFreq(buffer, i, currentFreq48);
|
storeFreq((buffer, unsigned char[]), i, currentFreq48);
|
||||||
num_freqs++;
|
num_freqs++;
|
||||||
currentFreq48*=2;
|
currentFreq48*=2;
|
||||||
}
|
}
|
||||||
@@ -915,14 +915,14 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
unsigned srList[] = {SAMPLE_RATE_LIST};
|
unsigned srList[] = {SAMPLE_RATE_LIST};
|
||||||
for(int j = 0; j < sizeof(srList)/(sizeof(srList[0])); j++)
|
for(int j = 0; j < sizeof(srList)/(sizeof(srList[0])); j++)
|
||||||
{
|
{
|
||||||
storeFreq(buffer, i, srList[j]);
|
storeFreq((buffer, unsigned char[]), i, srList[j]);
|
||||||
num_freqs++;
|
num_freqs++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
storeShort(buffer, 0, num_freqs);
|
storeShort((buffer, unsigned char[]), 0, num_freqs);
|
||||||
|
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, i, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), i, sp.wLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -943,11 +943,11 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
/* Volume control, send back same range for all channels (i.e. ignore CN) */
|
/* Volume control, send back same range for all channels (i.e. ignore CN) */
|
||||||
case FU_VOLUME_CONTROL:
|
case FU_VOLUME_CONTROL:
|
||||||
|
|
||||||
storeShort(buffer, 0, 1);
|
storeShort((buffer, unsigned char[]), 0, 1);
|
||||||
storeShort(buffer, 2, MIN_VOLUME);
|
storeShort((buffer, unsigned char[]), 2, MIN_VOLUME);
|
||||||
storeShort(buffer, 4, MAX_VOLUME);
|
storeShort((buffer, unsigned char[]), 4, MAX_VOLUME);
|
||||||
storeShort(buffer, 6, VOLUME_RES);
|
storeShort((buffer, unsigned char[]), 6, VOLUME_RES);
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -960,11 +960,11 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
#ifdef MIXER
|
#ifdef MIXER
|
||||||
/* Mixer Unit */
|
/* Mixer Unit */
|
||||||
case ID_MIXER_1:
|
case ID_MIXER_1:
|
||||||
storeShort(buffer, 0, 1);
|
storeShort((buffer, unsigned char[]), 0, 1);
|
||||||
storeShort(buffer, 2, MIN_MIXER_VOLUME);
|
storeShort((buffer, unsigned char[]), 2, MIN_MIXER_VOLUME);
|
||||||
storeShort(buffer, 4, MAX_MIXER_VOLUME);
|
storeShort((buffer, unsigned char[]), 4, MAX_MIXER_VOLUME);
|
||||||
storeShort(buffer, 6, VOLUME_RES_MIXER);
|
storeShort((buffer, unsigned char[]), 6, VOLUME_RES_MIXER);
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1006,12 +1006,12 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_mix_ctl, GET_STREAM_LEVELS);
|
outuint(c_mix_ctl, GET_STREAM_LEVELS);
|
||||||
outuint(c_mix_ctl, i);
|
outuint(c_mix_ctl, i);
|
||||||
outct(c_mix_ctl, XS1_CT_END);
|
outct(c_mix_ctl, XS1_CT_END);
|
||||||
storeShort(buffer, i*2, (inuint(c_mix_ctl) >> 15));
|
storeShort((buffer, unsigned char[]), i*2, (inuint(c_mix_ctl) >> 15));
|
||||||
chkct(c_mix_ctl, XS1_CT_END);
|
chkct(c_mix_ctl, XS1_CT_END);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
storeShort(buffer, i*2, 0);
|
storeShort((buffer, unsigned char[]), i*2, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1021,12 +1021,12 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_mix_ctl, GET_INPUT_LEVELS);
|
outuint(c_mix_ctl, GET_INPUT_LEVELS);
|
||||||
outuint(c_mix_ctl, (i - NUM_USB_CHAN_OUT));
|
outuint(c_mix_ctl, (i - NUM_USB_CHAN_OUT));
|
||||||
outct(c_mix_ctl, XS1_CT_END);
|
outct(c_mix_ctl, XS1_CT_END);
|
||||||
storeShort(buffer, i*2, (inuint(c_mix_ctl) >> 15));
|
storeShort((buffer, unsigned char[]), i*2, (inuint(c_mix_ctl) >> 15));
|
||||||
chkct(c_mix_ctl, XS1_CT_END);
|
chkct(c_mix_ctl, XS1_CT_END);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
storeShort(buffer, i*2, 0);
|
storeShort((buffer, unsigned char[]), i*2, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1043,18 +1043,18 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c
|
|||||||
outuint(c_mix_ctl, GET_OUTPUT_LEVELS);
|
outuint(c_mix_ctl, GET_OUTPUT_LEVELS);
|
||||||
outuint(c_mix_ctl, i);
|
outuint(c_mix_ctl, i);
|
||||||
outct(c_mix_ctl, XS1_CT_END);
|
outct(c_mix_ctl, XS1_CT_END);
|
||||||
storeShort(buffer, i*2, (inuint(c_mix_ctl) >> 15));
|
storeShort((buffer, unsigned char[]), i*2, (inuint(c_mix_ctl) >> 15));
|
||||||
chkct(c_mix_ctl, XS1_CT_END);
|
chkct(c_mix_ctl, XS1_CT_END);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
storeShort(buffer, i*2, 0);
|
storeShort((buffer, unsigned char[]), i*2, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, length, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), length, sp.wLength);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1078,7 +1078,7 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
XUD_Result_t result;
|
XUD_Result_t result;
|
||||||
unsigned char buffer[128];
|
unsigned int buffer[32];
|
||||||
unsigned length;
|
unsigned length;
|
||||||
|
|
||||||
/* Host to Device */
|
/* Host to Device */
|
||||||
@@ -1092,7 +1092,7 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp
|
|||||||
/* Check Control Selector */
|
/* Check Control Selector */
|
||||||
unsigned short controlSelector = sp.wValue>>8;
|
unsigned short controlSelector = sp.wValue>>8;
|
||||||
|
|
||||||
if((result != XUD_GetBuffer(ep0_out, buffer, length)) != XUD_RES_OKAY)
|
if((result != XUD_GetBuffer(ep0_out, (buffer, unsigned char[]), length)) != XUD_RES_OKAY)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1103,7 +1103,7 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp
|
|||||||
if((sp.wLength == 3) && (length == 3))
|
if((sp.wLength == 3) && (length == 3))
|
||||||
{
|
{
|
||||||
/* Recontruct sample-freq */
|
/* Recontruct sample-freq */
|
||||||
int newSampleRate = buffer[0] | (buffer [1] << 8) | (buffer[2] << 16);
|
int newSampleRate = (buffer, unsigned char[])[0] | ((buffer, unsigned char[])[1] << 8) | ((buffer, unsigned char[])[2] << 16);
|
||||||
|
|
||||||
if(newSampleRate != g_curSamFreq)
|
if(newSampleRate != g_curSamFreq)
|
||||||
{
|
{
|
||||||
@@ -1130,11 +1130,11 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp
|
|||||||
FeedbackStabilityDelay();
|
FeedbackStabilityDelay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return XUD_SetBuffer(ep0_in, buffer, 0);
|
return XUD_SetBuffer(ep0_in, (buffer, unsigned char[]), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
return XUD_SetBuffer(ep0_in, buffer, 0);
|
return XUD_SetBuffer(ep0_in, (buffer, unsigned char[]), 0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1145,8 +1145,8 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp
|
|||||||
switch(sp.bRequest)
|
switch(sp.bRequest)
|
||||||
{
|
{
|
||||||
case UAC_B_REQ_GET_CUR:
|
case UAC_B_REQ_GET_CUR:
|
||||||
(buffer, unsigned[])[0] = g_curSamFreq;
|
buffer[0] = g_curSamFreq;
|
||||||
return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 3, sp.wLength);
|
return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 3, sp.wLength);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2280,10 +2280,6 @@ const unsigned num_freqs_a1 = MAX(3, (0
|
|||||||
|
|
||||||
#define STREAMING_INTERFACES (INPUT_INTERFACES_A1 + OUTPUT_INTERFACES_A1)
|
#define STREAMING_INTERFACES (INPUT_INTERFACES_A1 + OUTPUT_INTERFACES_A1)
|
||||||
|
|
||||||
/* Number of interfaces for Audio 1.0 (+1 for control ) */
|
|
||||||
/* Note, this is different that INTERFACE_COUNT since we dont support items such as MIDI, iAP etc in UAC1 mode */
|
|
||||||
#define NUM_INTERFACES_A1 (1+INPUT_INTERFACES_A1 + OUTPUT_INTERFACES_A1+NUM_CONTROL_INTERFACES)
|
|
||||||
|
|
||||||
//#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
//#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
|
||||||
//#define CFG_TOTAL_LENGTH_A1 (18 + AC_TOTAL_LENGTH + (INPUT_INTERFACES_A1 * (49 + num_freqs_a1 * 3)) + (OUTPUT_INTERFACES_A1 * (58 + num_freqs_a1 * 3)) + CONTROL_INTERFACE_BYTES + DFU_INTERFACE_BYTES)
|
//#define CFG_TOTAL_LENGTH_A1 (18 + AC_TOTAL_LENGTH + (INPUT_INTERFACES_A1 * (49 + num_freqs_a1 * 3)) + (OUTPUT_INTERFACES_A1 * (58 + num_freqs_a1 * 3)) + CONTROL_INTERFACE_BYTES + DFU_INTERFACE_BYTES)
|
||||||
//#endif
|
//#endif
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ static unsigned int g_midi_from_host_buffer[MAX_USB_MIDI_PACKET_SIZE/4];
|
|||||||
unsigned char gc_zero_buffer[4];
|
unsigned char gc_zero_buffer[4];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned char fb_clocks[16];
|
unsigned int fb_clocks[4];
|
||||||
|
|
||||||
//#define FB_TOLERANCE_TEST
|
//#define FB_TOLERANCE_TEST
|
||||||
#define FB_TOLERANCE 0x100
|
#define FB_TOLERANCE 0x100
|
||||||
@@ -239,7 +239,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
SET_SHARED_GLOBAL(g_aud_to_host_flag, 1);
|
SET_SHARED_GLOBAL(g_aud_to_host_flag, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
(fb_clocks, unsigned[])[0] = 0;
|
fb_clocks[0] = 0;
|
||||||
|
|
||||||
/* Mark OUT endpoints ready to receive data from host */
|
/* Mark OUT endpoints ready to receive data from host */
|
||||||
#ifdef MIDI
|
#ifdef MIDI
|
||||||
@@ -261,7 +261,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
#if (AUDIO_CLASS == 1)
|
#if (AUDIO_CLASS == 1)
|
||||||
#if (NUM_USB_CHAN_IN == 0) || defined (UAC_FORCE_FEEDBACK_EP)
|
#if (NUM_USB_CHAN_IN == 0) || defined (UAC_FORCE_FEEDBACK_EP)
|
||||||
/* In UAC1 we dont use a stream start event (and we are always FS) so mark FB EP ready now */
|
/* In UAC1 we dont use a stream start event (and we are always FS) so mark FB EP ready now */
|
||||||
XUD_SetReady_In(ep_aud_fb, fb_clocks, 3);
|
XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -390,11 +390,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
|
|
||||||
if (busSpeed == XUD_SPEED_HS)
|
if (busSpeed == XUD_SPEED_HS)
|
||||||
{
|
{
|
||||||
XUD_SetReady_In(ep_aud_fb, fb_clocks, 4);
|
XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 4);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XUD_SetReady_In(ep_aud_fb, fb_clocks, 3);
|
XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -468,11 +468,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
|
|
||||||
if (usb_speed == XUD_SPEED_HS)
|
if (usb_speed == XUD_SPEED_HS)
|
||||||
{
|
{
|
||||||
(fb_clocks, unsigned[])[0] = clocks;
|
fb_clocks[0] = clocks;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
(fb_clocks, unsigned[])[0] = clocks>>2;
|
fb_clocks[0] = clocks>>2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef FB_TOLERANCE_TEST
|
#ifdef FB_TOLERANCE_TEST
|
||||||
@@ -535,11 +535,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
|
|
||||||
if (usb_speed == XUD_SPEED_HS)
|
if (usb_speed == XUD_SPEED_HS)
|
||||||
{
|
{
|
||||||
(fb_clocks, unsigned[])[0] = clocks;
|
fb_clocks[0] = clocks;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
(fb_clocks, unsigned[])[0] = clocks >> 2;
|
fb_clocks[0] = clocks >> 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef FB_TOLERANCE_TEST
|
#ifdef FB_TOLERANCE_TEST
|
||||||
@@ -578,11 +578,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
|
|||||||
|
|
||||||
if (busSpeed == XUD_SPEED_HS)
|
if (busSpeed == XUD_SPEED_HS)
|
||||||
{
|
{
|
||||||
XUD_SetReady_In(ep_aud_fb, fb_clocks, 4);
|
XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 4);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XUD_SetReady_In(ep_aud_fb, fb_clocks, 3);
|
XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user