From 3300e061b09bff7f01fac82c4715fc418c154fb1 Mon Sep 17 00:00:00 2001 From: Steven Dan Date: Wed, 15 Apr 2026 22:38:28 +0800 Subject: [PATCH] update ex3d algos --- .../src/extensions/dsp.c | 86 ++++--------------- 1 file changed, 16 insertions(+), 70 deletions(-) diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c index a1a4f50..feb34fd 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c @@ -66,7 +66,6 @@ unsigned g_3d_on_off_t1 = A3D_OFF; // Default 3D off #endif #define DNR_ON 1 #define DNR_OFF 0 -unsigned g_dnr_on_off_t1 = DNR_OFF; // Default DNR off #define MUTE_ON 1 #define MUTE_OFF 0 unsigned g_mute_on_off_t1 = MUTE_ON; @@ -896,68 +895,33 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c if (current_mode_local > 3) current_mode_local = 0; debug_printf("hid_button_task received audio_mode: %d\n", current_mode_local); #if USE_EX3D == 1 - if (current_mode_local == 0) { + if ((current_mode_local == 0) || (current_mode_local == 1)) { // 无音效模式:关闭EX3D和EQ算法 audio_ex3d_set_onoff(0); - g_eq_enable = 0; -#if IR_SWITCHING_MODE is_3d_on = IR_OFF; -#else - is_3d_on = A3D_OFF; -#endif debug_printf("Mode 0: EX3D+EQ OFF\n"); - } else if (current_mode_local == 1) { - // 音乐模式:EX3D关闭,EQ开启 - audio_ex3d_set_onoff(0); - //g_eq_enable = 1; -#if IR_SWITCHING_MODE - is_3d_on = IR_OFF; -#else - is_3d_on = A3D_OFF; -#endif - debug_printf("Mode 1: MUSIC, EQ ON, EX3D OFF\n"); } else if (current_mode_local == 2) { -#if (F6_F7_FPS_UAC1 == 1) - // UAC1 Game模式: EX3D关闭, EQ开启, IR_OFF - //g_eq_enable = 1; + // 音乐模式:EX3D关闭,EQ开启 +#if (MODE_F3_F4_FPS_UAC2 == 1) + audio_ex3d_set_onoff(1); + is_3d_on = IR_GAME; +#endif +#if (MODE_F6_F7_FPS_UAC1 == 1) audio_ex3d_set_onoff(0); is_3d_on = IR_OFF; - debug_printf("Mode 2: UAC1 GAME, EQ ON, EX3D OFF (IR_OFF)\n"); -#else - // 游戏模式 (IR_GAME, stereo): SF index 0,EQ开启 - //g_eq_enable = 1; -#if IR_SWITCHING_MODE - audio_ex3d_set_sf(0); // SF 0 = STEREO GAME - is_3d_on = IR_GAME; -#else - is_3d_on = A3D_ON; -#endif - audio_ex3d_set_onoff(1); - debug_printf("Mode 2: GAME (IR_GAME) ON, sf=0, EQ ON\n"); #endif } else if (current_mode_local == 3) { -#if (F6_F7_FPS_UAC1 == 1) - // UAC1 AI71模式: EX3D开启, SF index 0 (stereo game), EQ开启, IR_GAME - //g_eq_enable = 1; - audio_ex3d_set_sf(0); // SF 0 = STEREO GAME - is_3d_on = IR_GAME; +#if (MODE_F3_F4_FPS_UAC2 == 1) audio_ex3d_set_onoff(1); - debug_printf("Mode 3: UAC1 AI71 (IR_GAME) ON, sf=0, EQ ON\n"); -#else - // AI7.1模式 (IR_7_1_GAME, 7.1): SF index 1,EQ开启 - g_eq_enable = 1; -#if IR_SWITCHING_MODE - audio_ex3d_set_sf(1); // SF 1 = SPATIAL GAME (7.1) is_3d_on = IR_7_1_GAME; -#else - is_3d_on = A3D_ON; #endif +#if (MODE_F6_F7_FPS_UAC1 == 1) audio_ex3d_set_onoff(1); - debug_printf("Mode 3: AI7.1 (IR_7_1_GAME) ON, sf=1, EQ ON\n"); + is_3d_on = IR_GAME; #endif } - SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on); #endif + } else if (tmp == 0xFD) { // 脚步增强按键发来的 expand gain 命令 // 必须先读取payload,无论是否启用EX3D @@ -974,24 +938,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c unsigned mon_sw = chan_in_word(cc_mic_level); SET_SHARED_GLOBAL(g_monitor_switch_t1, mon_sw); debug_printf("Monitor sync: sw=%d\n", mon_sw); - } else { - // Mic 静音状态命令(所有模式都需要处理) - switch (tmp) { - case MUTED_MIC: - SET_SHARED_GLOBAL(g_mute_on_off_t1, MUTE_ON); - debug_printf("MUTED_MIC\n"); - break; - - case UNMUTED_MIC: - SET_SHARED_GLOBAL(g_mute_on_off_t1, MUTE_OFF); - debug_printf("UNMUTED_MIC\n"); - break; - - default: - debug_printf("Unknown mic level command: 0x%02X\n", tmp); - break; - } - } + } } continue; @@ -1081,22 +1028,22 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c if (is_3d_on == IR_OFF) { audio_ex3d_set_onoff(0); current_mode_local = 0; - printf("3d off\n"); + debug_printf("3d off\n"); } else if (is_3d_on == IR_GAME) { audio_ex3d_set_sf(0); audio_ex3d_set_onoff(1); current_mode_local = 1; - printf("Stereo Game on (sf=0)\n"); + debug_printf("Stereo Game on (sf=0)\n"); } else if (is_3d_on == IR_7_1_GAME) { audio_ex3d_set_sf(1); audio_ex3d_set_onoff(1); current_mode_local = 2; - printf("3d Game on (sf=1)\n"); + debug_printf("3d Game on (sf=1)\n"); } else if (is_3d_on == IR_7_1_MOVIE) { audio_ex3d_set_sf(2); audio_ex3d_set_onoff(1); current_mode_local = 3; - printf("3d Movie on (sf=2)\n"); + debug_printf("3d Movie on (sf=2)\n"); } else { audio_ex3d_set_onoff(is_3d_on != IR_OFF); } @@ -1128,7 +1075,6 @@ void ex3d_task(){ if(ret != 0) { debug_printf("audio_ex3d_init() error:%d\n\r", ret); } - audio_ex3d_onoff(0); #if !UAC1_MODE Ex3dOffGain = -5;