diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 028c42b5..477bcef0 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,13 +1,22 @@
sc_usb_audio Change Log
=======================
-6.12.7
+6.13.0
------
- ADDED: Device now uses implicit feedback when input stream is available (previously explicit
feedback pipe always used). This saves chanend/EP resources and means less processing
burden for the host. Previous behaviour available by enabling UAC_FORCE_FEEDBACK_EP
- - CHANGE: Mixer and non-mixer channel comms scheme (decouple <-> audio path) now the identical
-
+ - RESOLVED: Exception when SPDIF_TX and ADAT_TX both enabled due to clock-block being configured
+ after already started. Caused by SPDIF_TX define check typo
+ - RESOLVED: DFU flag address changed to properly conform to memory address range allocated to
+ apps by tools
+ - RESOLVED: Build failure when DFU disabled
+ - RESOLVED: Build issue when I2S_CHANS_ADC/DAC set to 0 and CODEC_MASTER enabled
+ - RESOLVED: Typo in MCLK_441 checking for MIN_FREQ define
+ - CHANGE: Mixer and non-mixer channel comms scheme (decouple <-> audio path) now identical
+ - CHANGE: Input stream buffering modified such that during overflow older samples are removed
+ rather than ignoring most recent samples. Removes any chance of stale input packets
+ being sent to host.
6.12.6
------
diff --git a/README.rst b/README.rst
index 4580f0c3..84737e8f 100644
--- a/README.rst
+++ b/README.rst
@@ -1,7 +1,7 @@
USB Audio Shared
................
-:Latest release: 6.12.5rc0
+:Latest release: 6.13.0beta1
:Maintainer: xross
:Description: USB Audio Shared Components. For use in the XMOS USB Audio Refererence Designs.
diff --git a/module_dfu/.xproject b/module_dfu/.xproject
index d80aba33..de455f2e 100644
--- a/module_dfu/.xproject
+++ b/module_dfu/.xproject
@@ -1 +1 @@
-sc_usb_audioXM-004720-SM
\ No newline at end of file
+sc_usb_audioXM-004720-SM6.13.0beta0
\ No newline at end of file
diff --git a/module_queue/.xproject b/module_queue/.xproject
index d80aba33..de455f2e 100644
--- a/module_queue/.xproject
+++ b/module_queue/.xproject
@@ -1 +1 @@
-sc_usb_audioXM-004720-SM
\ No newline at end of file
+sc_usb_audioXM-004720-SM6.13.0beta0
\ No newline at end of file
diff --git a/module_queue/module_build_info b/module_queue/module_build_info
index 84cb704f..5082786c 100644
--- a/module_queue/module_build_info
+++ b/module_queue/module_build_info
@@ -11,4 +11,4 @@
MODULE_XCC_XC_FLAGS = $(XCC_XC_FLAGS)
-DEPENDENT_MODULES = module_xassert
+DEPENDENT_MODULES = lib_xassert
diff --git a/module_usb_audio/.cproject b/module_usb_audio/.cproject
index 5cbe48b9..4e47aeca 100644
--- a/module_usb_audio/.cproject
+++ b/module_usb_audio/.cproject
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
@@ -46,6 +47,187 @@
+=======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmake
+ -f .makefile
+ all
+ true
+ true
+ true
+
+
+ xmake
+ -f .makefile
+ clean
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -878,6 +1077,7 @@
+<<<<<<< HEAD
@@ -892,6 +1092,22 @@
+=======
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> master
diff --git a/module_usb_audio/.xproject b/module_usb_audio/.xproject
index d80aba33..de455f2e 100644
--- a/module_usb_audio/.xproject
+++ b/module_usb_audio/.xproject
@@ -1 +1 @@
-sc_usb_audioXM-004720-SM
\ No newline at end of file
+sc_usb_audioXM-004720-SM6.13.0beta0
\ No newline at end of file
diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc
index 0b07c330..99e9f97d 100755
--- a/module_usb_audio/audio.xc
+++ b/module_usb_audio/audio.xc
@@ -720,7 +720,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out,
/* Manual IN instruction since compiler generates an extra setc per IN (bug #15256) */
unsigned sample;
asm volatile("in %0, res[%1]" : "=r"(sample) : "r"(p_i2s_adc[index++]));
-
+
if(buffIndex)
samplesIn_1[((frameCount-1)&(I2S_CHANS_PER_FRAME-1))+i] = bitrev(sample); // channels 1, 3, 5.. on each line.
else
@@ -1013,7 +1013,7 @@ chanend ?c_config, chanend ?c
configure_clock_src(clk_mst_spd, p_mclk_in);
configure_out_port_no_ready(p_adat_tx, clk_mst_spd, 0);
set_clock_fall_delay(clk_mst_spd, 7);
-#ifndef SPDIF
+#ifndef SPDIF_TX
start_clock(clk_mst_spd);
#endif
#endif
diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h
index ad33f4cd..c4d9a2aa 100644
--- a/module_usb_audio/devicedefines.h
+++ b/module_usb_audio/devicedefines.h
@@ -465,14 +465,14 @@
* @brief Device firmware version number in Binary Coded Decimal format: 0xJJMN where JJ: major, M: minor, N: sub-minor version number.
*/
#ifndef BCD_DEVICE_M
-#define BCD_DEVICE_M 12
+#define BCD_DEVICE_M 13
#endif
/**
* @brief Device firmware version number in Binary Coded Decimal format: 0xJJMN where JJ: major, M: minor, N: sub-minor version number.
*/
#ifndef BCD_DEVICE_N
-#define BCD_DEVICE_N 5
+#define BCD_DEVICE_N 0
#endif
/**
diff --git a/module_usb_audio/endpoint0/descriptors.h b/module_usb_audio/endpoint0/descriptors.h
index 339c8c92..c537f4a1 100644
--- a/module_usb_audio/endpoint0/descriptors.h
+++ b/module_usb_audio/endpoint0/descriptors.h
@@ -1417,10 +1417,10 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
/* Type 1 Format Type Descriptor */
.Audio_Out_Format =
{
- .bLength = 0x06,
- .bDescriptorType = UAC_CS_DESCTYPE_INTERFACE,
- .bDescriptorSubtype = UAC_CS_AS_INTERFACE_SUBTYPE_FORMAT_TYPE,
- .bFormatType = UAC_FORMAT_TYPE_I,
+ .bLength = 0x06,
+ .bDescriptorType = UAC_CS_DESCTYPE_INTERFACE,
+ .bDescriptorSubtype = UAC_CS_AS_INTERFACE_SUBTYPE_FORMAT_TYPE,
+ .bFormatType = UAC_FORMAT_TYPE_I,
.bSubslotSize = HS_STREAM_FORMAT_OUTPUT_1_SUBSLOT_BYTES,
.bBitResolution = HS_STREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS,
},
@@ -1430,7 +1430,7 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
{
.bLength = sizeof(USB_Descriptor_Endpoint_t),
.bDescriptorType = USB_DESCTYPE_ENDPOINT,
- .bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
+ .bEndpointAddress = ENDPOINT_ADDRESS_OUT_AUDIO,
.bmAttributes = 0x05, /* (bitmap) */
.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE,
.bInterval = 1,
@@ -1451,11 +1451,11 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
#if (NUM_USB_CHAN_IN == 0) || defined(UAC_FORCE_FEEDBACK_EP)
.Audio_Out_Fb_Endpoint =
{
- .bLength = 0x07,
- .bDescriptorType = USB_DESCTYPE_ENDPOINT,
- .bEndpointAddress = ENDPOINT_ADDRESS_IN_FEEDBACK,
+ .bLength = 0x07,
+ .bDescriptorType = USB_DESCTYPE_ENDPOINT,
+ .bEndpointAddress = ENDPOINT_ADDRESS_IN_FEEDBACK,
.bmAttributes = 17, /* (bitmap) */
- .wMaxPacketSize = 0x0004,
+ .wMaxPacketSize = 0x0004,
.bInterval = 4, /* Only values <= 1 frame (4) supported by MS */
},
#endif
@@ -1616,7 +1616,7 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2=
.wMaxPacketSize = 0x0004,
.bInterval = 4, /* Only values <= 1 frame (4) supported by MS */
},
-#endif
+#endif
#endif /* OUTPUT_FORMAT_COUNT > 2 */
#endif /* OUTPUT */
#if (NUM_USB_CHAN_IN > 0)
diff --git a/module_usb_audio/endpoint0/endpoint0.c b/module_usb_audio/endpoint0/endpoint0.c
index 7961c9fe..f3d4f51b 100755
--- a/module_usb_audio/endpoint0/endpoint0.c
+++ b/module_usb_audio/endpoint0/endpoint0.c
@@ -586,7 +586,7 @@ void Endpoint0(chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
* - Audio STREAMING interface request (In or Out)
* - Audio endpoint request (Audio 1.0 Sampling freq requests are sent to the endpoint)
*/
- if(((interfaceNum == 0) || (interfaceNum == 1) || (interfaceNum == 2))
+ if(((interfaceNum == 0) || (interfaceNum == 1) || (interfaceNum == 2))
#ifdef DFU
&& !DFU_mode_active
#endif
diff --git a/module_usb_audio/mixer/mixer.xc b/module_usb_audio/mixer/mixer.xc
index e882f71c..e251e401 100644
--- a/module_usb_audio/mixer/mixer.xc
+++ b/module_usb_audio/mixer/mixer.xc
@@ -362,10 +362,10 @@ static void mixer1(chanend c_host, chanend c_mix_ctl, chanend c_mixer2)
/* Request from audio()/mixer2() */
request = inuint(c_mixer2);
-
+
/* Forward on Request for data to decouple thread */
outuint(c_host, request);
-
+
/* Between request to decouple and respose ~ 400nS latency for interrupt to fire */
select
{
diff --git a/module_usb_audio/pdm_mics/pcm_pdm_mic.xc b/module_usb_audio/pdm_mics/pcm_pdm_mic.xc
index 18a10225..57e8b213 100644
--- a/module_usb_audio/pdm_mics/pcm_pdm_mic.xc
+++ b/module_usb_audio/pdm_mics/pcm_pdm_mic.xc
@@ -24,287 +24,54 @@ in port p_mclk = PORT_PDM_MCLK;
clock mclk = on tile[PDM_TILE]: XS1_CLKBLK_1;
clock pdmclk = on tile[PDM_TILE]: XS1_CLKBLK_3;
-
-on tile[0]:p_leds leds = DEFAULT_INIT;
-
-// Buttons
-in port p_buttons = on tile[0]: XS1_PORT_4A;
-
-enum buttons
+void user_pdm_process(frame_audio *audio)
{
- BUTTON_A=1<<0,
- BUTTON_B=1<<1,
- BUTTON_C=1<<2,
- BUTTON_D=1<<3
-};
+ static unsigned gain = 8*4096*8;
-
-static const one_meter_thirty_degrees[6] = {0, 3, 8, 11, 8, 3};
-
-
-
-static void set_dir(client interface led_button_if lb, unsigned dir, unsigned delay[]){
-
- for(unsigned i=0;i<13;i++)
- lb.set_led_brightness(i, 0);
- delay[0] = 5;
- for(unsigned i=0;i<6;i++)
- delay[i+1] = one_meter_thirty_degrees[(i - dir + 3 +6)%6];
-
- switch(dir){
- case 0:{
- lb.set_led_brightness(0, 255);
- lb.set_led_brightness(1, 255);
- break;
- }
- case 1:{
- lb.set_led_brightness(2, 255);
- lb.set_led_brightness(3, 255);
- break;
- }
- case 2:{
- lb.set_led_brightness(4, 255);
- lb.set_led_brightness(5, 255);
- break;
- }
- case 3:{
- lb.set_led_brightness(6, 255);
- lb.set_led_brightness(7, 255);
- break;
- }
- case 4:{
- lb.set_led_brightness(8, 255);
- lb.set_led_brightness(9, 255);
- break;
- }
- case 5:{
- lb.set_led_brightness(10, 255);
- lb.set_led_brightness(11, 255);
- break;
- }
+ for(unsigned i=0;i<7;i++)
+ {
+ unsigned output = audio->data[i][0];
+ audio->data[i][0] = ((uint64_t)output*gain)>>8;
}
}
-void lores_DAS_fixed(streaming chanend c_ds_output_0, streaming chanend c_ds_output_1,
- client interface led_button_if lb, chanend c_audio)
+void pdm_process(streaming chanend c_ds_output_0, streaming chanend c_ds_output_1, chanend c_audio)
{
unsigned buffer = 1; //buffer index
frame_audio audio[2]; //double buffered
memset(audio, sizeof(frame_audio), 0);
- int omni = 0;
+ decimator_init_audio_frame(c_ds_output_0, c_ds_output_1, buffer, audio);
-#define MAX_DELAY 128
-
- unsigned gain = 4096;
-#ifdef FORM_BEAM
- unsigned delay[7] = {0, 0, 0, 0, 0, 0, 0};
- int delay_buffer[MAX_DELAY][7];
- memset(delay_buffer, sizeof(int)*8*8, 0);
- unsigned delay_head = 0;
- unsigned dir = 0;
- set_dir(lb, dir, delay);
-#else
- int summed = 0;
-
- /* Light center LED, kill other LEDs */
- for(unsigned i=0;i<13;i++)
- lb.set_led_brightness(i, 0);
-
- lb.set_led_brightness(12, 255);
-
-#endif
unsafe
{
- c_ds_output_0 <: (frame_audio * unsafe)audio[0].data[0];
- c_ds_output_1 <: (frame_audio * unsafe)audio[0].data[4];
+ while(1)
+ {
+ frame_audio * current = decimator_get_next_audio_frame(c_ds_output_0, c_ds_output_1, buffer, audio);
- while(1){
-
- schkct(c_ds_output_0, 8);
- schkct(c_ds_output_1, 8);
-
- c_ds_output_0 <: (frame_audio * unsafe)audio[buffer].data[0];
- c_ds_output_1 <: (frame_audio * unsafe)audio[buffer].data[4];
-
- buffer = 1 - buffer;
-
-#ifdef FORM_BEAM
-
- //copy the current sample to the delay buffer
- for(unsigned i=0;i<7;i++)
- delay_buffer[delay_head][i] = audio[buffer].data[i][0];
-
- //light the LED for the current direction
-#endif
-
-
- int t;
-
- select {
- case lb.button_event():{
- unsigned button;
- e_button_state pressed;
- lb.get_button_event(button, pressed);
- if(pressed == BUTTON_PRESSED){
- switch(button){
- case 0:{
-
-#ifdef FORM_BEAM
- printf("beamed\n");
- if(omni)
- {
- omni = 0;
- lb.set_led_brightness(12, 0);
- set_dir(lb, dir, delay);
- }
- else
- {
- dir--;
- if(dir == -1)
- dir = 5;
- set_dir(lb, dir, delay);
- printf("dir %d\n", dir+1);
- for(unsigned i=0;i<7;i++)
- printf("delay[%d] = %d\n", i, delay[i]);
- printf("\n");
- }
-#else
- summed = !summed;
-
- if(summed)
- {
- for(unsigned i=0; i < 13; i++)
- lb.set_led_brightness(i, 255);
- }
- else
- {
- for(unsigned i=0;i<13;i++)
- lb.set_led_brightness(i, 0);
-
- lb.set_led_brightness(12, 255);
-
- }
-
-#endif
- break;
- }
- case 1:{
- gain = ((gain<<3) + gain)>>3;
- printf("gain: %d\n", gain);
- break;
- }
- case 2:{
- gain = ((gain<<3) - gain)>>3;
- printf("gain: %d\n", gain);
- break;
- }
- case 3:{
-#ifdef FORM_BEAM
- lb.set_led_brightness(12, 255);
-
- for(unsigned i=0;i<12;i++)
- lb.set_led_brightness(i, 0);
-#if 0
- dir++;
- if(dir == 6)
- dir = 0;
- set_dir(lb, dir, delay);
- printf("dir %d\n", dir+1);
- for(unsigned i=0;i<7;i++)
- printf("delay[%d] = %d\n", i, delay[i]);
- printf("\n");
- #endif
- printf("omni\n");
- omni = 1;
-#endif
- break;
- }
- }
- }
- break;
- }
- default:break;
- }
- int output = 0;
-
-#ifdef FORM_BEAM
- if(!omni)
- {
- /* Do the sum of the delayed mics */
- for(unsigned i=0;i<7;i++)
- output += delay_buffer[(delay_head - delay[i])%MAX_DELAY][i];
-
- output = ((uint64_t)output*gain)>>8;
-
- c_audio <: output;
+ user_pdm_process(current);
- /* Send out the individual mics */
- for(unsigned i=0;i<7;i++)
- {
- /* Apply gain and output samples */
- output = audio[buffer].data[i][0];
- output = ((uint64_t)output*gain)>>8;
- c_audio <: output;
- }
- }
- else
+ /* Send out the individual mics */
+ for(unsigned i=0;i<7;i++)
{
- /* Send out Mic[0] 8 times */
- output = audio[buffer].data[0][0];
- output <<=2;
-
- output = ((uint64_t)output*gain)>>8;
-
- for(unsigned i=0;i<8;i++)
- c_audio <: output;
- }
-#else
- if(summed)
- {
- /* Output summed */
- for(unsigned i=0;i<7;i++)
- output += audio[buffer].data[i][0];
-
- output = ((uint64_t)output*gain)>>8;
+ unsigned output = current->data[i][0];
c_audio <: output;
-
- /* Apply gain to all mics and send */
- for(unsigned i=0;i<7;i++)
- {
- output = audio[buffer].data[i][0];
- output = ((uint64_t)output*gain)>>8;
- c_audio <: output;
- }
}
- else
- {
- /* Send mic 0 out 8 times */
- for(unsigned i=0;i<8;i++)
- {
- /* Apply gain and output samples */
- output = audio[buffer].data[0][0];
- output = ((uint64_t)output*gain)>>8;
- c_audio <: output<<2;
- }
- }
-#endif
-
-#ifdef FORM_BEAM
- delay_head++;
- delay_head%=MAX_DELAY;
-#endif
+ c_audio <: 0;
}
}
}
+#define DF 1
+
+#define OUTPUT_SAMPLE_RATE (48000/DF)
+#define MASTER_CLOCK_FREQUENCY 24576000
+
//TODO make these not global
-int data_0[8*COEFS_PER_PHASE] = {0};
-int data_1[8*COEFS_PER_PHASE] = {0};
-
-
+int data_0[4*COEFS_PER_PHASE*DF] = {0};
+int data_1[4*COEFS_PER_PHASE*DF] = {0};
void pcm_pdm_mic(chanend c_pcm_out)
{
@@ -312,8 +79,6 @@ void pcm_pdm_mic(chanend c_pcm_out)
streaming chan c_ds_output_0, c_ds_output_1;
streaming chan c_buffer_mic0, c_buffer_mic1;
- interface led_button_if lb;
-
configure_clock_src(mclk, p_mclk);
configure_clock_src_divide(pdmclk, p_mclk, 2);
configure_port_clock_output(p_pdm_clk, pdmclk);
@@ -323,17 +88,15 @@ void pcm_pdm_mic(chanend c_pcm_out)
unsafe
{
- const int * unsafe p[1] = {fir_1_coefs[0]};
- decimator_config dc0 = {0, 1, 0, 0, 1, p, data_0, 0, {0,0, 0, 0}};
- decimator_config dc1 = {0, 1, 0, 0, 1, p, data_1, 0, {0,0, 0, 0}};
+ decimator_config dc0 = {FRAME_SIZE_LOG2, 1, 0, 0, DF, FIR_LUT(DF), data_0, 0, {0,0, 0, 0}};
+ decimator_config dc1 = {FRAME_SIZE_LOG2, 1, 0, 0, DF, FIR_LUT(DF), data_1, 0, {0,0, 0, 0}};
par
{
- button_and_led_server(lb, leds, p_buttons);
pdm_rx(p_pdm_mics, c_4x_pdm_mic_0, c_4x_pdm_mic_1);
decimate_to_pcm_4ch(c_4x_pdm_mic_0, c_ds_output_0, dc0);
decimate_to_pcm_4ch(c_4x_pdm_mic_1, c_ds_output_1, dc1);
- lores_DAS_fixed(c_ds_output_0, c_ds_output_1, lb, c_pcm_out);
+ pdm_process(c_ds_output_0, c_ds_output_1, c_pcm_out);
}
}
diff --git a/module_usb_audio/usb_buffer/decouple.xc b/module_usb_audio/usb_buffer/decouple.xc
index 86fa931f..ee279499 100644
--- a/module_usb_audio/usb_buffer/decouple.xc
+++ b/module_usb_audio/usb_buffer/decouple.xc
@@ -92,7 +92,7 @@ xc_ptr g_aud_to_host_dptr;
xc_ptr g_aud_to_host_rdptr;
xc_ptr g_aud_to_host_zeros;
int sampsToWrite = DEFAULT_FREQ/8000; /* HS assumed here. Expect to be junked during a overflow before stream start */
-int totalSampsToWrite = DEFAULT_FREQ/8000;
+int totalSampsToWrite = DEFAULT_FREQ/8000;
int aud_data_remaining_to_device = 0;
/* Audio over/under flow flags */
@@ -436,7 +436,7 @@ __builtin_unreachable();
/* Round up to nearest word - note, not needed for slotsize == 4! */
datasize = (datasize+3) & (~0x3);
-
+
/* Move wr ptr on by old packet length */
g_aud_to_host_wrptr += 4+datasize;
@@ -447,10 +447,10 @@ __builtin_unreachable();
}
g_aud_to_host_dptr = g_aud_to_host_wrptr + 4;
-
- /* Now calculate new packet length...
+
+ /* Now calculate new packet length...
* First get feedback val (ideally this would be syncronised)
- * Note, if customer hasn't applied a valid MCLK this could go to 0
+ * Note, if customer hasn't applied a valid MCLK this could go to 0
* we need to handle this gracefully */
asm volatile("ldw %0, dp[g_speed]" : "=r" (speed) :);
@@ -475,36 +475,36 @@ __builtin_unreachable();
space_left = aud_to_host_fifo_end - g_aud_to_host_wrptr;
}
- //if((space_left > 0) && (space_left < (totalSampsToWrite * g_numUsbChan_In * g_curSubSlot_In + 4)))
- if((space_left < (totalSampsToWrite * g_numUsbChan_In * g_curSubSlot_In + 4)))
+ //if((space_left > 0) && (space_left < (totalSampsToWrite * g_numUsbChan_In * g_curSubSlot_In + 4)))
+ if((space_left < (totalSampsToWrite * g_numUsbChan_In * g_curSubSlot_In + 4)))
{
- /* In pipe has filled its buffer - we need to overflow
+ /* In pipe has filled its buffer - we need to overflow
* Accept the packet, and throw away the oldest in the buffer */
-
+
/* Keep throwing away packets until buffer is at a nice level.. */
do
- {
+ {
unsigned rdPtr;
-
+
/* Read length of packet in buffer at read pointer */
unsigned datalength;
-
+
GET_SHARED_GLOBAL(rdPtr, g_aud_to_host_rdptr);
asm volatile("ldw %0, %1[0]":"=r"(datalength):"r"(rdPtr));
-
+
/* Round up datalength */
- datalength = ((datalength+3) & ~0x3) + 4;
-
- /* Move read pointer on by length */
+ datalength = ((datalength+3) & ~0x3) + 4;
+
+ /* Move read pointer on by length */
rdPtr += datalength;
if (rdPtr >= aud_to_host_fifo_end)
{
rdPtr = aud_to_host_fifo_start;
- }
-
+ }
+
space_left += datalength;
SET_SHARED_GLOBAL(g_aud_to_host_rdptr, rdPtr);
-
+
} while(space_left < (BUFF_SIZE_IN*4/2));
}
@@ -556,7 +556,7 @@ static inline void SetupZerosSendBuffer(XUD_ep aud_to_host_usb_ep, unsigned samp
/* Set IN stream packet size to something sensible. We expect the buffer to
* over flow and this to be reset */
SET_SHARED_GLOBAL(sampsToWrite, 0);
- SET_SHARED_GLOBAL(totalSampsToWrite, 0);
+ SET_SHARED_GLOBAL(totalSampsToWrite, 0);
mid *= g_numUsbChan_In * slotSize;
@@ -564,7 +564,7 @@ static inline void SetupZerosSendBuffer(XUD_ep aud_to_host_usb_ep, unsigned samp
/* Mark EP ready with the zero buffer. Note this will simply update the packet size
* if it is already ready */
-
+
/* g_aud_to_host_buffer is already set to g_aud_to_host_zeros */
GET_SHARED_GLOBAL(p, g_aud_to_host_buffer);
diff --git a/module_usb_audio/usb_buffer/usb_buffer.xc b/module_usb_audio/usb_buffer/usb_buffer.xc
index 2e6fdeb3..14289ac9 100644
--- a/module_usb_audio/usb_buffer/usb_buffer.xc
+++ b/module_usb_audio/usb_buffer/usb_buffer.xc
@@ -94,7 +94,7 @@ unsigned char fb_clocks[16];
* @param c_aud_fb chanend for feeback to xud
* @return void
*/
-void buffer(register chanend c_aud_out, register chanend c_aud_in,
+void buffer(register chanend c_aud_out, register chanend c_aud_in,
#if (NUM_USB_CHAN_IN == 0) || defined (UAC_FORCE_FEEDBACK_EP)
chanend c_aud_fb,
#endif
@@ -322,7 +322,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in,
int min, mid, max;
GetADCCounts(sampleFreq, min, mid, max);
g_speed = mid<<16;
-
+
}
/* Ideally we want to wait for handshake (and pass back up) here. But we cannot keep this
diff --git a/module_usb_midi/.xproject b/module_usb_midi/.xproject
index d80aba33..de455f2e 100644
--- a/module_usb_midi/.xproject
+++ b/module_usb_midi/.xproject
@@ -1 +1 @@
-sc_usb_audioXM-004720-SM
\ No newline at end of file
+sc_usb_audioXM-004720-SM6.13.0beta0
\ No newline at end of file
diff --git a/xpd.xml b/xpd.xml
index 4ed613a0..8f35985f 100644
--- a/xpd.xml
+++ b/xpd.xml
@@ -17,7 +17,7 @@
module_xassert
- module_queue
+ module_queue
MIDI
@@ -98,7 +98,9 @@
-
+
+
+
XM-004720-SM
XMOS