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 <cursoragent@cursor.com>
This commit is contained in:
yuquanjun 2026-09-23 07:08:48 +08:00
parent 04abc2e1be
commit cb4443f0e4
1 changed files with 39 additions and 40 deletions

View File

@ -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)