ps17.c (1149B)
1 // Copyright 2023 mjbogusz (@mjbogusz) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #include "quantum.h" 5 6 layer_state_t layer_state_set_kb(layer_state_t state) { 7 /* Display current layer using indicator LEDs */ 8 gpio_write_pin(LED_INDICATOR_0_PIN, !IS_LAYER_ON_STATE(state, 1)); 9 gpio_write_pin(LED_INDICATOR_1_PIN, !IS_LAYER_ON_STATE(state, 2)); 10 gpio_write_pin(LED_INDICATOR_2_PIN, !IS_LAYER_ON_STATE(state, 3)); 11 return layer_state_set_user(state); 12 } 13 14 void keyboard_pre_init_kb(void) { 15 /* Set indicator LEDs as outputs */ 16 gpio_set_pin_output(LED_INDICATOR_0_PIN); 17 gpio_set_pin_output(LED_INDICATOR_1_PIN); 18 gpio_set_pin_output(LED_INDICATOR_2_PIN); 19 keyboard_pre_init_user(); 20 } 21 22 #ifdef RGB_MATRIX_ENABLE 23 void suspend_power_down_kb(void) { 24 /* Disable indicator LEDs when going to sleep */ 25 gpio_write_pin(LED_INDICATOR_0_PIN, 1); 26 gpio_write_pin(LED_INDICATOR_1_PIN, 1); 27 gpio_write_pin(LED_INDICATOR_2_PIN, 1); 28 suspend_power_down_user(); 29 } 30 31 void suspend_wakeup_init_kb(void) { 32 /* Restore indicator LEDs state */ 33 layer_state_set_kb(layer_state); 34 suspend_wakeup_init_user(); 35 } 36 #endif