Fix bug in caps lock light logic for Moonlander (#341)

Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
Jacob Kiesel
2021-12-27 19:36:00 -07:00
committed by GitHub
parent dc534e19b1
commit 00d0bd6c61

View File

@@ -129,18 +129,9 @@ void moonlander_led_task(void) {
wait_ms(150); wait_ms(150);
} }
#endif #endif
#ifdef CAPS_LOCK_STATUS #if !defined(MOONLANDER_USER_LEDS)
else { else {
led_t led_state = host_keyboard_led_state(); layer_state_set_kb(layer_state);
if(led_state.caps_lock) {
ML_LED_6(true);
}
else {
uint8_t layer = get_highest_layer(layer_state);
if(layer != 1) {
ML_LED_6(false);
}
}
} }
#endif #endif
} }
@@ -178,41 +169,53 @@ void keyboard_pre_init_kb(void) {
layer_state_t layer_state_set_kb(layer_state_t state) { layer_state_t layer_state_set_kb(layer_state_t state) {
state = layer_state_set_user(state); state = layer_state_set_user(state);
if (is_launching || !keyboard_config.led_level) return state; if (is_launching || !keyboard_config.led_level) return state;
bool LED_1 = false;
ML_LED_1(false); bool LED_2 = false;
ML_LED_2(false); bool LED_3 = false;
ML_LED_3(false); bool LED_4 = false;
ML_LED_4(false); bool LED_5 = false;
ML_LED_5(false); bool LED_6 = false;
ML_LED_6(false);
uint8_t layer = get_highest_layer(state); uint8_t layer = get_highest_layer(state);
switch (layer) { switch (layer) {
case 1: case 1:
ML_LED_1(1); LED_1 = true;
ML_LED_4(1); LED_4 = true;
break; break;
case 2: case 2:
ML_LED_2(1); LED_2 = true;
ML_LED_5(1); LED_5 = true;
break; break;
case 3: case 3:
ML_LED_3(1); LED_3 = true;
ML_LED_6(1); #if !defined(CAPS_LOCK_STATUS)
LED_6 = true;
#endif
break; break;
case 4: case 4:
ML_LED_4(1); LED_4 = true;
break; break;
case 5: case 5:
ML_LED_5(1); LED_5 = true;
break; break;
case 6: case 6:
ML_LED_6(1); #if !defined(CAPS_LOCK_STATUS)
LED_6 = true;
#endif
break; break;
default: default:
break; break;
} }
ML_LED_1(LED_1);
ML_LED_2(LED_2);
ML_LED_3(LED_3);
ML_LED_4(LED_4);
ML_LED_5(LED_5);
#if !defined(CAPS_LOCK_STATUS)
ML_LED_6(LED_6);
#endif
return state; return state;
} }
#endif #endif
@@ -414,6 +417,16 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_moonlander(
// clang-format on // clang-format on
#endif #endif
#ifdef CAPS_LOCK_STATUS
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
ML_LED_6(led_state.caps_lock);
}
return res;
}
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) { bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
if (!process_record_user(keycode, record)) { return false; } if (!process_record_user(keycode, record)) { return false; }
switch (keycode) { switch (keycode) {