reduce mode to fps and bypass
This commit is contained in:
@@ -121,10 +121,10 @@ timer tm;
|
||||
// 改动原因:新增C1模式持久化文件路径,使用LittleFS保存mode按键状态,保证断电重启后可恢复。
|
||||
#define C1_MODE_VALUE_PATH "c1_mode_value"
|
||||
|
||||
// 改动原因:c1_mode 与 tile1 mode 灯索引一致:1=灭 2=蓝 3=绿 4=橙 5=紫;合法范围 1~5,interface 原样传 c1_mode。
|
||||
// 改动原因:产品仅保留两档——1=BYPASS_UAC1(灯灭)、4=FPS_UAC1(橙灯常亮);灯索引与 c1_mode 同值下发 tile1。
|
||||
#define C1_MODE_VALUE_DEFAULT 1
|
||||
#define C1_MODE_VALUE_MIN 1
|
||||
#define C1_MODE_VALUE_MAX 5
|
||||
#define C1_MODE_VALUE_MAX 4
|
||||
|
||||
// 改动原因:DAC 音量单独持久化路径,与 mode 的 c1_mode 文件分离,避免互相覆盖且便于维护。
|
||||
#define C1_DAC_VOL_INFO_PATH "c1_dac_vol"
|
||||
@@ -156,24 +156,25 @@ static unsigned c1_saved_dac_vol_is_valid(unsigned char v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 改动原因:产品停用 mode 2(BR)/3(V71);越界或 Flash 残留 2/3 归一到可用档(2/3→4),供上电与灯色共用。
|
||||
// 改动原因:仅合法档 1(BYPASS)/4(FPS);Flash 残留 2/3(V71) 归 4,5(旧紫灯 BYPASS) 归 1,供上电与灯色共用。
|
||||
static inline unsigned c1_mode_sanitize(unsigned mode_value)
|
||||
{
|
||||
if (mode_value > C1_MODE_VALUE_MAX || mode_value < C1_MODE_VALUE_MIN)
|
||||
return C1_MODE_VALUE_DEFAULT;
|
||||
if (mode_value == 1 || mode_value == 4)
|
||||
return mode_value;
|
||||
if (mode_value == 2 || mode_value == 3)
|
||||
return 4;
|
||||
return mode_value;
|
||||
if (mode_value == 5)
|
||||
return 1;
|
||||
return C1_MODE_VALUE_DEFAULT;
|
||||
}
|
||||
|
||||
// 改动原因:mode 短按循环跳过 2、3,仅 1→4→5→1(与 switch_mode_by_c1_mode 可用档一致)。
|
||||
// 改动原因:mode 短按仅在 BYPASS(1) 与 FPS(4) 两档间切换,与 switch_mode_by_c1_mode 一致。
|
||||
static inline unsigned c1_mode_advance(unsigned mode_value)
|
||||
{
|
||||
switch (c1_mode_sanitize(mode_value))
|
||||
{
|
||||
case 1: return 4;
|
||||
case 4: return 5;
|
||||
case 5: return 1;
|
||||
case 4: return 1;
|
||||
default: return C1_MODE_VALUE_DEFAULT;
|
||||
}
|
||||
}
|
||||
@@ -222,21 +223,14 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot)
|
||||
break;
|
||||
}
|
||||
#else
|
||||
// 改动原因:UAC1 仅保留 BYPASS(1,灯灭) 与 FPS(4,橙灯);移除 V71(2/3) 及旧紫灯 BYPASS(5)。
|
||||
switch (c1_mode)
|
||||
{
|
||||
case 1:
|
||||
#if !BYPASS_UAC1
|
||||
SetRoleSwitchFlag(MODE_BYPASS_UAC1);
|
||||
reboot_need = 0;
|
||||
#endif
|
||||
break;
|
||||
case 2:
|
||||
SetRoleSwitchFlag(MODE_V71_UAC1);
|
||||
reboot_need = 1;
|
||||
break;
|
||||
case 3:
|
||||
SetRoleSwitchFlag(MODE_V71_UAC1);
|
||||
reboot_need = 0;
|
||||
#endif
|
||||
break;
|
||||
case 4:
|
||||
#if !FPS_UAC1
|
||||
@@ -244,12 +238,7 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot)
|
||||
reboot_need = 1;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 5:
|
||||
#if !BYPASS_UAC1
|
||||
SetRoleSwitchFlag(MODE_BYPASS_UAC1);
|
||||
reboot_need = 1;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif // UAC1_MODE == 1
|
||||
@@ -595,7 +584,7 @@ void AudioHwRemote2(streaming chanend c, client interface i2c_master_if i2c, cli
|
||||
firmware_upgrade_init();
|
||||
#endif
|
||||
|
||||
// 改动原因:上电归一 c1_mode(含停用档 2/3→4),与按键循环 1/4/5 一致并写回 Flash。
|
||||
// 改动原因:上电归一 c1_mode 为 1 或 4,与按键 BYPASS/FPS 两档循环一致并写回 Flash。
|
||||
{
|
||||
unsigned c1_mode_corrected = c1_mode_sanitize(c1_mode);
|
||||
if (c1_mode_corrected != c1_mode)
|
||||
@@ -957,7 +946,7 @@ void AudioHwRemote2(streaming chanend c, client interface i2c_master_if i2c, cli
|
||||
{
|
||||
if (pressed_count == 0)
|
||||
{
|
||||
// 改动原因:mode 短按在 c1_mode 1/4/5 间循环(跳过停用档 2/3);持久化后切角色并 set_mode_led_color 下发 tile1。
|
||||
// 改动原因:mode 短按在 BYPASS(1,灭)/FPS(4,橙) 两档间切换;持久化后切角色并 set_mode_led_color 下发 tile1。
|
||||
if ((mode_press_ticks >= C1_KEY_SHORT_TICKS) && (mode_press_ticks < C1_KEY_LONG_TICKS))
|
||||
{
|
||||
c1_mode = c1_mode_advance(c1_mode);
|
||||
@@ -1927,7 +1916,7 @@ static inline void c1_panel_leds_force_all_off_hw(void)
|
||||
p_mode_led_blue <: 1;
|
||||
}
|
||||
|
||||
// 改动原因:c1_mode 与灯索引一致:1=灯 2=蓝 3=绿 4=橙(R+G) 5=紫(R+B);仅驱动 mode 区(p_leds bit2/3 + p_mode_led_blue),不受 mic 变声影响。
|
||||
// 改动原因:c1_mode 与灯索引一致:1=灭(BYPASS) 4=橙(R+G,FPS);仅驱动 mode 区(p_leds bit2/3 + p_mode_led_blue),不受 mic 变声影响。
|
||||
// 改动原因:规格 mic 区灯仅反映静音——静音红灯常亮,非静音(含DNR开/关)全灭;DNR状态由APP显示。
|
||||
static inline void apply_c1_panel_leds(unsigned mode_led_color_idx, unsigned mic_mute_switch, unsigned &led_shadow)
|
||||
{
|
||||
@@ -2001,10 +1990,8 @@ void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl)
|
||||
unsafe {
|
||||
select{
|
||||
case i_c1_led_ctrl.set_mode_led_color(unsigned color_idx):
|
||||
// 改动原因:color_idx 与 c1_mode 同値 1~5;越界时酆位为默认灯码,避免未定义索引。
|
||||
mode_led_color_idx = color_idx;
|
||||
if (mode_led_color_idx > 5 || mode_led_color_idx < 1)
|
||||
mode_led_color_idx = C1_MODE_VALUE_DEFAULT;
|
||||
// 改动原因:color_idx 与 c1_mode 同值,仅 1(灭)/4(橙);越界时 sanitize 为合法档。
|
||||
mode_led_color_idx = c1_mode_sanitize(color_idx);
|
||||
apply_c1_panel_leds(mode_led_color_idx, mic_mute_switch, led_shadow);
|
||||
break;
|
||||
case i_c1_led_ctrl.set_mic_mute_state(unsigned mute_state):
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "app_dsp.h"
|
||||
// 改动原因:mode/mic mute LED物理端口在tile1,定义跨tile的LED控制interface,供tile0按键逻辑调用,tile1统一驱动硬件LED。
|
||||
interface c1_led_ctrl_if {
|
||||
// 改动原因:与 c1_mode 同值下发 tile1:1=灭 2=蓝 3=绿 4=橙 5=紫(灯索引即 mode)。
|
||||
// 改动原因:与 c1_mode 同值下发 tile1:1=BYPASS(灭) 4=FPS(橙灯常亮)(灯索引即 mode)。
|
||||
void set_mode_led_color(unsigned color_idx);
|
||||
// 改动原因:规格 mic 指示灯仅反映静音——0=静音红灯常亮,1=非静音全灭;DNR 无灯由 APP 显示。
|
||||
void set_mic_mute_state(unsigned mute_switch);
|
||||
|
||||
@@ -121,10 +121,10 @@ timer tm;
|
||||
// 改动原因:新增C1模式持久化文件路径,使用LittleFS保存mode按键状态,保证断电重启后可恢复。
|
||||
#define C1_MODE_VALUE_PATH "c1_mode_value"
|
||||
|
||||
// 改动原因:c1_mode 与 tile1 mode 灯索引一致:1=灭 2=蓝 3=绿 4=橙 5=紫;合法范围 1~5,interface 原样传 c1_mode。
|
||||
// 改动原因:产品仅保留两档——1=BYPASS_UAC1(灯灭)、4=FPS_UAC1(橙灯常亮);灯索引与 c1_mode 同值下发 tile1。
|
||||
#define C1_MODE_VALUE_DEFAULT 1
|
||||
#define C1_MODE_VALUE_MIN 1
|
||||
#define C1_MODE_VALUE_MAX 5
|
||||
#define C1_MODE_VALUE_MAX 4
|
||||
|
||||
// 改动原因:DAC 音量单独持久化路径,与 mode 的 c1_mode 文件分离,避免互相覆盖且便于维护。
|
||||
#define C1_DAC_VOL_INFO_PATH "c1_dac_vol"
|
||||
@@ -156,24 +156,25 @@ static unsigned c1_saved_dac_vol_is_valid(unsigned char v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 改动原因:产品停用 mode 2(BR)/3(V71);越界或 Flash 残留 2/3 归一到可用档(2/3→4),供上电与灯色共用。
|
||||
// 改动原因:仅合法档 1(BYPASS)/4(FPS);Flash 残留 2/3(V71) 归 4,5(旧紫灯 BYPASS) 归 1,供上电与灯色共用。
|
||||
static inline unsigned c1_mode_sanitize(unsigned mode_value)
|
||||
{
|
||||
if (mode_value > C1_MODE_VALUE_MAX || mode_value < C1_MODE_VALUE_MIN)
|
||||
return C1_MODE_VALUE_DEFAULT;
|
||||
if (mode_value == 1 || mode_value == 4)
|
||||
return mode_value;
|
||||
if (mode_value == 2 || mode_value == 3)
|
||||
return 4;
|
||||
return mode_value;
|
||||
if (mode_value == 5)
|
||||
return 1;
|
||||
return C1_MODE_VALUE_DEFAULT;
|
||||
}
|
||||
|
||||
// 改动原因:mode 短按循环跳过 2、3,仅 1→4→5→1(与 switch_mode_by_c1_mode 可用档一致)。
|
||||
// 改动原因:mode 短按仅在 BYPASS(1) 与 FPS(4) 两档间切换,与 switch_mode_by_c1_mode 一致。
|
||||
static inline unsigned c1_mode_advance(unsigned mode_value)
|
||||
{
|
||||
switch (c1_mode_sanitize(mode_value))
|
||||
{
|
||||
case 1: return 4;
|
||||
case 4: return 5;
|
||||
case 5: return 1;
|
||||
case 4: return 1;
|
||||
default: return C1_MODE_VALUE_DEFAULT;
|
||||
}
|
||||
}
|
||||
@@ -222,21 +223,14 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot)
|
||||
break;
|
||||
}
|
||||
#else
|
||||
// 改动原因:UAC1 仅保留 BYPASS(1,灯灭) 与 FPS(4,橙灯);移除 V71(2/3) 及旧紫灯 BYPASS(5)。
|
||||
switch (c1_mode)
|
||||
{
|
||||
case 1:
|
||||
#if !BYPASS_UAC1
|
||||
SetRoleSwitchFlag(MODE_BYPASS_UAC1);
|
||||
reboot_need = 0;
|
||||
#endif
|
||||
break;
|
||||
case 2:
|
||||
SetRoleSwitchFlag(MODE_V71_UAC1);
|
||||
reboot_need = 1;
|
||||
break;
|
||||
case 3:
|
||||
SetRoleSwitchFlag(MODE_V71_UAC1);
|
||||
reboot_need = 0;
|
||||
#endif
|
||||
break;
|
||||
case 4:
|
||||
#if !FPS_UAC1
|
||||
@@ -244,12 +238,7 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot)
|
||||
reboot_need = 1;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 5:
|
||||
#if !BYPASS_UAC1
|
||||
SetRoleSwitchFlag(MODE_BYPASS_UAC1);
|
||||
reboot_need = 1;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif // UAC1_MODE == 1
|
||||
@@ -598,7 +587,7 @@ void AudioHwRemote2(streaming chanend c, client interface i2c_master_if i2c, cli
|
||||
|
||||
debug_printf("AudioHwRemote2: c1_mode = %d\n", c1_mode);
|
||||
|
||||
// 改动原因:上电归一 c1_mode(含停用档 2/3→4),与按键循环 1/4/5 一致并写回 Flash。
|
||||
// 改动原因:上电归一 c1_mode 为 1 或 4,与按键 BYPASS/FPS 两档循环一致并写回 Flash。
|
||||
{
|
||||
unsigned c1_mode_corrected = c1_mode_sanitize(c1_mode);
|
||||
if (c1_mode_corrected != c1_mode)
|
||||
@@ -960,7 +949,7 @@ void AudioHwRemote2(streaming chanend c, client interface i2c_master_if i2c, cli
|
||||
{
|
||||
if (pressed_count == 0)
|
||||
{
|
||||
// 改动原因:mode 短按在 c1_mode 1/4/5 间循环(跳过停用档 2/3);持久化后切角色并 set_mode_led_color 下发 tile1。
|
||||
// 改动原因:mode 短按在 BYPASS(1,灭)/FPS(4,橙) 两档间切换;持久化后切角色并 set_mode_led_color 下发 tile1。
|
||||
if ((mode_press_ticks >= C1_KEY_SHORT_TICKS) && (mode_press_ticks < C1_KEY_LONG_TICKS))
|
||||
{
|
||||
c1_mode = c1_mode_advance(c1_mode);
|
||||
@@ -1930,7 +1919,7 @@ static inline void c1_panel_leds_force_all_off_hw(void)
|
||||
p_mode_led_blue <: 1;
|
||||
}
|
||||
|
||||
// 改动原因:c1_mode 与灯索引一致:1=灯 2=蓝 3=绿 4=橙(R+G) 5=紫(R+B);仅驱动 mode 区(p_leds bit2/3 + p_mode_led_blue),不受 mic 变声影响。
|
||||
// 改动原因:c1_mode 与灯索引一致:1=灭(BYPASS) 4=橙(R+G,FPS);仅驱动 mode 区(p_leds bit2/3 + p_mode_led_blue),不受 mic 变声影响。
|
||||
// 改动原因:规格 mic 区灯仅反映静音——静音红灯常亮,非静音(含DNR开/关)全灭;DNR状态由APP显示。
|
||||
static inline void apply_c1_panel_leds(unsigned mode_led_color_idx, unsigned mic_mute_switch, unsigned &led_shadow)
|
||||
{
|
||||
@@ -2004,10 +1993,8 @@ void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl, chanend c_
|
||||
unsafe {
|
||||
select{
|
||||
case i_c1_led_ctrl.set_mode_led_color(unsigned color_idx):
|
||||
// 改动原因:color_idx 与 c1_mode 同値 1~5;越界时酆位为默认灯码,避免未定义索引。
|
||||
mode_led_color_idx = color_idx;
|
||||
if (mode_led_color_idx > 5 || mode_led_color_idx < 1)
|
||||
mode_led_color_idx = C1_MODE_VALUE_DEFAULT;
|
||||
// 改动原因:color_idx 与 c1_mode 同值,仅 1(灭)/4(橙);越界时 sanitize 为合法档。
|
||||
mode_led_color_idx = c1_mode_sanitize(color_idx);
|
||||
apply_c1_panel_leds(mode_led_color_idx, mic_mute_switch, led_shadow);
|
||||
break;
|
||||
case i_c1_led_ctrl.set_mic_mute_state(unsigned mute_state):
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "app_dsp.h"
|
||||
// 改动原因:mode/mic mute LED物理端口在tile1,定义跨tile的LED控制interface,供tile0按键逻辑调用,tile1统一驱动硬件LED。
|
||||
interface c1_led_ctrl_if {
|
||||
// 改动原因:与 c1_mode 同值下发 tile1:1=灭 2=蓝 3=绿 4=橙 5=紫(灯索引即 mode)。
|
||||
// 改动原因:与 c1_mode 同值下发 tile1:1=BYPASS(灭) 4=FPS(橙灯常亮)(灯索引即 mode)。
|
||||
void set_mode_led_color(unsigned color_idx);
|
||||
// 改动原因:规格 mic 指示灯仅反映静音——0=静音红灯常亮,1=非静音全灭;DNR 无灯由 APP 显示。
|
||||
void set_mic_mute_state(unsigned mute_switch);
|
||||
|
||||
Reference in New Issue
Block a user