diff --git a/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/audiohw.xc b/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/audiohw.xc index 64be47b..c71408c 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/audiohw.xc +++ b/sw_usb_audio/app_usb_aud_fosi_c1_v71/src/extensions/audiohw.xc @@ -389,6 +389,26 @@ void mic_volume(unsigned level, client interface i2c_master_if i2c) /* 改动原因:bringup 失败时灯效任务不刷屏 I2C */ static unsigned g_htr3236_ready = 0; +/* 改动原因:对照 jok on_factory_reset() → ui_request_reset_settings(),清除 Flash/LFS 用户配置后重启 */ +static void tx1_ui_request_reset_settings(void) +{ + int fmt_res; + + debug_printf("Factory reset: format LFS + reboot\n"); + + fmt_res = lfs_format_all(); + if (fmt_res != 0) { + debug_printf("Factory reset: lfs_format_all err=%d\n", fmt_res); + } + + delay_milliseconds(500); + + device_reboot(); + while (1) { + /* 改动原因:reboot 后不应继续执行;空循环防止优化 */ + } +} + // RGB LED to HTR3236 OUT channel mapping (D1-D12),须在 bringup 自检前定义 static const uint8_t rgb_led_map[13][3] = { {0, 0, 0}, @@ -1504,6 +1524,16 @@ void AudioHwRemote2(streaming chanend c, client interface i2c_master_if i2c, cli } } + /* 改动原因:HID 0x84 或 FPS+GAME 长按 10.6s 置位 g_request_factory_reset,在此执行恢复出厂 */ + { + unsigned factory_reset_req; + GET_SHARED_GLOBAL(factory_reset_req, g_request_factory_reset); + if (factory_reset_req) { + SET_SHARED_GLOBAL(g_request_factory_reset, 0); + tx1_ui_request_reset_settings(); + } + } + break; /* 改动原因:第二定时器 50ms,移植 jok led_effects_period_update_task */