Fix bug in caps lock light logic for Moonlander (#341)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user