using stereo 8k

This commit is contained in:
Steven Dan
2026-01-16 17:02:41 +08:00
parent 027dac8fd1
commit 8416e609e4
5 changed files with 26 additions and 25 deletions

View File

@@ -115,6 +115,7 @@ set(APP_COMPILER_FLAGS_ex3d_stereo_8k ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-llib_ex3d_stereo_8k
-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

View File

@@ -1 +1 @@
xflash bin/factory/fact.xe --loader loader.o --upgrade 4 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 2 bin/ex3d_stereo_2k/app_usb_aud_phaten_gs_ex3d_stereo_2k.xe --upgrade 1 bin\ex3d_71_game\app_usb_aud_phaten_gs_ex3d_71_game.xe --upgrade 3 bin\ex3d_71_movie\app_usb_aud_phaten_gs_ex3d_71_movie.xe -o %1
xflash bin/factory/fact.xe --loader loader.o --upgrade 4 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 2 bin/ex3d_stereo_2k/app_usb_aud_phaten_gs_ex3d_stereo_2k.xe --upgrade 1 bin\ex3d_71_game\app_usb_aud_phaten_gs_ex3d_71_game.xe --upgrade 3 bin\ex3d_stereo_8k\app_usb_aud_phaten_gs_ex3d_stereo_8k.xe -o %1

View File

@@ -1,2 +1,2 @@
xflash --factory-version 15.3 --target-file src/core/PHATEN_GS.xn --upgrade 4 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 2 bin/ex3d_stereo_2k/app_usb_aud_phaten_gs_ex3d_stereo_2k.xe --upgrade 1 bin\ex3d_71_game\app_usb_aud_phaten_gs_ex3d_71_game.xe --upgrade 3 bin\ex3d_71_movie\app_usb_aud_phaten_gs_ex3d_71_movie.xe -o %1
xflash --factory-version 15.3 --target-file src/core/PHATEN_GS.xn --upgrade 4 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 2 bin/ex3d_stereo_2k/app_usb_aud_phaten_gs_ex3d_stereo_2k.xe --upgrade 1 bin\ex3d_71_game\app_usb_aud_phaten_gs_ex3d_71_game.xe --upgrade 3 bin\ex3d_stereo_8k\app_usb_aud_phaten_gs_ex3d_stereo_8k.xe -o %1

View File

@@ -163,8 +163,8 @@
#define PRODUCT_STR_A2 "XMOS V7.1 FPS"
#define PRODUCT_STR_A1 "XMOS V7.1 FPS"
#elif defined (STEREO_8K)
#define PRODUCT_STR_A2 "XMOS Stereo 8K"
#define PRODUCT_STR_A1 "XMOS Stereo 8K"
#define PRODUCT_STR_A2 "XMOS V7.1 3A"
#define PRODUCT_STR_A1 "XMOS V7.1 3A"
#else
#define PRODUCT_STR_A2 "XMOS Gold Sample (UAC2.0)"
#define PRODUCT_STR_A1 "XMOS Gold Sample (UAC1.0)"

View File

@@ -713,10 +713,10 @@ void update_button(unsigned char b)
#define GREEN_LED_PIN 1 // DNR LED (绿色LED) - bit 1 of leds2_val, 0b11111101
#define BLUE_LED_PIN 0 // 3D LED (蓝色LED) - bit 0 of leds2_val, 0b11111110
// 改动原因定义模式切换标志值用于在SPATIAL_GAME、SPATIAL_MOVIE、STEREO_2K、UAC1之间循环切换
// 改动原因定义模式切换标志值用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
#define MODE_STEREO_2K USB_IN_FLAG // 2 STEREO_2K模式标志
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
#define MODE_SPATIAL_MOVIE OPT_IN_FLAG // 3 SPATIAL_MOVIE模式标志
#define MODE_STEREO_8K OPT_IN_FLAG // 3 STEREO_8K模式标志
#define MODE_UAC1 UAC1_IN_FLAG // 4 UAC1模式标志
//Tile 1
@@ -743,10 +743,10 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
static unsigned game_mode_t1 = 0; // tile1上的模式值用于判断是否在无音效模式或UAC1模式
static unsigned is_no_effect_mode = 0; // 是否为无音效模式标志模式3
static unsigned is_uac1_mode = 0; // 是否为UAC1模式标志模式4
static unsigned actual_mode_for_led = 0; // UAC1模式下的实际模式值0=STEREO_2K, 1=SPATIAL_GAME, 2=SPATIAL_MOVIE用于LED闪烁
// 改动原因添加当前模式变量用于短按切换模式0=无音效1=STEREO_2K2=SPATIAL_GAME3=SPATIAL_MOVIE
static unsigned actual_mode_for_led = 0; // UAC1模式下的实际模式值0=STEREO_2K, 1=SPATIAL_GAME, 2=STEREO_8K用于LED闪烁
// 改动原因添加当前模式变量用于短按切换模式0=无音效1=STEREO_2K2=SPATIAL_GAME3=STEREO_8K
static unsigned current_mode_local = 0; // 当前模式值0-3
// 改动原因添加LED闪烁相关变量用于SPATIAL_MOVIE模式的蓝灯闪烁
// 改动原因添加LED闪烁相关变量用于STEREO_8K模式的蓝灯闪烁
static unsigned blink_counter = 0; // LED闪烁计数器每100ms递增
int ret = 0;
hwtimer_t timer = hwtimer_alloc();
@@ -801,7 +801,7 @@ 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; // 如果值无效重置为STEREO_2K
}
debug_printf("hid_button_task received audio_mode: %d (0=NO_EFFECT, 1=STEREO_2K, 2=SPATIAL_GAME, 3=SPATIAL_MOVIE)\n", current_mode_local);
debug_printf("hid_button_task received audio_mode: %d (0=NO_EFFECT, 1=STEREO_2K, 2=SPATIAL_GAME, 3=STEREO_8K)\n", current_mode_local);
// 改动原因根据接收到的模式值初始化LED和算法状态
if (current_mode_local == 0) {
@@ -832,14 +832,14 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
} else if (current_mode_local == 3) {
// SPATIAL_MOVIE模式:蓝灯闪烁,算法开启
// STEREO_8K模式:蓝灯闪烁,算法开启
audio_ex3d_onoff(1);
is_3d_on = A3D_ON;
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
leds2_val &= (~(1<<BLUE_LED_PIN)); // Blue LED on (初始状态)
leds1_val |= 1; // Red LED off
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
debug_printf("Mode 3 (SPATIAL_MOVIE): algorithm ON, BLUE LED blinking\n");
debug_printf("Mode 3 (STEREO_8K): algorithm ON, BLUE LED blinking\n");
}
port_out(p_leds, leds1_val);
port_out(p_leds2, leds2_val);
@@ -927,7 +927,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
} else {
is_stable = 1;
if (press_hold_cnt > 0) {
// 改动原因短按切换模式0=无音效1=STEREO_2K2=SPATIAL_GAME3=SPATIAL_MOVIE
// 改动原因短按切换模式0=无音效1=STEREO_2K2=SPATIAL_GAME3=STEREO_8K
// 循环切换0→1→2→3→0
#if 0
unsigned old_mode = current_mode_local;
@@ -962,7 +962,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
} else if (current_mode_local == 3) {
// SPATIAL_MOVIE模式:蓝灯闪烁,算法开启
// STEREO_8K模式:蓝灯闪烁,算法开启
audio_ex3d_onoff(1);
is_3d_on = A3D_ON;
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
@@ -970,7 +970,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
leds2_val &= (~(1<<BLUE_LED_PIN)); // Blue LED on
leds1_val |= 1; // Red LED off
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
debug_printf("Mode 3 (SPATIAL_MOVIE): algorithm ON, BLUE LED blinking\n");
debug_printf("Mode 3 (STEREO_8K): algorithm ON, BLUE LED blinking\n");
}
// 更新LED输出
@@ -997,7 +997,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
}
last_status = key_in;
// 改动原因SPATIAL_MOVIE模式下蓝灯闪烁每500ms切换一次状态
// 改动原因STEREO_8K模式下蓝灯闪烁每500ms切换一次状态
if (current_mode_local == 3) {
blink_counter++;
if (blink_counter >= 5) { // 5 * 100ms = 500ms
@@ -1094,7 +1094,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
saved_mode = 0;
#elif defined(SPATIAL_GAME)
saved_mode = 2;
#elif defined(SPATIAL_MOVIE)
#elif defined(STEREO_8K)
saved_mode = 3;
#endif
save_value(path, saved_mode);
@@ -1125,7 +1125,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
SetRoleSwitchFlag(MODE_SPATIAL_GAME);
break;
case 2:
SetRoleSwitchFlag(MODE_SPATIAL_MOVIE);
SetRoleSwitchFlag(MODE_STEREO_8K);
break;
case 3:
SetRoleSwitchFlag(MODE_STEREO_2K);
@@ -1153,7 +1153,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
}
#endif
#if defined(SPATIAL_MOVIE)
#if defined(STEREO_8K)
if ((saved_mode != 255) && (saved_mode != 3)) {
saved_mode = 3;
}
@@ -1168,7 +1168,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
debug_printf("Set new g_game_mode to %d\n", saved_mode);
chan_out_byte(cc_mic_level, 0xFC); // 音频模式传输命令
chan_out_byte(cc_mic_level, saved_mode); // 音频模式值0=无音效1=STEREO_2K2=SPATIAL_GAME3=SPATIAL_MOVIE
chan_out_byte(cc_mic_level, saved_mode); // 音频模式值0=无音效1=STEREO_2K2=SPATIAL_GAME3=STEREO_8K
debug_printf("Sent audio_mode %d to hid_button_task via cc_mic_level channel\n", saved_mode);
port_enable(p_ctrl_keys);
@@ -1209,7 +1209,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
GET_SHARED_GLOBAL(current_mode, g_game_mode);
// 改动原因Windows模式下只循环切换0→1→2→3→0不包括UAC1模式4
// 循环切换模式0(STEREO_2K) -> 1(SPATIAL_GAME) -> 2(SPATIAL_MOVIE) -> 3(无音效) -> 0
// 循环切换模式0(STEREO_2K) -> 1(SPATIAL_GAME) -> 2(STEREO_8K) -> 3(无音效) -> 0
unsigned new_mode;
unsigned mode_flag;
debug_printf("current_mode: %d\n", current_mode);
@@ -1225,15 +1225,15 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
mode_flag = MODE_SPATIAL_GAME;
debug_printf("Switching from STEREO_2K (1) to SPATIAL_GAME (2)\n");
} else if (current_mode == 2) {
// 当前是SPATIAL_GAME切换到SPATIAL_MOVIE
// 当前是SPATIAL_GAME切换到STEREO_8K
new_mode = 3;
mode_flag = MODE_SPATIAL_MOVIE; // SPATIAL_MOVIE模式使用SPATIAL_MOVIE固件
debug_printf("Switching from SPATIAL_GAME (2) to SPATIAL_MOVIE (3)\n");
mode_flag = MODE_STEREO_8K; // STEREO_8K模式使用STEREO_8K固件
debug_printf("Switching from SPATIAL_GAME (2) to STEREO_8K (3)\n");
} // 更新g_game_mode
else if(current_mode == 3) {
new_mode = 0;
mode_flag = MODE_STEREO_2K;
debug_printf("Switching from SPATIAL_MOVIE (3) to STEREO_2K (0)\n");
debug_printf("Switching from STEREO_8K (3) to STEREO_2K (0)\n");
}
// 改动原因保存新的模式值到flash的 "game_mode" 文件Windows模式专用