forked from PAWPAW-Mirror/lib_xua
Refactor: Separate XUA lite and app code
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
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];
|
||||
}
|
||||
Reference in New Issue
Block a user