diff options
Diffstat (limited to 'keyboards/dumbpad/dumbpad.c')
-rw-r--r-- | keyboards/dumbpad/dumbpad.c | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/keyboards/dumbpad/dumbpad.c b/keyboards/dumbpad/dumbpad.c index b53856237..d9b649c71 100644 --- a/keyboards/dumbpad/dumbpad.c +++ b/keyboards/dumbpad/dumbpad.c @@ -15,15 +15,49 @@ */ #include "dumbpad.h" +void keyboard_pre_init_kb(void) { + // Set the layer LED IO as outputs + setPinOutput(LAYER_INDICATOR_LED_0); + setPinOutput(LAYER_INDICATOR_LED_1); + + keyboard_pre_init_user(); +} + +void shutdown_user() { + // Shutdown the layer LEDs + writePinLow(LAYER_INDICATOR_LED_0); + writePinLow(LAYER_INDICATOR_LED_1); +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + // Layer LEDs act as binary indication of current layer + uint8_t layer = biton32(state); + writePin(LAYER_INDICATOR_LED_0, layer & 0b1); + writePin(LAYER_INDICATOR_LED_1, (layer >> 1) & 0b1); + return layer_state_set_user(state); +} + // Optional override functions below. // You can leave any or all of these undefined. // These are only required if you want to perform custom actions. -/* - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + for (int i = 0; i < 2; i++) { + writePin(LAYER_INDICATOR_LED_0, true); + writePin(LAYER_INDICATOR_LED_1, false); + wait_ms(100); + writePin(LAYER_INDICATOR_LED_0, true); + writePin(LAYER_INDICATOR_LED_1, true); + wait_ms(100); + writePin(LAYER_INDICATOR_LED_0, false); + writePin(LAYER_INDICATOR_LED_1, true); + wait_ms(100); + writePin(LAYER_INDICATOR_LED_0, false); + writePin(LAYER_INDICATOR_LED_1, false); + wait_ms(100); + } matrix_init_user(); } @@ -47,5 +81,3 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } - -*/ |