update mode update
This commit is contained in:
@@ -61,6 +61,7 @@ set(APP_COMPILER_FLAGS_f1_music_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC
|
|||||||
-DF1_MUSIC_UAC2=1
|
-DF1_MUSIC_UAC2=1
|
||||||
#-DUSE_EX3D
|
#-DUSE_EX3D
|
||||||
-DMIXER=0
|
-DMIXER=0
|
||||||
|
-DUAC2_MODE=1
|
||||||
#-ldnr_50ms
|
#-ldnr_50ms
|
||||||
#-llib_ex3d_all
|
#-llib_ex3d_all
|
||||||
-DEQ_EN=1
|
-DEQ_EN=1
|
||||||
@@ -84,6 +85,7 @@ set(APP_COMPILER_FLAGS_f3_f4_fps_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
|||||||
-DUSE_EX3D=1
|
-DUSE_EX3D=1
|
||||||
-DF3_F4_FPS_UAC2=1
|
-DF3_F4_FPS_UAC2=1
|
||||||
-DMIXER=0
|
-DMIXER=0
|
||||||
|
-DUAC2_MODE=1
|
||||||
-ldnr_50ms
|
-ldnr_50ms
|
||||||
-llib_ex3d_all
|
-llib_ex3d_all
|
||||||
-DEQ_EN=1
|
-DEQ_EN=1
|
||||||
@@ -129,6 +131,7 @@ set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
|||||||
-DAUDIO_CLASS=1
|
-DAUDIO_CLASS=1
|
||||||
-DMIN_FREQ=48000
|
-DMIN_FREQ=48000
|
||||||
-DMAX_FREQ=48000
|
-DMAX_FREQ=48000
|
||||||
|
-DUAC1_MODE=1
|
||||||
-DUSE_EX3D=1
|
-DUSE_EX3D=1
|
||||||
-DF6_F7_FPS_UAC1=1
|
-DF6_F7_FPS_UAC1=1
|
||||||
-DMIXER=0
|
-DMIXER=0
|
||||||
|
|||||||
@@ -128,12 +128,10 @@ unsigned g_led_blink_is_white = 0;
|
|||||||
#define LED_WHITE (LED_RED & LED_GREEN & LED_BLUE)
|
#define LED_WHITE (LED_RED & LED_GREEN & LED_BLUE)
|
||||||
enum { OS_WIN = 1, OS_OTHERS = 2 };
|
enum { OS_WIN = 1, OS_OTHERS = 2 };
|
||||||
// 改动原因:定义模式切换标志值,用于在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_F3_F4_FPS_UAC2 COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
||||||
#define MODE_SPATIAL_GAME COAX_IN_FLAG //1 SPATIAL_GAME模式标志
|
#define MODE_F5_MUSIC_UAC1 UAC1_IN_FLAG // 2 UAC1模式标志
|
||||||
#define MODE_SPATIAL_MOVIE OPT_IN_FLAG // 3 STEREO_8K模式标志
|
#define MODE_F1_MUSIC_UAC2 OPT_IN_FLAG // 3 STEREO_8K模式标志
|
||||||
#define MODE_UAC1 USB_IN_FLAG // 2 UAC1模式标志
|
#define MODE_F6_F7_FPS_UAC1 USB_IN_FLAG // 4 STEREO_2K模式标志
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* All on tile[0] */
|
/* All on tile[0] */
|
||||||
port p_scl = PORT_I2C_SCL;
|
port p_scl = PORT_I2C_SCL;
|
||||||
@@ -268,6 +266,8 @@ extern unsigned g_host_os; // 1 -> Windows, 2 -> Others
|
|||||||
extern unsigned g_mute_on_off_t0;
|
extern unsigned g_mute_on_off_t0;
|
||||||
extern unsigned g_uac_vol;
|
extern unsigned g_uac_vol;
|
||||||
|
|
||||||
|
extern void device_reboot(void);
|
||||||
|
|
||||||
void save_value(unsigned char * unsafe path, unsigned char value);
|
void save_value(unsigned char * unsafe path, unsigned char value);
|
||||||
unsigned char load_value(unsigned char * unsafe path);
|
unsigned char load_value(unsigned char * unsafe path);
|
||||||
|
|
||||||
@@ -354,6 +354,67 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
|||||||
// LED控制上下文
|
// LED控制上下文
|
||||||
led_control_t led_ctx;
|
led_control_t led_ctx;
|
||||||
|
|
||||||
|
|
||||||
|
// Windows模式:从 "game_mode" 加载(模式值 0-3)
|
||||||
|
// UAC1模式:从 "uac1_mode" 加载(等效模式值 0-2)
|
||||||
|
unsigned /* char */ saved_mode;
|
||||||
|
unsigned char saved_uac1_mode = 0;
|
||||||
|
unsigned char path[] = "game_mode";
|
||||||
|
|
||||||
|
unsigned host_os;
|
||||||
|
GET_SHARED_GLOBAL(host_os, g_host_os);
|
||||||
|
saved_mode = load_value(path);
|
||||||
|
debug_printf("Loaded game_mode from flash: %d\n", saved_mode);
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(UAC1_MODE)
|
||||||
|
delay_milliseconds(300);
|
||||||
|
if (saved_mode == 255) {
|
||||||
|
saved_mode = 0;
|
||||||
|
save_value(path, saved_mode);
|
||||||
|
debug_printf("Saved game_mode to flash: %d\n", saved_mode);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (saved_mode == 255) {
|
||||||
|
// 如果文件不存在,根据编译模式设置默认值
|
||||||
|
#if defined(MODE_F1_MUSIC_UAC2)
|
||||||
|
saved_mode = 0;
|
||||||
|
#elif defined(MODE_F3_F4_FPS_UAC2)
|
||||||
|
saved_mode = 2;
|
||||||
|
#endif
|
||||||
|
save_value(path, saved_mode);
|
||||||
|
debug_printf("Saved game_mode to flash: %d\n", saved_mode);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
printf("host_os: %d\n", host_os);
|
||||||
|
|
||||||
|
#if UAC1_MODE == 1
|
||||||
|
if (host_os == OS_WIN) {
|
||||||
|
printf("Detected Windows OS (OS_WIN) saved_mode: %d\n", saved_mode);
|
||||||
|
unsigned flag = (saved_mode == 0) ? MODE_F1_MUSIC_UAC2 : MODE_F3_F4_FPS_UAC2;
|
||||||
|
SetRoleSwitchFlag(flag);
|
||||||
|
device_reboot();
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (saved_mode != 0) {
|
||||||
|
SetRoleSwitchFlag(MODE_F6_F7_FPS_UAC1);
|
||||||
|
device_reboot();
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
g_windows_detect_done = 1;
|
||||||
|
|
||||||
|
|
||||||
|
SET_SHARED_GLOBAL(g_game_mode, saved_mode);
|
||||||
|
debug_printf("Set new g_game_mode to %d\n", saved_mode);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 初始化硬件
|
// 初始化硬件
|
||||||
htr3236_init(&htr3236_dev, HTR3236_ADDR_GND);
|
htr3236_init(&htr3236_dev, HTR3236_ADDR_GND);
|
||||||
htr3236_hw_enable(&htr3236_dev);
|
htr3236_hw_enable(&htr3236_dev);
|
||||||
@@ -423,120 +484,9 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol)
|
|||||||
delay_milliseconds(200);
|
delay_milliseconds(200);
|
||||||
codec_init();
|
codec_init();
|
||||||
|
|
||||||
unsigned ex3d_key_verified;
|
|
||||||
delay_milliseconds(300);
|
|
||||||
debug_printf("button task start\n");
|
debug_printf("button task start\n");
|
||||||
|
|
||||||
|
|
||||||
// Windows模式:从 "game_mode" 加载(模式值 0-3)
|
|
||||||
// UAC1模式:从 "uac1_mode" 加载(等效模式值 0-2)
|
|
||||||
unsigned /* char */ saved_mode;
|
|
||||||
unsigned char saved_uac1_mode = 0;
|
|
||||||
unsigned char path[] = "game_mode";
|
|
||||||
|
|
||||||
unsigned host_os;
|
|
||||||
GET_SHARED_GLOBAL(host_os, g_host_os);
|
|
||||||
saved_mode = load_value(path);
|
|
||||||
debug_printf("Loaded game_mode from flash: %d\n", saved_mode);
|
|
||||||
|
|
||||||
#if defined(UAC1_MODE)
|
|
||||||
if (saved_mode == 255) {
|
|
||||||
saved_mode = 0;
|
|
||||||
save_value(path, saved_mode);
|
|
||||||
debug_printf("Saved game_mode to flash: %d\n", saved_mode);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (saved_mode == 255) {
|
|
||||||
// 如果文件不存在,根据编译模式设置默认值
|
|
||||||
#if defined(STEREO_2K)
|
|
||||||
saved_mode = 0;
|
|
||||||
#elif defined(SPATIAL_GAME)
|
|
||||||
saved_mode = 2;
|
|
||||||
#elif defined(SPATIAL_MOVIE)
|
|
||||||
saved_mode = 3;
|
|
||||||
#endif
|
|
||||||
save_value(path, saved_mode);
|
|
||||||
debug_printf("Saved game_mode to flash: %d\n", saved_mode);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
//printf("host_os: %d\n", host_os);
|
|
||||||
#if 0
|
|
||||||
if ((host_os == OS_OTHERS) || (host_os == 0)) {
|
|
||||||
|
|
||||||
#if !UAC1_MODE
|
|
||||||
printf("Detected non-Windows OS (OS_OTHERS), switching to UAC1 mode\n");
|
|
||||||
SetRoleSwitchFlag(MODE_UAC1);
|
|
||||||
debug_printf("Set role switch flag: 0x%04X (UAC1), device will restart\n", MODE_UAC1);
|
|
||||||
// 设备会重启,退出函数
|
|
||||||
device_reboot();
|
|
||||||
while(1);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if UAC1_MODE == 1
|
|
||||||
if (host_os == OS_WIN) {
|
|
||||||
printf("Detected Windows OS (OS_WIN) saved_mode: %d\n", saved_mode);
|
|
||||||
|
|
||||||
#if IR_SWITCHING_MODE
|
|
||||||
if (saved_mode == 0) {
|
|
||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
|
||||||
} else {
|
|
||||||
SetRoleSwitchFlag(MODE_SPATIAL_GAME);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
|
||||||
switch (saved_mode) {
|
|
||||||
case 0:
|
|
||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
SetRoleSwitchFlag(MODE_SPATIAL_GAME);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
SetRoleSwitchFlag(MODE_SPATIAL_MOVIE);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
SetRoleSwitchFlag(MODE_STEREO_2K);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
debug_printf("Switch to saved mode: %d, device will restart.\n", saved_mode);
|
|
||||||
delay_milliseconds(200);
|
|
||||||
// device_reboot();
|
|
||||||
// while (1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(STEREO_2K)
|
|
||||||
if ((saved_mode != 255) && (saved_mode != 0) && (saved_mode != 1)) {
|
|
||||||
saved_mode = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SPATIAL_GAME)
|
|
||||||
if ((saved_mode != 255) && (saved_mode != 2)) {
|
|
||||||
saved_mode = 2;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SPATIAL_MOVIE)
|
|
||||||
if ((saved_mode != 255) && (saved_mode != 3)) {
|
|
||||||
saved_mode = 3;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
g_windows_detect_done = 1;
|
|
||||||
|
|
||||||
|
|
||||||
SET_SHARED_GLOBAL(g_game_mode, 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=SPATIAL_MOVIE)
|
//chan_out_byte(cc_mic_level, saved_mode); // 音频模式值(0=无音效,1=STEREO_2K,2=SPATIAL_GAME,3=SPATIAL_MOVIE)
|
||||||
cc_mic_level <: 0xFC;
|
cc_mic_level <: 0xFC;
|
||||||
|
|||||||
Reference in New Issue
Block a user