From 307a6a6f285d578aaf3f9349e750ec0d09a4714d Mon Sep 17 00:00:00 2001 From: George Roger Date: Tue, 23 May 2017 09:05:52 +0100 Subject: [PATCH] Changed some array types to remove warning 'reinterpretation to type of larger alignment' --- module_usb_audio/endpoint0/audiorequests.xc | 174 ++++++++++---------- module_usb_audio/usb_buffer/usb_buffer.xc | 22 +-- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/module_usb_audio/endpoint0/audiorequests.xc b/module_usb_audio/endpoint0/audiorequests.xc index 27f3e1fb..e8691e50 100644 --- a/module_usb_audio/endpoint0/audiorequests.xc +++ b/module_usb_audio/endpoint0/audiorequests.xc @@ -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 ) { - unsigned char buffer[128]; + unsigned int buffer[32]; int unitID; XUD_Result_t result; 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) { /* 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; } @@ -315,7 +315,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c if(datalength == 4) { /* 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) */ 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, CLOCK_SPDIF_INDEX); 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); - 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 { - (buffer, unsigned[])[0] = g_curSamFreq; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 4, sp.wLength ); + buffer[0] = g_curSamFreq; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 4, sp.wLength ); } break; #endif case ID_CLKSRC_INT: /* Always report our current operating frequency */ - (buffer, unsigned[])[0] = g_curSamFreq; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 4, sp.wLength ); + buffer[0] = g_curSamFreq; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 4, sp.wLength ); break; 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: /* Internal clock always valid */ - buffer[0] = 1; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, sp.wLength); + (buffer, unsigned char[])[0] = 1; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 1, sp.wLength); break; 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, CLOCK_SPDIF_INDEX); 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); - 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; @@ -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, CLOCK_ADAT_INDEX); 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); - 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; @@ -477,7 +477,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c /* Direction: Host-to-device */ 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; } @@ -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)) { 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); } /* 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 { /* Direction: Device-to-host: Send Current Selection */ - buffer[0] = 1; + (buffer, unsigned char[])[0] = 1; if (!isnull(c_clk_ctl)) { outuint(c_clk_ctl, GET_SEL); 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); } - 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) { /* 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; } @@ -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) { - 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 ); 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) { - 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 ); 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) { - buffer[0] = volsOut[ sp.wValue&0xff ]; - buffer[1] = volsOut[ sp.wValue&0xff ] >> 8; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 2, sp.wLength); + (buffer, unsigned char[])[0] = volsOut[ sp.wValue&0xff ]; + (buffer, unsigned char[])[1] = volsOut[ sp.wValue&0xff ] >> 8; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 2, sp.wLength); } } else { if ((sp.wValue & 0xff) <= NUM_USB_CHAN_IN) { - buffer[0] = volsIn[ sp.wValue&0xff ]; - buffer[1] = volsIn[ sp.wValue&0xff ] >> 8; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 2, sp.wLength); + (buffer, unsigned char[])[0] = volsIn[ sp.wValue&0xff ]; + (buffer, unsigned char[])[1] = volsIn[ sp.wValue&0xff ] >> 8; + 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) { /* 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; } @@ -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) { - mutesOut[sp.wValue & 0xff] = buffer[0]; + mutesOut[sp.wValue & 0xff] = (buffer, unsigned char[])[0]; updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl); 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) { - mutesIn[ sp.wValue&0xff ] = buffer[0]; + mutesIn[ sp.wValue&0xff ] = (buffer, unsigned char[])[0]; updateVol( unitID, ( sp.wValue & 0xff ), c_mix_ctl); 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) { - buffer[0] = mutesOut[sp.wValue&0xff]; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength); + (buffer, unsigned char[])[0] = mutesOut[sp.wValue&0xff]; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength); } } else { if((sp.wValue & 0xff) <= NUM_USB_CHAN_IN) { - buffer[0] = mutesIn[ sp.wValue&0xff ]; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength); + (buffer, unsigned char[])[0] = mutesIn[ sp.wValue&0xff ]; + 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; - 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; } - channelMapAud[c] = buffer[0] | buffer[1] << 8; + channelMapAud[c] = (buffer, unsigned char[])[0] | (buffer, unsigned char[])[1] << 8; 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 { - buffer[0] = channelMapAud[sp.wValue & 0xff]; - buffer[1] = 0; + (buffer, unsigned char[])[0] = channelMapAud[sp.wValue & 0xff]; + (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; 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; } - channelMapUsb[c] = buffer[0] | buffer[1] << 8; + channelMapUsb[c] = (buffer, unsigned char[])[0] | (buffer, unsigned char[])[1] << 8; 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 { /* Direction: Device-to-host */ - buffer[0] = channelMapUsb[sp.wValue & 0xff]; - buffer[1] = 0; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength); + (buffer, unsigned char[])[0] = channelMapUsb[sp.wValue & 0xff]; + (buffer, unsigned char[])[1] = 0; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength); } 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) { /* 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; } @@ -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)) { /* 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); } else { - mixSel[cs][cn] = buffer[0]; + mixSel[cs][cn] = (buffer, unsigned char[])[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 { /* Direction: Device-to-Host (GET) */ - buffer[0] = 0; + (buffer, unsigned char[])[0] = 0; /* Channel Number bounds check for safety */ 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 */ if((cs > 0) && (cs < (MAX_MIX_COUNT+1))) { - buffer[0] = mixSel[cs-1][cn]; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 1, 1 ); + (buffer, unsigned char[])[0] = mixSel[cs-1][cn]; + 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; /* 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; } - 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) { @@ -824,10 +824,10 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c else { short weight = mixer1Weights[sp.wValue & 0xff]; - buffer[0] = weight & 0xff; - buffer[1] = (weight >> 8) & 0xff; + (buffer, unsigned char[])[0] = weight & 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; @@ -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)) { - storeFreq(buffer, i, lowSampleRateList[k]); + storeFreq((buffer, unsigned char[]), i, lowSampleRateList[k]); 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)) { - storeFreq(buffer, i, currentFreq44); + storeFreq((buffer, unsigned char[]), i, currentFreq44); num_freqs++; 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)) { /* Note i passed byref here */ - storeFreq(buffer, i, currentFreq48); + storeFreq((buffer, unsigned char[]), i, currentFreq48); num_freqs++; 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}; 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++; } #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; @@ -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) */ case FU_VOLUME_CONTROL: - storeShort(buffer, 0, 1); - storeShort(buffer, 2, MIN_VOLUME); - storeShort(buffer, 4, MAX_VOLUME); - storeShort(buffer, 6, VOLUME_RES); - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength); + storeShort((buffer, unsigned char[]), 0, 1); + storeShort((buffer, unsigned char[]), 2, MIN_VOLUME); + storeShort((buffer, unsigned char[]), 4, MAX_VOLUME); + storeShort((buffer, unsigned char[]), 6, VOLUME_RES); + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength); break; default: @@ -960,11 +960,11 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c #ifdef MIXER /* Mixer Unit */ case ID_MIXER_1: - storeShort(buffer, 0, 1); - storeShort(buffer, 2, MIN_MIXER_VOLUME); - storeShort(buffer, 4, MAX_MIXER_VOLUME); - storeShort(buffer, 6, VOLUME_RES_MIXER); - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, sp.wLength, sp.wLength); + storeShort((buffer, unsigned char[]), 0, 1); + storeShort((buffer, unsigned char[]), 2, MIN_MIXER_VOLUME); + storeShort((buffer, unsigned char[]), 4, MAX_MIXER_VOLUME); + storeShort((buffer, unsigned char[]), 6, VOLUME_RES_MIXER); + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), sp.wLength, sp.wLength); break; #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, i); 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); } else { - storeShort(buffer, i*2, 0); + storeShort((buffer, unsigned char[]), i*2, 0); } } 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, (i - NUM_USB_CHAN_OUT)); 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); } 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, i); 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); } else { - storeShort(buffer, i*2, 0); + storeShort((buffer, unsigned char[]), i*2, 0); } } 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; } @@ -1078,7 +1078,7 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp */ XUD_Result_t result; - unsigned char buffer[128]; + unsigned int buffer[32]; unsigned length; /* 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 */ 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; } @@ -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)) { /* 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) { @@ -1130,11 +1130,11 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp FeedbackStabilityDelay(); } } - return XUD_SetBuffer(ep0_in, buffer, 0); + return XUD_SetBuffer(ep0_in, (buffer, unsigned char[]), 0); } } #else - return XUD_SetBuffer(ep0_in, buffer, 0); + return XUD_SetBuffer(ep0_in, (buffer, unsigned char[]), 0); #endif } break; @@ -1145,8 +1145,8 @@ int AudioEndpointRequests_1(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp switch(sp.bRequest) { case UAC_B_REQ_GET_CUR: - (buffer, unsigned[])[0] = g_curSamFreq; - return XUD_DoGetRequest(ep0_out, ep0_in, buffer, 3, sp.wLength); + buffer[0] = g_curSamFreq; + return XUD_DoGetRequest(ep0_out, ep0_in, (buffer, unsigned char[]), 3, sp.wLength); break; } } diff --git a/module_usb_audio/usb_buffer/usb_buffer.xc b/module_usb_audio/usb_buffer/usb_buffer.xc index 3e0bc540..3335c8c5 100644 --- a/module_usb_audio/usb_buffer/usb_buffer.xc +++ b/module_usb_audio/usb_buffer/usb_buffer.xc @@ -80,7 +80,7 @@ static unsigned int g_midi_from_host_buffer[MAX_USB_MIDI_PACKET_SIZE/4]; unsigned char gc_zero_buffer[4]; #endif -unsigned char fb_clocks[16]; +unsigned int fb_clocks[4]; //#define FB_TOLERANCE_TEST #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); #endif - (fb_clocks, unsigned[])[0] = 0; + fb_clocks[0] = 0; /* Mark OUT endpoints ready to receive data from host */ #ifdef MIDI @@ -261,7 +261,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, #if (AUDIO_CLASS == 1) #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 */ - XUD_SetReady_In(ep_aud_fb, fb_clocks, 3); + XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3); #endif #endif @@ -390,11 +390,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, 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 { - XUD_SetReady_In(ep_aud_fb, fb_clocks, 3); + XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3); } #endif } @@ -468,11 +468,11 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, if (usb_speed == XUD_SPEED_HS) { - (fb_clocks, unsigned[])[0] = clocks; + fb_clocks[0] = clocks; } else { - (fb_clocks, unsigned[])[0] = clocks>>2; + fb_clocks[0] = clocks>>2; } } #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) { - (fb_clocks, unsigned[])[0] = clocks; + fb_clocks[0] = clocks; } else { - (fb_clocks, unsigned[])[0] = clocks >> 2; + fb_clocks[0] = clocks >> 2; } } #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) { - XUD_SetReady_In(ep_aud_fb, fb_clocks, 4); + XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 4); } else { - XUD_SetReady_In(ep_aud_fb, fb_clocks, 3); + XUD_SetReady_In(ep_aud_fb, (fb_clocks, unsigned char[]), 3); } } break;