keychron_qmk_firmware/keyboards/idb/idb_60/idb_60.c
Thorben 50611bd814
[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>
2020-11-25 09:10:42 -08:00

48 lines
917 B
C

#include "idb_60.h"
void keyboard_pre_init_kb(void) {
setPinOutput(C4);
setPinOutput(C5);
}
inline void _idb_60_caps_led_on(void) {
writePinLow(C5);
}
inline void _idb_60_fn_led_on(void) {
writePinLow(C4);
}
inline void _idb_60_caps_led_off(void) {
writePinHigh(C5);
}
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;
}