typ65.c (2069B)
1 /* Copyright 2021 Samuel Lu 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17 #include "quantum.h" 18 19 void keyboard_pre_init_kb (void) { 20 gpio_set_pin_output(INDICATOR_0); 21 gpio_set_pin_output(INDICATOR_1); 22 gpio_set_pin_output(INDICATOR_2); 23 24 keyboard_pre_init_user(); 25 } 26 27 __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { 28 switch (get_highest_layer(state)) { 29 case 1: 30 gpio_write_pin_high(INDICATOR_0); 31 gpio_write_pin_low(INDICATOR_1); 32 gpio_write_pin_low(INDICATOR_2); 33 break; 34 case 2: 35 gpio_write_pin_low(INDICATOR_0); 36 gpio_write_pin_high(INDICATOR_1); 37 gpio_write_pin_low(INDICATOR_2); 38 break; 39 case 3: 40 gpio_write_pin_low(INDICATOR_0); 41 gpio_write_pin_low(INDICATOR_1); 42 gpio_write_pin_high(INDICATOR_2); 43 break; 44 default: 45 gpio_write_pin_high(INDICATOR_0); 46 gpio_write_pin_high(INDICATOR_1); 47 gpio_write_pin_high(INDICATOR_2); 48 break; 49 } 50 return state; 51 } 52 53 void suspend_power_down_kb(void) { 54 gpio_write_pin_low(INDICATOR_0); 55 gpio_write_pin_low(INDICATOR_1); 56 gpio_write_pin_low(INDICATOR_2); 57 58 suspend_power_down_user(); 59 } 60 61 void suspend_wakeup_init_kb(void) { 62 gpio_write_pin_high(INDICATOR_0); 63 gpio_write_pin_high(INDICATOR_1); 64 gpio_write_pin_high(INDICATOR_2); 65 66 suspend_wakeup_init_user(); 67 }