idb_60.c (990B)
1 #include "idb_60.h" 2 3 void keyboard_pre_init_kb(void) { 4 gpio_set_pin_output(C4); 5 gpio_set_pin_output(C5); 6 7 keyboard_pre_init_user(); 8 } 9 10 inline void _idb_60_caps_led_on(void) { 11 gpio_write_pin_low(C5); 12 } 13 14 inline void _idb_60_fn_led_on(void) { 15 gpio_write_pin_low(C4); 16 } 17 18 inline void _idb_60_caps_led_off(void) { 19 gpio_write_pin_high(C5); 20 } 21 22 inline void _idb_60_fn_led_off(void) { 23 gpio_write_pin_high(C4); 24 } 25 26 // Capslock LED indicator 27 28 bool led_update_kb(led_t led_state) { 29 bool res = led_update_user(led_state); 30 if (res) { 31 if (led_state.caps_lock) { 32 _idb_60_caps_led_on(); 33 } else { 34 _idb_60_caps_led_off(); 35 } 36 } 37 return res; 38 } 39 40 // Layer LED indicator - drive LED when not on base layer 41 42 __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { 43 if (get_highest_layer(state) == 0) { 44 _idb_60_fn_led_off(); 45 } else { 46 _idb_60_fn_led_on(); 47 } 48 return state; 49 }