add macro for all modes
This commit is contained in:
@@ -54,88 +54,83 @@ set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os
|
||||
|
||||
LINK_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/../../lib_dnr/lib_dnr)
|
||||
|
||||
set(APP_COMPILER_FLAGS_ex3d_UAC1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=0
|
||||
-DAUDIO_CLASS=1
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-DAIZIP_DNR=0 #-ldnr_50ms
|
||||
-llib_ex3d_stereo_2k
|
||||
-DNUM_USB_CHAN_OUT=2
|
||||
-DNUM_USB_CHAN_OUT_FS=2
|
||||
-DNUM_USB_CHAN_IN=0
|
||||
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_INPUT_3_RESOLUTION_BITS=16
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DINPUT_VOLUME_CONTROL=0
|
||||
-DUAC1_MODE=1
|
||||
-DOUTPUT_VOLUME_CONTROL=0
|
||||
-DXUA_DFU_EN=0
|
||||
-DSTEREO_2K
|
||||
-DHID_CONTROLS=0)
|
||||
set(APP_COMPILER_FLAGS_f1_music_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=192000
|
||||
-DF1_MUSIC_UAC2=1
|
||||
#-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
#-ldnr_50ms
|
||||
#-llib_ex3d_all
|
||||
-DEQ_EN=1
|
||||
#-DEX3D_SF_NUM=3
|
||||
-DNUM_USB_CHAN_OUT=2
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
#-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DINPUT_VOLUME_CONTROL=1
|
||||
-DOUTPUT_VOLUME_CONTROL=1
|
||||
#-DDEBUG_MEMORY_LOG_ENABLED=1
|
||||
-DXUA_DFU_EN=1
|
||||
#-DIR_SWITCHING_MODE
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
|
||||
#set(APP_COMPILER_FLAGS_ex3d_stereo_2k ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
# -DI2S_CHANS_ADC=2
|
||||
# #-DAUDIO_CLASS=1
|
||||
# -DMIN_FREQ=48000
|
||||
# -DMAX_FREQ=48000
|
||||
# -DUSE_EX3D
|
||||
# -DMIXER=0
|
||||
# -DAIZIP_DNR=0 #-ldnr_50ms
|
||||
# -llib_ex3d_stereo_2k
|
||||
# -DNUM_USB_CHAN_OUT=2
|
||||
# -DNUM_USB_CHAN_IN=2
|
||||
# -DEQ_EN=1
|
||||
# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_3_RESOLUTION_BITS=16
|
||||
# -DNUM_EX3D_CHAN_OUT=2
|
||||
# -DINPUT_VOLUME_CONTROL=1
|
||||
# -DOUTPUT_VOLUME_CONTROL=1
|
||||
# -DXUA_DFU_EN=1
|
||||
# -DSTEREO_2K
|
||||
# -DHID_CONTROLS=1)
|
||||
#
|
||||
#set(APP_COMPILER_FLAGS_ex3d_stereo_8k ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
# -DI2S_CHANS_ADC=0
|
||||
# -DMIN_FREQ=48000
|
||||
# -DMAX_FREQ=48000
|
||||
# -DUSE_EX3D
|
||||
# -DMIXER=0
|
||||
# -DAIZIP_DNR=0 #-ldnr_50ms
|
||||
# -llib_ex3d_stereo_8k
|
||||
# -DNUM_USB_CHAN_OUT=2
|
||||
# -DNUM_USB_CHAN_IN=2
|
||||
# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_2_RESOLUTION_BITS=16
|
||||
# -DSTREAM_FORMAT_INPUT_3_RESOLUTION_BITS=16
|
||||
# -DNUM_EX3D_CHAN_OUT=2
|
||||
# -DXUA_DFU_EN=1
|
||||
# -DINPUT_VOLUME_CONTROL=1
|
||||
# -DOUTPUT_VOLUME_CONTROL=1
|
||||
# -DSTEREO_8K
|
||||
# -DHID_CONTROLS=1)
|
||||
|
||||
|
||||
## IR switching mode
|
||||
set(APP_COMPILER_FLAGS_ex3d_71_all ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
set(APP_COMPILER_FLAGS_f3_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DUSE_EX3D=1
|
||||
-DF3_F4_FPS_UAC2=1
|
||||
-DMIXER=0
|
||||
-ldnr_50ms
|
||||
-llib_ex3d_all
|
||||
-DEQ_EN=1
|
||||
-DDNR_ENABLE=1
|
||||
-DEX3D_SF_NUM=3
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DINPUT_VOLUME_CONTROL=1
|
||||
-DOUTPUT_VOLUME_CONTROL=1
|
||||
#-DDEBUG_MEMORY_LOG_ENABLED=1
|
||||
-DXUA_DFU_EN=1
|
||||
-DIR_SWITCHING_MODE
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUAC1_MODE=1
|
||||
-DF5_MUSIC_UAC1=1
|
||||
#-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-ldnr_11ms
|
||||
-DDNR_ENABLE=1
|
||||
#-llib_ex3d_all
|
||||
-DEQ_EN=1
|
||||
#-DEX3D_SF_NUM=3
|
||||
-DNUM_USB_CHAN_OUT=2
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
#-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DINPUT_VOLUME_CONTROL=1
|
||||
-DOUTPUT_VOLUME_CONTROL=1
|
||||
#-DDEBUG_MEMORY_LOG_ENABLED=1
|
||||
-DXUA_DFU_EN=1
|
||||
#-DIR_SWITCHING_MODE
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DAUDIO_CLASS=1
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D=1
|
||||
-DF6_F7_FPS_UAC1=1
|
||||
-DMIXER=0
|
||||
-ldnr_50ms
|
||||
-llib_ex3d_all
|
||||
@@ -151,72 +146,6 @@ set(APP_COMPILER_FLAGS_ex3d_71_all ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DXUA_DFU_EN=1
|
||||
-DIR_SWITCHING_MODE
|
||||
-DHID_CONTROLS=1)
|
||||
set(APP_COMPILER_FLAGS_ex3d_71_game ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-DAIZIP_DNR=0 #-ldnr_50ms
|
||||
-llib_ex3d_game
|
||||
-DEQ_EN=1
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DINPUT_VOLUME_CONTROL=1
|
||||
-DOUTPUT_VOLUME_CONTROL=1
|
||||
#-DDEBUG_MEMORY_LOG_ENABLED=1
|
||||
-DXUA_DFU_EN=1
|
||||
-DSPATIAL_GAME
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_COMPILER_FLAGS_ex3d_71_music ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-DAIZIP_DNR=0 #-ldnr_50ms
|
||||
-llib_ex3d_music
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DSPATIAL_MUSIC
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_COMPILER_FLAGS_ex3d_71_movie ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-DAIZIP_DNR=0 #-ldnr_50ms
|
||||
-DEQ_EN=1
|
||||
-llib_ex3d_movie
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DXUA_DFU_EN=1
|
||||
-DSPATIAL_MOVIE
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_COMPILER_FLAGS_ex3d_71_drama ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DI2S_CHANS_ADC=2
|
||||
-DMIN_FREQ=48000
|
||||
-DMAX_FREQ=48000
|
||||
-DUSE_EX3D
|
||||
-DMIXER=0
|
||||
-DAIZIP_DNR=0 #-ldnr_50ms
|
||||
-llib_ex3d_drama
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DNUM_EX3D_CHAN_OUT=2
|
||||
-DMIN_VOLUME=0xE000
|
||||
-DSPATIAL_DRAMA
|
||||
-DHID_CONTROLS=1)
|
||||
|
||||
set(APP_INCLUDES src src/core src/extensions ../../lib_dnr/lib_dnr)
|
||||
set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "xc_ptr.h"
|
||||
#include "user_uart.h"
|
||||
#include "debug_print.h"
|
||||
#include "roleswitchflag.h"
|
||||
|
||||
#if defined (CODEC_AIC3204)
|
||||
#include "eq_flash_storage.h"
|
||||
@@ -102,10 +103,21 @@ unsigned g_request_gain_mode = -1; // -1表示无请求,0=低阻,1=高阻
|
||||
// 改动原因:支持8种滤波器模式(0-7),与g_filter_map[8]数组定义一致
|
||||
unsigned g_request_filter_mode = -1; // -1表示无请求,0-7=滤波器模式
|
||||
unsigned g_request_game_mode = -1;
|
||||
|
||||
#if EQ_EN
|
||||
extern unsigned g_request_eq_mode, g_new_eq_mode;
|
||||
#endif
|
||||
|
||||
// tile 1, 3d_on_off
|
||||
#define LED_ON 0
|
||||
#define LED_OFF 1
|
||||
#define S3D_ON LED_ON
|
||||
#define S3D_OFF LED_OFF
|
||||
|
||||
unsigned g_led_color = LED_OFF;
|
||||
unsigned g_led_blink_count = 0;
|
||||
unsigned g_led_blink_is_white = 0;
|
||||
|
||||
#define LED_OFF 0x7F // 修改:清除最高位,只保留低7位
|
||||
#define LED_RED 0b01011111 // 修改:清除最高位,只保留低7位
|
||||
#define LED_GREEN 0b01101111 // 修改:清除最高位,只保留低7am
|
||||
@@ -114,9 +126,13 @@ extern unsigned g_request_eq_mode, g_new_eq_mode;
|
||||
#define LED_CYAN (LED_GREEN & LED_BLUE)
|
||||
#define LED_PURPLE (LED_RED & LED_BLUE)
|
||||
#define LED_WHITE (LED_RED & LED_GREEN & LED_BLUE)
|
||||
unsigned g_led_color = LED_OFF;
|
||||
unsigned g_led_blink_count = 0;
|
||||
unsigned g_led_blink_is_white = 0;
|
||||
enum { OS_WIN = 1, OS_OTHERS = 2 };
|
||||
// 改动原因:定义模式切换标志值,用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
|
||||
#define MODE_STEREO_2K UAC1_IN_FLAG // 4 STEREO_2K模式标志
|
||||
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
||||
#define MODE_SPATIAL_MOVIE OPT_IN_FLAG // 3 STEREO_8K模式标志
|
||||
#define MODE_UAC1 USB_IN_FLAG // 2 UAC1模式标志
|
||||
|
||||
|
||||
|
||||
/* All on tile[0] */
|
||||
@@ -489,8 +505,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
}
|
||||
debug_printf("Switch to saved mode: %d, device will restart.\n", saved_mode);
|
||||
delay_milliseconds(200);
|
||||
device_reboot();
|
||||
while (1);
|
||||
// device_reboot();
|
||||
// while (1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -578,7 +594,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
#if IR_SWITCHING_MODE
|
||||
mode_flag = IR_GAME;
|
||||
#else
|
||||
mode_flag = MODE_STEREO_2K;
|
||||
// mode_flag = MODE_STEREO_2K;
|
||||
#endif
|
||||
debug_printf("Switching from STEREO_2K (0) to STEREO_2K (1)\n");
|
||||
} else if (current_mode == 1) {
|
||||
@@ -587,7 +603,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
#if IR_SWITCHING_MODE
|
||||
mode_flag = IR_7_1_GAME;
|
||||
#else
|
||||
mode_flag = MODE_SPATIAL_GAME;
|
||||
// mode_flag = MODE_SPATIAL_GAME;
|
||||
#endif
|
||||
debug_printf("Switching from STEREO_2K (1) to SPATIAL_GAME (2)\n");
|
||||
} else if (current_mode == 2) {
|
||||
@@ -596,7 +612,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
#if IR_SWITCHING_MODE
|
||||
mode_flag = IR_7_1_MOVIE;
|
||||
#else
|
||||
mode_flag = MODE_SPATIAL_MOVIE; // SPATIAL_MOVIE模式使用SPATIAL_MOVIE固件
|
||||
// mode_flag = MODE_SPATIAL_MOVIE; // SPATIAL_MOVIE模式使用SPATIAL_MOVIE固件
|
||||
#endif
|
||||
debug_printf("Switching from SPATIAL_GAME (2) to SPATIAL_MOVIE (3)\n");
|
||||
} // 更新g_game_mode
|
||||
@@ -605,7 +621,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
#if IR_SWITCHING_MODE
|
||||
mode_flag = IR_OFF;
|
||||
#else
|
||||
mode_flag = MODE_STEREO_2K;
|
||||
// mode_flag = MODE_STEREO_2K;
|
||||
#endif
|
||||
debug_printf("Switching from SPATIAL_MOVIE (3) to STEREO_2K (0)\n");
|
||||
}
|
||||
@@ -634,8 +650,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
||||
debug_printf("Set role switch flag: 0x%04X, switching firmware, rebooting...\n", mode_flag);
|
||||
SetRoleSwitchFlag(mode_flag);
|
||||
delay_milliseconds(20);
|
||||
device_reboot();
|
||||
while (1);
|
||||
// device_reboot();
|
||||
// while (1);
|
||||
} else {
|
||||
|
||||
debug_printf("Same firmware mode (0x%04X), updating mode and algorithm state without reboot\n", mode_flag);
|
||||
@@ -1233,10 +1249,12 @@ void AudioHwInit()
|
||||
|
||||
sw_pll_fixed_clock(MCLK_48);
|
||||
|
||||
p_ctl_mute <: 1; // pull high AMP ctl_mute pin to unmute
|
||||
|
||||
|
||||
// Wait for power supply to come up.
|
||||
delay_milliseconds(200);
|
||||
p_ctl_mute <: 1;
|
||||
|
||||
}
|
||||
|
||||
/* Configures the external audio hardware for the required sample frequency */
|
||||
@@ -1246,5 +1264,6 @@ void AudioHwConfig(unsigned samFreq, unsigned mClk, unsigned dsdMode, unsigned s
|
||||
{
|
||||
sw_pll_fixed_clock(mClk);
|
||||
}
|
||||
p_ctl_mute <: 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,9 +18,11 @@
|
||||
void dnr_exchange_buffer(int32_t *data);
|
||||
void buffer_exchange(chanend_t c_data, unsigned sampsFromUsbToAudio[], unsigned sampsFromAudioToUsb[]) {
|
||||
chan_out_buf_word (c_data, sampsFromUsbToAudio, 2);
|
||||
chan_out_buf_word (c_data, sampsFromAudioToUsb, 2);
|
||||
chan_in_buf_word (c_data , sampsFromUsbToAudio, 2);
|
||||
#if DNR_ENABLE == 1
|
||||
chan_out_buf_word (c_data, sampsFromAudioToUsb, 2);
|
||||
chan_in_buf_word (c_data , sampsFromAudioToUsb, 2);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -33,16 +35,20 @@ void dsp_main (chanend_t c_data) {
|
||||
unsigned ch[1] = {2};
|
||||
while (1) {
|
||||
chan_in_buf_word (c_data , play_input, 2) ;
|
||||
chan_in_buf_word (c_data , mic_input, 2) ;
|
||||
chan_out_buf_word (c_data , play_output, I2S_CHANS_DAC);
|
||||
#if DNR_ENABLE == 1
|
||||
chan_in_buf_word (c_data , mic_input, 2) ;
|
||||
chan_out_buf_word (c_data , mic_output, I2S_CHANS_ADC);
|
||||
#endif
|
||||
write_to_ring_buffer(0, play_input[0]);
|
||||
write_to_ring_buffer(1, play_input[1]);
|
||||
play_output[0] = read_from_ring_buffer(2);
|
||||
play_output[1] = read_from_ring_buffer(3);
|
||||
#if DNR_ENABLE == 1
|
||||
dnr_exchange_buffer(mic_input);
|
||||
mic_output[0] = mic_input[0];
|
||||
mic_output[1] = mic_input[1];
|
||||
#endif
|
||||
// dnr_exchange_buffer((int32_t *)mic_input, (int32_t *)mic_output);
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "xc_ptr.h"
|
||||
#include "debug_print.h"
|
||||
|
||||
#if DNR_ENABLE == 1
|
||||
unsigned g_dsp_eof = 0;
|
||||
void dnr_exchange_buffer(int32_t *data) {
|
||||
static unsigned buff_index = 0;
|
||||
@@ -50,3 +51,5 @@ void dnr_dsp_proc_task(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -20,6 +20,7 @@
|
||||
//for AGC
|
||||
//static agc_stage_ctx_t DWORD_ALIGNED agc_stage_state = {};
|
||||
|
||||
#if DNR_ENABLE == 1
|
||||
static unsigned __attribute__((aligned (4))) dsp_dnr_frame_buf[BUF_SLOT_NUM][DSP_CH_NUM][DNR_DSP_FRAME_SIZE];
|
||||
|
||||
unsigned sample_in_buf_slot=0;
|
||||
@@ -93,3 +94,5 @@ void start_dsp_processing(void)
|
||||
|
||||
AI_DNR_Processing((int32_t *)&dsp_dnr_frame_buf[processing_buf_slot][0][0]);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -36,7 +36,6 @@ extern unsigned g_force_request_eq_mode_change, g_force_eq_mode_change;
|
||||
extern void device_reboot(void);
|
||||
unsigned g_ex3d_key_verified = 0;
|
||||
int32_t sys_vol = 0;
|
||||
enum { OS_WIN = 1, OS_OTHERS = 2 };
|
||||
unsigned g_mic_vol_cmd_pending = 0;
|
||||
|
||||
chanend_t uc_ex3d_to_ubm, uc_eq_data;
|
||||
@@ -52,11 +51,6 @@ chanend_t uc_ex3d_to_ubm, uc_eq_data;
|
||||
// tile 1, mic level
|
||||
unsigned g_mic_level_t1;
|
||||
|
||||
// tile 1, 3d_on_off
|
||||
#define LED_ON 0
|
||||
#define LED_OFF 1
|
||||
#define S3D_ON LED_ON
|
||||
#define S3D_OFF LED_OFF
|
||||
|
||||
#if defined(IR_SWITCHING_MODE)
|
||||
enum {IR_OFF=0, IR_GAME=1, IR_MUSIC=2, IR_MOVIE=3, IR_7_1_GAME=4, IR_7_1_MUSIC=5, IR_7_1_MOVIE=6};
|
||||
@@ -120,12 +114,10 @@ void key_sender(chanend_t c)
|
||||
void UserBufferManagementInit(unsigned sampFreq)
|
||||
{
|
||||
(void)sampFreq;
|
||||
#if USE_EX3D == 1
|
||||
memset(ubm_ingress, 0, sizeof(ubm_ingress));
|
||||
memset(ubm_egress, 0, sizeof(ubm_egress));
|
||||
#if AIZIP_DNR == 1
|
||||
memset(ubm_micIn, 0, sizeof(ubm_micIn));
|
||||
memset(ubm_micOut, 0, sizeof(ubm_micOut));
|
||||
#endif
|
||||
|
||||
assert(uc_ex3d_to_ubm);
|
||||
while( !m_hThread ){}
|
||||
debug_printf("[UserBufferManagementInit] samfreq:%d\n\r", sampFreq);
|
||||
@@ -135,6 +127,7 @@ void UserBufferManagementInit(unsigned sampFreq)
|
||||
} else {
|
||||
debug_printf("audio_ex3d_change_parameter() success\n\r");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
float fLevel[NUM_USB_CHAN_OUT] = {0,};
|
||||
enum {UBM_A3D_OFF=0, UBM_A3D_VON=1, UBM_A3D_ON=2};
|
||||
@@ -146,6 +139,7 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
|
||||
uint32_t is_dnr;
|
||||
uint32_t is_mute;
|
||||
|
||||
#if USE_EX3D == 1
|
||||
#if defined(SPATIAL_DRAMA) || defined(SPATIAL_GAME) || defined(SPATIAL_MOVIE) || defined(SPATIAL_MUSIC)
|
||||
// 6ch version
|
||||
unsigned tmp[8]={0,0,0,0,0,0,0,0}, downmix[8]={0,0,0,0,0,0,0,0};
|
||||
@@ -222,26 +216,6 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
|
||||
// Zero out C (2) and LFE (3) since they are mixed into L/R
|
||||
ubm_egress[2][frame_index] = 0;
|
||||
ubm_egress[3][frame_index] = 0;
|
||||
#endif
|
||||
#if (NUM_USB_CHAN_IN == 2)
|
||||
|
||||
#if AIZIP_DNR == 1
|
||||
//exchange mic in and mic out data
|
||||
ubm_micIn[0][frame_index] = sampsFromAudioToUsb[1];
|
||||
ubm_micIn[1][frame_index] = sampsFromAudioToUsb[1];
|
||||
if (is_dnr == DNR_ON) { // extract the DNR data when it is on
|
||||
sampsFromAudioToUsb[0] = ubm_micOut[0][frame_index];
|
||||
sampsFromAudioToUsb[1] = ubm_micOut[0][frame_index];
|
||||
} else {
|
||||
if (is_mute == MUTE_ON) {
|
||||
sampsFromAudioToUsb[0] = 0;
|
||||
sampsFromAudioToUsb[1] = 0;
|
||||
} else {
|
||||
// DNR off
|
||||
sampsFromAudioToUsb[0] = sampsFromAudioToUsb[1];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
for(int ch=0;ch<DSP_MIXER_OUTPUT_CHANNEL_COUNT;ch++) {
|
||||
@@ -257,15 +231,11 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
|
||||
chan_out_buf_word(uc_ex3d_to_ubm, (const uint32_t *)ubm_egress, UBM_TO_EX3D_CHANS * DSP_BLOCK_LENGTH);
|
||||
// And get a stereo frames worth of data back from the mixer process
|
||||
chan_in_buf_word(uc_ex3d_to_ubm, (uint32_t *)ubm_ingress, EX3D_TO_UBM_CHANS * DSP_BLOCK_LENGTH);
|
||||
#if AIZIP_DNR == 1
|
||||
chan_out_buf_word(uc_dsp_to_dnr_t1, (const uint32_t *)(&ubm_micIn[0]), DSP_BLOCK_LENGTH);
|
||||
chan_out_buf_word(uc_dsp_to_dnr_t1, (const uint32_t *)(&ubm_micIn[1]), DSP_BLOCK_LENGTH);
|
||||
chan_in_buf_word(uc_dsp_to_dnr_t1, (uint32_t *)(&ubm_micOut[0]), DSP_BLOCK_LENGTH);
|
||||
chan_in_buf_word(uc_dsp_to_dnr_t1, (uint32_t *)(&ubm_micOut[1]), DSP_BLOCK_LENGTH);
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
#if DNR_ENABLE == 1
|
||||
buffer_exchange(uc_eq_data, sampsFromUsbToAudio, sampsFromAudioToUsb);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -350,6 +320,7 @@ void hid_receive_task_in_c(unsigned char * RcvData, unsigned * SendData)
|
||||
|
||||
SendData[idx++] = command_code;
|
||||
switch (cmdItem) {
|
||||
#if USE_EX3D == 1
|
||||
case CMD_OPEN:
|
||||
debug_printf("CMD_OPEN\r\n");
|
||||
break;
|
||||
@@ -747,6 +718,7 @@ void hid_receive_task_in_c(unsigned char * RcvData, unsigned * SendData)
|
||||
|
||||
default:
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -844,11 +816,6 @@ void update_button(unsigned char b)
|
||||
#endif
|
||||
|
||||
|
||||
// 改动原因:定义模式切换标志值,用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
|
||||
#define MODE_STEREO_2K UAC1_IN_FLAG // 4 STEREO_2K模式标志
|
||||
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
||||
#define MODE_SPATIAL_MOVIE OPT_IN_FLAG // 3 STEREO_8K模式标志
|
||||
#define MODE_UAC1 USB_IN_FLAG // 2 UAC1模式标志
|
||||
|
||||
extern uint8_t mic_vol;
|
||||
//Tile 1
|
||||
@@ -893,13 +860,13 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
tmp = chan_in_word(cc_mic_level);
|
||||
debug_printf("event_mic_vol received: 0x%02X\n", tmp);
|
||||
|
||||
#if USE_EX3D == 1
|
||||
if (tmp == 0xFC) {
|
||||
// 音频模式命令:来自 audiohw.xc button_task 的模式切换
|
||||
current_mode_local = chan_in_word(cc_mic_level);
|
||||
if (current_mode_local > 3) current_mode_local = 0;
|
||||
debug_printf("hid_button_task received audio_mode: %d\n", current_mode_local);
|
||||
|
||||
|
||||
if (current_mode_local == 0) {
|
||||
// 无音效模式:灯灭,算法关闭
|
||||
audio_ex3d_onoff(0);
|
||||
@@ -956,6 +923,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
continue;
|
||||
|
||||
@@ -980,6 +948,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
event_uac_vol:
|
||||
{
|
||||
sys_vol = chan_in_word(c_uac_vol);
|
||||
#if USE_EX3D == 1
|
||||
sys_vol = sys_vol * (-1);
|
||||
int32_t threshold = Ex3dLimiterThreshold + (sys_vol + Ex3dOnGain + Ex3dExpandGain);
|
||||
|
||||
@@ -988,6 +957,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
debug_printf("Set CMD_LMT_THRESHOLD : %d\r\n", threshold);
|
||||
}
|
||||
debug_printf("sys_vol:%d\n", sys_vol);
|
||||
#endif
|
||||
}
|
||||
continue;
|
||||
|
||||
@@ -995,6 +965,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
{
|
||||
hwtimer_set_trigger_time(timer, hwtimer_get_time(timer) + KEY_POLLING_INTERVAL);
|
||||
|
||||
#if USE_EX3D == 1
|
||||
// 检查 host app 是否通过 HID 改变了音场状态
|
||||
uint32_t host_app_sf;
|
||||
GET_SHARED_GLOBAL(host_app_sf, g_3d_on_off_t1);
|
||||
@@ -1019,6 +990,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
||||
}
|
||||
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -1063,6 +1035,7 @@ void ex3d_task(){
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef USE_EX3D == 1
|
||||
#if defined(SPATIAL_DRAMA)
|
||||
#define TD_DATA_BUFFER_ELEMENTS SPATIAL_71_DRAMA_v090h225_left_DATA_BUFFER_ELEMENTS
|
||||
#elif defined(SPATIAL_GAME)
|
||||
@@ -1327,3 +1300,5 @@ int dsp_worker_tile(chanend_t c_dsp_to_ex3d, int worker_id){
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -419,6 +419,27 @@ void usb_audio_io(chanend ?c_aud_in,
|
||||
#define USER_MAIN_CORES
|
||||
#endif
|
||||
|
||||
//extern unsafe client interface i2c_master_if i_i2c_client;
|
||||
//extern unsafe client interface i2c_master_if i_i2c_client_t0;
|
||||
extern void dsp_core0(void);
|
||||
extern void board_setup();
|
||||
extern void dsp_main (chanend c_data);
|
||||
extern void SetEqDataChan (chanend c);
|
||||
|
||||
extern int dsp_worker_tile(chanend c_dsp_to_ex3d, int worker_id);
|
||||
//extern int dsp_worker_tile_1(chanend c_dsp_to_ex3d, int worker_id);
|
||||
extern void ex3d_task();
|
||||
extern void hid_button_task(chanend cc_mic_level, chanend c_hid, chanend c_hidSendData, chanend c_uac_vol);
|
||||
extern void AudioHwRemote(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol);
|
||||
extern void dnr_dsp_proc_task(void);
|
||||
|
||||
extern unsafe chanend uc_dsp_to_ex3d[DSP_WORKER_COUNT];
|
||||
extern unsafe chanend uc_dsp_to_dnr_t1;
|
||||
extern unsafe chanend uc_key_to_ubm_t0;
|
||||
extern unsafe chanend uc_audiohw;
|
||||
extern void key_sender(chanend c_key);
|
||||
extern void key_receiver(chanend c_key);
|
||||
|
||||
|
||||
/* Main for USB Audio Applications */
|
||||
int main()
|
||||
@@ -510,9 +531,59 @@ int main()
|
||||
|
||||
USER_MAIN_DECLARATIONS
|
||||
|
||||
chan c_dsp_to_ex3d[DSP_WORKER_COUNT];
|
||||
chan cc_mic_level;
|
||||
chan c_key; chan c_hidSendData;
|
||||
chan c_hidRcvData;
|
||||
chan c_eq_data;
|
||||
chan c_uac_vol;
|
||||
|
||||
par
|
||||
{
|
||||
USER_MAIN_CORES
|
||||
on tile[1] : {
|
||||
par {
|
||||
unsafe {
|
||||
hid_button_task(cc_mic_level, c_hidRcvData, c_hidSendData, c_uac_vol);
|
||||
}
|
||||
#if USE_EX3D == 1
|
||||
par(int i = 0; i < DSP_WORKER_COUNT; i++)
|
||||
dsp_worker_tile(c_dsp_to_ex3d[i], i);
|
||||
|
||||
unsafe {
|
||||
SetEqDataChan(c_eq_data);
|
||||
key_sender(c_key);
|
||||
for (int i = 0; i < DSP_WORKER_COUNT; i++)
|
||||
uc_dsp_to_ex3d[i] = (chanend)c_dsp_to_ex3d[i];
|
||||
ex3d_task();
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
on tile[0] : {
|
||||
par {
|
||||
{
|
||||
#if USE_EX3D == 1
|
||||
unsafe { key_receiver(c_key); }
|
||||
#endif
|
||||
AudioHwRemote(c_hidSendData, cc_mic_level, c_uac_vol);
|
||||
}
|
||||
}
|
||||
}
|
||||
#if EQ_EN == 1
|
||||
on tile[0] : {
|
||||
{
|
||||
dsp_core0();
|
||||
}
|
||||
}
|
||||
on tile[0] : { dsp_main(c_eq_data); }
|
||||
#endif
|
||||
|
||||
#if DNR_ENABLE == 1
|
||||
on tile[0] : { dnr_dsp_proc_task(); }
|
||||
#endif
|
||||
|
||||
#if (((XUA_SYNCMODE == XUA_SYNCMODE_SYNC && !XUA_USE_SW_PLL) || XUA_SPDIF_RX_EN || XUA_ADAT_RX_EN))
|
||||
on tile[PLL_REF_TILE]: PllRefPinTask(i_pll_ref, p_pll_ref);
|
||||
|
||||
@@ -10,124 +10,9 @@
|
||||
#include <platform.h>
|
||||
#include "DSBuild.h"
|
||||
|
||||
//extern unsafe client interface i2c_master_if i_i2c_client;
|
||||
//extern unsafe client interface i2c_master_if i_i2c_client_t0;
|
||||
extern void interface_saver(client interface i2c_master_if i);
|
||||
extern void dsp_core0(void);
|
||||
extern void board_setup();
|
||||
extern void dsp_main (chanend c_data);
|
||||
extern void SetEqDataChan (chanend c);
|
||||
|
||||
/* I2C interface ports */
|
||||
extern port p_scl;
|
||||
extern port p_sda;
|
||||
|
||||
extern int dsp_worker_tile(chanend c_dsp_to_ex3d, int worker_id);
|
||||
//extern int dsp_worker_tile_1(chanend c_dsp_to_ex3d, int worker_id);
|
||||
extern void ex3d_task();
|
||||
extern void hid_button_task(chanend cc_mic_level, chanend c_hid, chanend c_hidSendData, chanend c_uac_vol);
|
||||
extern void AudioHwRemote(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol);
|
||||
extern void dnr_dsp_proc_task(void);
|
||||
|
||||
//XUA_DFU_EN do i need it?
|
||||
|
||||
// tile[0]
|
||||
// 3 DSP processors
|
||||
// XUD_Main
|
||||
// Core USB audio task, buffering, USB etc
|
||||
// Endpoint 0 Core
|
||||
// i2c_master
|
||||
// DFUHandler???
|
||||
|
||||
|
||||
//IAP??
|
||||
|
||||
//tile[1]:
|
||||
// ex3d
|
||||
// hid + buttons
|
||||
// 4 DSP processors
|
||||
// usb_audio_io
|
||||
//
|
||||
|
||||
extern unsafe chanend uc_dsp_to_ex3d[DSP_WORKER_COUNT];
|
||||
extern unsafe chanend uc_dsp_to_dnr_t1;
|
||||
extern unsafe chanend uc_key_to_ubm_t0;
|
||||
extern unsafe chanend uc_audiohw;
|
||||
extern void key_sender(chanend c_key);
|
||||
extern void key_receiver(chanend c_key);
|
||||
|
||||
#if AIZIP_DNR == 1
|
||||
#define USER_MAIN_DECLARATIONS \
|
||||
chan c_dsp_to_ex3d[DSP_WORKER_COUNT]; \
|
||||
chan cc_dsp_in; chan cc_dsp_eof; chan cc_mic_level; chan c;
|
||||
|
||||
#define USER_MAIN_CORES on tile[1]: {\
|
||||
par\
|
||||
{\
|
||||
ex3d_task();\
|
||||
par(int i=0;i<DSP_WORKER_COUNT;i++) dsp_worker_tile(c_dsp_to_ex3d[i], i);\
|
||||
unsafe\
|
||||
{\
|
||||
uc_audiohw = (chanend) c;\
|
||||
for(int i=0;i<DSP_WORKER_COUNT;i++)\
|
||||
uc_dsp_to_ex3d[i] = (chanend) c_dsp_to_ex3d[i];\
|
||||
uc_dsp_to_dnr_t1 = (chanend) cc_dsp_in;\
|
||||
}\
|
||||
hid_button_task(cc_mic_level, c_hid, c_hidSendData);\
|
||||
}\
|
||||
}\
|
||||
on tile[0]: {\
|
||||
par\
|
||||
{\
|
||||
unsafe\
|
||||
{\
|
||||
board_setup();\
|
||||
} \
|
||||
AudioHwRemote(c);\
|
||||
dnr_dsp_buffer_task(cc_dsp_in, cc_dsp_eof, cc_mic_level);\
|
||||
dnr_dsp_proc_task(cc_dsp_eof);\
|
||||
}\
|
||||
}
|
||||
#else
|
||||
|
||||
#define USER_MAIN_DECLARATIONS \
|
||||
chan c_dsp_to_ex3d[DSP_WORKER_COUNT]; chan cc_mic_level; chan c_key; chan c_hidSendData; chan c_hidRcvData; chan c_eq_data; chan c_uac_vol;
|
||||
|
||||
#define USER_MAIN_CORES on tile[1]: {\
|
||||
par\
|
||||
{\
|
||||
hid_button_task(cc_mic_level, c_hidRcvData, c_hidSendData, c_uac_vol);\
|
||||
par(int i=0;i<DSP_WORKER_COUNT;i++) dsp_worker_tile(c_dsp_to_ex3d[i], i);\
|
||||
unsafe\
|
||||
{\
|
||||
SetEqDataChan(c_eq_data); \
|
||||
key_sender(c_key);\
|
||||
for(int i=0;i<DSP_WORKER_COUNT;i++)\
|
||||
uc_dsp_to_ex3d[i] = (chanend) c_dsp_to_ex3d[i];\
|
||||
ex3d_task();\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
on tile[0]: {\
|
||||
par\
|
||||
{\
|
||||
{ \
|
||||
unsafe\
|
||||
{\
|
||||
key_receiver(c_key);\
|
||||
}\
|
||||
AudioHwRemote(c_hidSendData, cc_mic_level, c_uac_vol);\
|
||||
} \
|
||||
}\
|
||||
}\
|
||||
on tile[0]: {\
|
||||
{ dsp_core0(); } \
|
||||
}\
|
||||
on tile[0]: {dsp_main(c_eq_data); } \
|
||||
on tile[0]: {dnr_dsp_proc_task(); } \
|
||||
|
||||
|
||||
#endif // AIZIP_DNR
|
||||
|
||||
#endif // __XC__
|
||||
|
||||
|
||||
Reference in New Issue
Block a user