diff --git a/examples/xua_lite_example/src/RPI_HAT_60QFN.xn b/examples/xua_lite_example/config/RPI_HAT_60QFN.xn similarity index 100% rename from examples/xua_lite_example/src/RPI_HAT_60QFN.xn rename to examples/xua_lite_example/config/RPI_HAT_60QFN.xn diff --git a/examples/xua_lite_example/src/xua_conf.h b/examples/xua_lite_example/config/xua_conf.h similarity index 100% rename from examples/xua_lite_example/src/xua_conf.h rename to examples/xua_lite_example/config/xua_conf.h diff --git a/examples/xua_lite_example/src/xud_conf.h b/examples/xua_lite_example/config/xud_conf.h similarity index 100% rename from examples/xua_lite_example/src/xud_conf.h rename to examples/xua_lite_example/config/xud_conf.h diff --git a/examples/xua_lite_example/src/audio_hub.xc b/examples/xua_lite_example/src/audio_hub.xc index 668ed033..bec765a1 100644 --- a/examples/xua_lite_example/src/audio_hub.xc +++ b/examples/xua_lite_example/src/audio_hub.xc @@ -8,6 +8,7 @@ #include "mic_array.h" #include "audio_config.h" #include "pdm_mic.h" +#include "xua_buffer_lite.h" //Globally declared for 64b alignment int mic_decimator_fir_data_array[8][THIRD_STAGE_COEFS_PER_STAGE * PDM_MAX_DECIMATION] = {{0}}; @@ -35,8 +36,6 @@ void AudioHub(server i2s_frame_callback_if i2s, mic_array_decimator_configure(c_ds_output, decimatorCount, dc); mic_array_init_time_domain_frame(c_ds_output, decimatorCount, buffer, mic_audio_frame, dc); - UserBufferManagementInit(); - // Used for debug //int saw = 0; @@ -63,12 +62,7 @@ void AudioHub(server i2s_frame_callback_if i2s, restart = I2S_NO_RESTART; // Keep on looping timer tmr; int t0, t1; tmr :> t0; - UserBufferManagement((unsigned *) raw_mics, (unsigned *) samples_out); - - //Transfer samples. Takes about 25 ticks - for (int i = 0; i < NUM_USB_CHAN_OUT; i++) c_audio :> samples_out[i]; - if (XUA_ADAPTIVE) c_audio :> clock_nudge; - for (int i = 0; i < NUM_USB_CHAN_IN; i++) c_audio <: raw_mics[i]; + XUA_transfer_samples(c_audio, (unsigned *) samples_out, (unsigned *) raw_mics, (clock_nudge, int)); //Grab mics. Takes about 200 ticks currently current = mic_array_get_next_time_domain_frame(c_ds_output, decimatorCount, buffer, mic_audio_frame, dc); diff --git a/examples/xua_lite_example/wscript b/examples/xua_lite_example/wscript index 7373dcd9..5d6de68c 100644 --- a/examples/xua_lite_example/wscript +++ b/examples/xua_lite_example/wscript @@ -9,7 +9,7 @@ def configure(conf): def build(bld): target_path = 'bin/' + bld.options.target - bld.env.TARGET_ARCH ='src/RPI_HAT_60QFN.xn' + bld.env.TARGET_ARCH ='config/RPI_HAT_60QFN.xn' bld.env.XSCOPE = bld.path.find_resource('config.xscope') depends_on = ['lib_xua','lib_i2s','lib_xud','lib_mic_array', 'lib_i2c'] #bld.env.XCC_FLAGS = ['-O2', '-g', '-Wall', '-fcmdline-buffer-bytes=512', '-report', '-DDISABLE_STAGE_C'] @@ -20,5 +20,7 @@ def build(bld): if bld.options.debug: bld.env.XCC_FLAGS.append('-DDEBUG') - source = bld.path.ant_glob(['src/**/*.xc', 'src/**/*.c']) - bld.program(source=source, depends_on=depends_on,target=target_path) + source = bld.path.ant_glob(['src/**/*.xc', 'src/**/*.c', + 'xua_lite/**/*.xc', 'xua_lite/**/*.c']) + includes = ['config'] + bld.program(source=source, includes=includes, depends_on=depends_on,target=target_path) diff --git a/examples/xua_lite_example/src/fifo_impl.h b/examples/xua_lite_example/xua_lite/rate_control/fifo_impl.h similarity index 100% rename from examples/xua_lite_example/src/fifo_impl.h rename to examples/xua_lite_example/xua_lite/rate_control/fifo_impl.h diff --git a/examples/xua_lite_example/src/fifo_types.h b/examples/xua_lite_example/xua_lite/rate_control/fifo_types.h similarity index 100% rename from examples/xua_lite_example/src/fifo_types.h rename to examples/xua_lite_example/xua_lite/rate_control/fifo_types.h diff --git a/examples/xua_lite_example/src/rate_controller.h b/examples/xua_lite_example/xua_lite/rate_control/rate_controller.h similarity index 100% rename from examples/xua_lite_example/src/rate_controller.h rename to examples/xua_lite_example/xua_lite/rate_control/rate_controller.h diff --git a/examples/xua_lite_example/src/rate_controller.xc b/examples/xua_lite_example/xua_lite/rate_control/rate_controller.xc similarity index 100% rename from examples/xua_lite_example/src/rate_controller.xc rename to examples/xua_lite_example/xua_lite/rate_control/rate_controller.xc diff --git a/examples/xua_lite_example/src/xua_buffer_lite.h b/examples/xua_lite_example/xua_lite/xua_buffer_lite.h similarity index 73% rename from examples/xua_lite_example/src/xua_buffer_lite.h rename to examples/xua_lite_example/xua_lite/xua_buffer_lite.h index 0436b29c..72e17396 100644 --- a/examples/xua_lite_example/src/xua_buffer_lite.h +++ b/examples/xua_lite_example/xua_lite/xua_buffer_lite.h @@ -22,4 +22,14 @@ unsafe void XUA_Buffer_lite(chanend c_ep0_out, chanend c_ep0_in, chanend c_aud_out, chanend ?c_feedback, chanend c_aud_in, chanend c_sof, in port p_for_mclk_count, streaming chanend c_audio_hub); [[combinable]] -unsafe void XUA_Buffer_lite2(server ep0_control_if i_ep0_ctl, chanend c_aud_out, chanend ?c_feedback, chanend c_aud_in, chanend c_sof, in port p_for_mclk_count, streaming chanend c_audio_hub); \ No newline at end of file +unsafe void XUA_Buffer_lite2(server ep0_control_if i_ep0_ctl, chanend c_aud_out, chanend ?c_feedback, chanend c_aud_in, chanend c_sof, in port p_for_mclk_count, streaming chanend c_audio_hub); + +static inline void XUA_transfer_samples(streaming chanend c_audio, + unsigned sampsFromUsbToAudio[], + unsigned sampsFromAudioToUsb[], + int &clock_nudge) { + //Transfer samples. Takes about 25 ticks + for (int i = 0; i < NUM_USB_CHAN_OUT; i++) c_audio :> sampsFromUsbToAudio[i]; + if (XUA_ADAPTIVE) c_audio :> clock_nudge; + for (int i = 0; i < NUM_USB_CHAN_IN; i++) c_audio <: sampsFromAudioToUsb[i]; +} diff --git a/examples/xua_lite_example/src/xua_buffer_lite.xc b/examples/xua_lite_example/xua_lite/xua_buffer_lite.xc similarity index 100% rename from examples/xua_lite_example/src/xua_buffer_lite.xc rename to examples/xua_lite_example/xua_lite/xua_buffer_lite.xc diff --git a/examples/xua_lite_example/src/xua_buffer_pack.h b/examples/xua_lite_example/xua_lite/xua_buffer_pack.h similarity index 100% rename from examples/xua_lite_example/src/xua_buffer_pack.h rename to examples/xua_lite_example/xua_lite/xua_buffer_pack.h