diff options
Diffstat (limited to 'keyboards/idb/idb_60/idb_60.c')
-rw-r--r-- | keyboards/idb/idb_60/idb_60.c | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/keyboards/idb/idb_60/idb_60.c b/keyboards/idb/idb_60/idb_60.c index a86606425e..1ca4b8796f 100644 --- a/keyboards/idb/idb_60/idb_60.c +++ b/keyboards/idb/idb_60/idb_60.c @@ -5,17 +5,6 @@ void keyboard_pre_init_kb(void) { setPinOutput(C5); } -void led_set_kb(uint8_t usb_led) { - - if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - _idb_60_caps_led_on(); - } else { - _idb_60_caps_led_off(); - } - - led_set_user(usb_led); -} - inline void _idb_60_caps_led_on(void) { writePinLow(C5); } @@ -31,3 +20,28 @@ inline void _idb_60_caps_led_off(void) { inline void _idb_60_fn_led_off(void) { writePinHigh(C4); } + +// Capslock LED indicator + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + _idb_60_caps_led_on(); + } else { + _idb_60_caps_led_off(); + } + } + return res; +} + +// Layer LED indicator - drive LED when not on base layer + +__attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { + if (get_highest_layer(state) == 0) { + _idb_60_fn_led_off(); + } else { + _idb_60_fn_led_on(); + } + return state; +} |