@@ -116,7 +116,6 @@ set(APP_COMPILER_FLAGS_ex3d_stereo_8k ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
|||||||
-llib_ex3d_stereo_8k
|
-llib_ex3d_stereo_8k
|
||||||
-DNUM_USB_CHAN_OUT=2
|
-DNUM_USB_CHAN_OUT=2
|
||||||
-DNUM_USB_CHAN_IN=2
|
-DNUM_USB_CHAN_IN=2
|
||||||
-DEQ_EN=1
|
|
||||||
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||||
-DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
|
-DSTREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS=16
|
||||||
-DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
|
-DSTREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS=16
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
xflash bin/factory/fact.xe --loader loader.o --upgrade 2 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 4 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
|
xflash bin/factory/fact.xe --loader loader.o --upgrade 2 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 4 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
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
xflash --factory-version 15.3 --target-file src/core/PHATEN_GS.xn --upgrade 2 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 4 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
|
xflash --factory-version 15.3 --target-file src/core/PHATEN_GS.xn --upgrade 2 bin\ex3d_UAC1\app_usb_aud_phaten_gs_ex3d_UAC1.xe --upgrade 4 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
|
||||||
|
|
||||||
|
|||||||
@@ -163,8 +163,8 @@
|
|||||||
#define PRODUCT_STR_A2 "XMOS V7.1 FPS"
|
#define PRODUCT_STR_A2 "XMOS V7.1 FPS"
|
||||||
#define PRODUCT_STR_A1 "XMOS V7.1 FPS"
|
#define PRODUCT_STR_A1 "XMOS V7.1 FPS"
|
||||||
#elif defined (STEREO_8K)
|
#elif defined (STEREO_8K)
|
||||||
#define PRODUCT_STR_A2 "XMOS V7.1 3A"
|
#define PRODUCT_STR_A2 "XMOS Stereo 8K"
|
||||||
#define PRODUCT_STR_A1 "XMOS V7.1 3A"
|
#define PRODUCT_STR_A1 "XMOS Stereo 8K"
|
||||||
#else
|
#else
|
||||||
#define PRODUCT_STR_A2 "XMOS Gold Sample (UAC2.0)"
|
#define PRODUCT_STR_A2 "XMOS Gold Sample (UAC2.0)"
|
||||||
#define PRODUCT_STR_A1 "XMOS Gold Sample (UAC1.0)"
|
#define PRODUCT_STR_A1 "XMOS Gold Sample (UAC1.0)"
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ void UserBufferManagement(unsigned sampsFromUsbToAudio[], unsigned sampsFromAudi
|
|||||||
static unsigned count = 0;
|
static unsigned count = 0;
|
||||||
if (count < 4800000) {
|
if (count < 4800000) {
|
||||||
count++;
|
count++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
GET_SHARED_GLOBAL(is_3d, g_3d_on_off_t1);
|
GET_SHARED_GLOBAL(is_3d, g_3d_on_off_t1);
|
||||||
@@ -727,7 +727,7 @@ void update_button(unsigned char b)
|
|||||||
// 改动原因:定义模式切换标志值,用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
|
// 改动原因:定义模式切换标志值,用于在SPATIAL_GAME、STEREO_8K、STEREO_2K、UAC1之间循环切换
|
||||||
#define MODE_STEREO_2K UAC1_IN_FLAG // 4 STEREO_2K模式标志
|
#define MODE_STEREO_2K UAC1_IN_FLAG // 4 STEREO_2K模式标志
|
||||||
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
||||||
#define MODE_STEREO_8K OPT_IN_FLAG // 3 STEREO_8K模式标志
|
#define MODE_SPATIAL_MOVIE OPT_IN_FLAG // 3 STEREO_8K模式标志
|
||||||
#define MODE_UAC1 USB_IN_FLAG // 2 UAC1模式标志
|
#define MODE_UAC1 USB_IN_FLAG // 2 UAC1模式标志
|
||||||
|
|
||||||
//Tile 1
|
//Tile 1
|
||||||
@@ -754,10 +754,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 game_mode_t1 = 0; // tile1上的模式值,用于判断是否在无音效模式或UAC1模式
|
||||||
static unsigned is_no_effect_mode = 0; // 是否为无音效模式标志(模式3)
|
static unsigned is_no_effect_mode = 0; // 是否为无音效模式标志(模式3)
|
||||||
static unsigned is_uac1_mode = 0; // 是否为UAC1模式标志(模式4)
|
static unsigned is_uac1_mode = 0; // 是否为UAC1模式标志(模式4)
|
||||||
static unsigned actual_mode_for_led = 0; // UAC1模式下的实际模式值(0=STEREO_2K, 1=SPATIAL_GAME, 2=STEREO_8K),用于LED闪烁
|
static unsigned actual_mode_for_led = 0; // UAC1模式下的实际模式值(0=STEREO_2K, 1=SPATIAL_GAME, 2=SPATIAL_MOVIE),用于LED闪烁
|
||||||
// 改动原因:添加当前模式变量,用于短按切换模式(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=STEREO_8K)
|
// 改动原因:添加当前模式变量,用于短按切换模式(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=SPATIAL_MOVIE)
|
||||||
static unsigned current_mode_local = 0; // 当前模式值(0-3)
|
static unsigned current_mode_local = 0; // 当前模式值(0-3)
|
||||||
// 改动原因:添加LED闪烁相关变量,用于STEREO_8K模式的蓝灯闪烁
|
// 改动原因:添加LED闪烁相关变量,用于SPATIAL_MOVIE模式的蓝灯闪烁
|
||||||
static unsigned blink_counter = 0; // LED闪烁计数器(每100ms递增)
|
static unsigned blink_counter = 0; // LED闪烁计数器(每100ms递增)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
hwtimer_t timer = hwtimer_alloc();
|
hwtimer_t timer = hwtimer_alloc();
|
||||||
@@ -813,7 +813,8 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
|||||||
if (current_mode_local > 3) {
|
if (current_mode_local > 3) {
|
||||||
current_mode_local = 0; // 如果值无效,重置为STEREO_2K
|
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=STEREO_8K)\n", current_mode_local);
|
|
||||||
|
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);
|
||||||
|
|
||||||
// 改动原因:根据接收到的模式值初始化LED和算法状态
|
// 改动原因:根据接收到的模式值初始化LED和算法状态
|
||||||
if (current_mode_local == 0) {
|
if (current_mode_local == 0) {
|
||||||
@@ -844,14 +845,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
|
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
||||||
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
|
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
|
||||||
} else if (current_mode_local == 3) {
|
} else if (current_mode_local == 3) {
|
||||||
// STEREO_8K模式:蓝灯闪烁,算法开启
|
// SPATIAL_MOVIE模式:蓝灯闪烁,算法开启
|
||||||
audio_ex3d_onoff(1);
|
audio_ex3d_onoff(1);
|
||||||
is_3d_on = A3D_ON;
|
is_3d_on = A3D_ON;
|
||||||
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
||||||
leds2_val &= (~(1<<BLUE_LED_PIN)); // Blue LED on (初始状态)
|
leds2_val &= (~(1<<BLUE_LED_PIN)); // Blue LED on (初始状态)
|
||||||
leds1_val |= 1; // Red LED off
|
leds1_val |= 1; // Red LED off
|
||||||
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
||||||
debug_printf("Mode 3 (STEREO_8K): algorithm ON, BLUE LED blinking\n");
|
debug_printf("Mode 3 (SPATIAL_MOVIE): algorithm ON, BLUE LED blinking\n");
|
||||||
}
|
}
|
||||||
port_out(p_leds, leds1_val);
|
port_out(p_leds, leds1_val);
|
||||||
port_out(p_leds2, leds2_val);
|
port_out(p_leds2, leds2_val);
|
||||||
@@ -941,7 +942,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
|||||||
} else {
|
} else {
|
||||||
is_stable = 1;
|
is_stable = 1;
|
||||||
if (press_hold_cnt > 0) {
|
if (press_hold_cnt > 0) {
|
||||||
// 改动原因:短按切换模式(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=STEREO_8K)
|
// 改动原因:短按切换模式(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=SPATIAL_MOVIE)
|
||||||
// 循环切换:0→1→2→3→0
|
// 循环切换:0→1→2→3→0
|
||||||
#if UAC1_MODE
|
#if UAC1_MODE
|
||||||
unsigned old_mode = current_mode_local;
|
unsigned old_mode = current_mode_local;
|
||||||
@@ -976,7 +977,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
|
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
||||||
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
|
debug_printf("Mode 2 (SPATIAL_GAME): algorithm ON, BLUE LED\n");
|
||||||
} else if (current_mode_local == 3) {
|
} else if (current_mode_local == 3) {
|
||||||
// STEREO_8K模式:蓝灯闪烁,算法开启
|
// SPATIAL_MOVIE模式:蓝灯闪烁,算法开启
|
||||||
audio_ex3d_onoff(1);
|
audio_ex3d_onoff(1);
|
||||||
is_3d_on = A3D_ON;
|
is_3d_on = A3D_ON;
|
||||||
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on);
|
||||||
@@ -984,7 +985,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
|
leds2_val &= (~(1<<BLUE_LED_PIN)); // Blue LED on
|
||||||
leds1_val |= 1; // Red LED off
|
leds1_val |= 1; // Red LED off
|
||||||
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
leds2_val |= (1<<GREEN_LED_PIN); // Green LED off
|
||||||
debug_printf("Mode 3 (STEREO_8K): algorithm ON, BLUE LED blinking\n");
|
debug_printf("Mode 3 (SPATIAL_MOVIE): algorithm ON, BLUE LED blinking\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新LED输出
|
// 更新LED输出
|
||||||
@@ -1012,7 +1013,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c
|
|||||||
}
|
}
|
||||||
last_status = key_in;
|
last_status = key_in;
|
||||||
|
|
||||||
// 改动原因:STEREO_8K模式下,蓝灯闪烁(每500ms切换一次状态)
|
// 改动原因:SPATIAL_MOVIE模式下,蓝灯闪烁(每500ms切换一次状态)
|
||||||
if (current_mode_local == 3) {
|
if (current_mode_local == 3) {
|
||||||
blink_counter++;
|
blink_counter++;
|
||||||
if (blink_counter >= 5) { // 5 * 100ms = 500ms
|
if (blink_counter >= 5) { // 5 * 100ms = 500ms
|
||||||
@@ -1108,7 +1109,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
saved_mode = 0;
|
saved_mode = 0;
|
||||||
#elif defined(SPATIAL_GAME)
|
#elif defined(SPATIAL_GAME)
|
||||||
saved_mode = 2;
|
saved_mode = 2;
|
||||||
#elif defined(STEREO_8K)
|
#elif defined(SPATIAL_MOVIE)
|
||||||
saved_mode = 3;
|
saved_mode = 3;
|
||||||
#endif
|
#endif
|
||||||
save_value(path, saved_mode);
|
save_value(path, saved_mode);
|
||||||
@@ -1144,10 +1145,10 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
SetRoleSwitchFlag(MODE_STEREO_2K);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SetRoleSwitchFlag(MODE_SPATIAL_GAME);
|
SetRoleSwitchFlag(MODE_SPATIAL_MOVIE);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SetRoleSwitchFlag(MODE_STEREO_8K);
|
SetRoleSwitchFlag(MODE_SPATIAL_MOVIE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
SetRoleSwitchFlag(MODE_STEREO_2K);
|
||||||
@@ -1174,7 +1175,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(STEREO_8K)
|
#if defined(SPATIAL_MOVIE)
|
||||||
if ((saved_mode != 255) && (saved_mode != 3)) {
|
if ((saved_mode != 255) && (saved_mode != 3)) {
|
||||||
saved_mode = 3;
|
saved_mode = 3;
|
||||||
}
|
}
|
||||||
@@ -1187,7 +1188,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);
|
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, 0xFC); // 音频模式传输命令
|
||||||
chan_out_byte(cc_mic_level, saved_mode); // 音频模式值(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=STEREO_8K)
|
chan_out_byte(cc_mic_level, saved_mode); // 音频模式值(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=SPATIAL_MOVIE)
|
||||||
debug_printf("Sent audio_mode %d to hid_button_task via cc_mic_level channel\n", saved_mode);
|
debug_printf("Sent audio_mode %d to hid_button_task via cc_mic_level channel\n", saved_mode);
|
||||||
|
|
||||||
port_enable(p_ctrl_keys);
|
port_enable(p_ctrl_keys);
|
||||||
@@ -1227,7 +1228,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
unsigned current_mode = chan_in_word(c_hidSendData);
|
unsigned current_mode = chan_in_word(c_hidSendData);
|
||||||
|
|
||||||
// 改动原因:Windows模式下只循环切换0→1→2→3→0(不包括UAC1模式4)
|
// 改动原因:Windows模式下只循环切换0→1→2→3→0(不包括UAC1模式4)
|
||||||
// 循环切换模式:0(STEREO_2K) -> 1(SPATIAL_GAME) -> 2(STEREO_8K) -> 3(无音效) -> 0
|
// 循环切换模式:0(STEREO_2K) -> 1(SPATIAL_GAME) -> 2(SPATIAL_MOVIE) -> 3(无音效) -> 0
|
||||||
unsigned new_mode;
|
unsigned new_mode;
|
||||||
unsigned mode_flag;
|
unsigned mode_flag;
|
||||||
debug_printf("current_mode: %d\n", current_mode);
|
debug_printf("current_mode: %d\n", current_mode);
|
||||||
@@ -1242,15 +1243,15 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
mode_flag = MODE_SPATIAL_GAME;
|
mode_flag = MODE_SPATIAL_GAME;
|
||||||
debug_printf("Switching from STEREO_2K (1) to SPATIAL_GAME (2)\n");
|
debug_printf("Switching from STEREO_2K (1) to SPATIAL_GAME (2)\n");
|
||||||
} else if (current_mode == 2) {
|
} else if (current_mode == 2) {
|
||||||
// 当前是SPATIAL_GAME,切换到STEREO_8K
|
// 当前是SPATIAL_GAME,切换到SPATIAL_MOVIE
|
||||||
new_mode = 3;
|
new_mode = 3;
|
||||||
mode_flag = MODE_STEREO_8K; // STEREO_8K模式使用STEREO_8K固件
|
mode_flag = MODE_SPATIAL_MOVIE; // SPATIAL_MOVIE模式使用SPATIAL_MOVIE固件
|
||||||
debug_printf("Switching from SPATIAL_GAME (2) to STEREO_8K (3)\n");
|
debug_printf("Switching from SPATIAL_GAME (2) to SPATIAL_MOVIE (3)\n");
|
||||||
} // 更新g_game_mode
|
} // 更新g_game_mode
|
||||||
else if(current_mode == 3) {
|
else if(current_mode == 3) {
|
||||||
new_mode = 0;
|
new_mode = 0;
|
||||||
mode_flag = MODE_STEREO_2K;
|
mode_flag = MODE_STEREO_2K;
|
||||||
debug_printf("Switching from STEREO_8K (3) to STEREO_2K (0)\n");
|
debug_printf("Switching from SPATIAL_MOVIE (3) to STEREO_2K (0)\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 改动原因:保存新的模式值到flash的 "game_mode" 文件(Windows模式专用)
|
// 改动原因:保存新的模式值到flash的 "game_mode" 文件(Windows模式专用)
|
||||||
@@ -1262,7 +1263,7 @@ void button_task(chanend_t c_hidSendData, chanend_t cc_mic_level, chanend_t c_ua
|
|||||||
// 改动原因:判断是否需要切换固件,mode 0和mode 1都使用STEREO_2K固件,不需要reboot
|
// 改动原因:判断是否需要切换固件,mode 0和mode 1都使用STEREO_2K固件,不需要reboot
|
||||||
// 只有在需要切换固件时才reboot,同一固件内的模式切换(如0<->1)只更新模式和算法状态
|
// 只有在需要切换固件时才reboot,同一固件内的模式切换(如0<->1)只更新模式和算法状态
|
||||||
#if !UAC1_MODE
|
#if !UAC1_MODE
|
||||||
|
|
||||||
if (new_mode != 1) {
|
if (new_mode != 1) {
|
||||||
// 改动原因:需要切换固件,执行reboot
|
// 改动原因:需要切换固件,执行reboot
|
||||||
debug_printf("Set role switch flag: 0x%04X, switching firmware, rebooting...\n", mode_flag);
|
debug_printf("Set role switch flag: 0x%04X, switching firmware, rebooting...\n", mode_flag);
|
||||||
|
|||||||
Reference in New Issue
Block a user