From cb4443f0e448653011507505bda4c0736be5bc24 Mon Sep 17 00:00:00 2001 From: yuquanjun Date: Wed, 23 Sep 2026 07:08:48 +0800 Subject: [PATCH] fix(led): use identity colors on universal progression lights Loop_Light_Handle was hardcoding red for every measure; map L1-L7 to the same R/G/B/yellow/purple/cyan/white table as App guide LEDs. Co-authored-by: Cursor --- Global/Global.c | 79 ++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/Global/Global.c b/Global/Global.c index 5cd7b7c..94f23fd 100644 --- a/Global/Global.c +++ b/Global/Global.c @@ -1494,6 +1494,31 @@ void Pick_Handle() } +/* 指板灯本色:与 App 引导灯一致(含黄/紫/青/白合成色) */ +static LedColor_TypeDef tm1629_led_identity_color(LedNum_TypeDef led) +{ + switch (led) + { + case LED_L1: return LED_COLOR_R; + case LED_L2: return LED_COLOR_G; + case LED_L3: return LED_COLOR_B; + case LED_L4: return LED_COLOR_YELL; + case LED_L5: return LED_COLOR_PURP; + case LED_L6: return LED_COLOR_CYA; + case LED_L7: return LED_COLOR_WHITE; + default: return COLOR_OTHER; + } +} + +static void tm1629_set_identity_led(LedNum_TypeDef led) +{ + LedColor_TypeDef color = tm1629_led_identity_color(led); + if (color == COLOR_OTHER) + app_tm1629_all_off(); + else + app_tm1629_set_led(led, color); +} + void Loop_Light_Handle(uint8_t measure) { switch(ParamGuiData[ALL_MODE_PARAM].Current) @@ -1501,28 +1526,28 @@ void Loop_Light_Handle(uint8_t measure) case 0: switch(measure) { - case 1:app_tm1629_set_led(LED_L1, LED_COLOR_R);break; - case 2:app_tm1629_set_led(LED_L6, LED_COLOR_R);break; - case 3:app_tm1629_set_led(LED_L4, LED_COLOR_R);break; - case 4:app_tm1629_set_led(LED_L5, LED_COLOR_R);break; + case 1:tm1629_set_identity_led(LED_L1);break; + case 2:tm1629_set_identity_led(LED_L6);break; + case 3:tm1629_set_identity_led(LED_L4);break; + case 4:tm1629_set_identity_led(LED_L5);break; } break; case 1: switch(measure) { - case 1:app_tm1629_set_led(LED_L1, LED_COLOR_R);break; - case 2:app_tm1629_set_led(LED_L5, LED_COLOR_R);break; - case 3:app_tm1629_set_led(LED_L6, LED_COLOR_R);break; - case 4:app_tm1629_set_led(LED_L4, LED_COLOR_R);break; + case 1:tm1629_set_identity_led(LED_L1);break; + case 2:tm1629_set_identity_led(LED_L5);break; + case 3:tm1629_set_identity_led(LED_L6);break; + case 4:tm1629_set_identity_led(LED_L4);break; } break; case 2: switch(measure) - { - case 1:app_tm1629_set_led(LED_L1, LED_COLOR_R);break; - case 2:app_tm1629_set_led(LED_L3, LED_COLOR_R);break; - case 3:app_tm1629_set_led(LED_L6, LED_COLOR_R);break; - case 4:app_tm1629_set_led(LED_L4, LED_COLOR_R);break; + { + case 1:tm1629_set_identity_led(LED_L1);break; + case 2:tm1629_set_identity_led(LED_L3);break; + case 3:tm1629_set_identity_led(LED_L6);break; + case 4:tm1629_set_identity_led(LED_L4);break; } break; } @@ -1535,33 +1560,7 @@ void BL_Set_led(uint8_t led, uint8_t chord_type) * 导致 UI 与 MIDI 发声不一致;和弦品质仅由映射页 02 03/02 04 维护。 */ (void)chord_type; Led = led; - switch(led){ - case LED_L1: - app_tm1629_set_led(LED_L1, LED_COLOR_R); - break; - case LED_L2: - app_tm1629_set_led(LED_L2, LED_COLOR_G); - break; - case LED_L3: - app_tm1629_set_led(LED_L3, LED_COLOR_B); - break; - case LED_L4: - app_tm1629_set_led(LED_L4, LED_COLOR_YELL); - break; - case LED_L5: - app_tm1629_set_led(LED_L5, LED_COLOR_PURP); - break; - case LED_L6: - app_tm1629_set_led(LED_L6, LED_COLOR_CYA); - break; - case LED_L7: - app_tm1629_set_led(LED_L7, LED_COLOR_WHITE); - break; - default: - // 鏈煡鐏彿锛屽叏閮ㄥ叧闂? - app_tm1629_all_off(); - break; - } + tm1629_set_identity_led((LedNum_TypeDef)led); } void BT_Pitch_offset_map(uint8_t pos_offset,uint8_t pitch_offset)