@@ -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_2K, 2=SPATIAL_GAME, 3=SPATIAL_MOVIE )
static unsigned actual_mode_for_led = 0 ; // UAC1模式下的实际模式值( 0=STEREO_2K, 1=SPATIAL_GAME, 2=STEREO_8K ) , 用于LED闪烁
// 改动原因: 添加当前模式变量, 用于短按切换模式( 0=无音效, 1=STEREO_2K, 2=SPATIAL_GAME, 3=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_2K, 2=SPATIAL_GAME, 3=SPATIAL_MOVIE )
// 改动原因: 短按切换模式( 0=无音效, 1=STEREO_2K, 2=SPATIAL_GAME, 3=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_2K, 2=SPATIAL_GAME, 3=SPATIAL_MOVIE )
chan_out_byte ( cc_mic_level , saved_mode ) ; // 音频模式值( 0=无音效, 1=STEREO_2K, 2=SPATIAL_GAME, 3=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模式专用)