summaryrefslogtreecommitdiff
path: root/keyboards/idb/idb_60/idb_60.c
diff options
context:
space:
mode:
authorThorben <34752364+itspngu@users.noreply.github.com>2020-11-25 18:10:42 +0100
committerGitHub <noreply@github.com>2020-11-25 09:10:42 -0800
commit50611bd814beb4127378000ff398eaa475527cc5 (patch)
treeec22d38d9342cd71ae615740c86aa97e4f4c9408 /keyboards/idb/idb_60/idb_60.c
parent86b0acbae0cc2ad85026f3343624d9aa1788e41a (diff)
[Keyboard] Fixes fox idb_60 keyboard (#10827)
* Fixed VIA keymap build warning on gcc 10.2.0, Fixed misleading LED function names, Fixed formatting * Fix: Allow layer LED indicators to be overriden on the keymap level * Implemented suggested change from led_set_kb callback to led_update_kb callback * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/idb/idb_60/idb_60.c Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'keyboards/idb/idb_60/idb_60.c')
-rw-r--r--keyboards/idb/idb_60/idb_60.c36
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;
+}