tmo50.c (1854B)
1 /* Copyright 2019 funderburker 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 #include "tmo50.h" 17 18 void matrix_init_kb(void) { 19 // put your keyboard start-up code here 20 // runs once when the firmware starts up 21 22 gpio_set_pin_output(B0); 23 gpio_write_pin_low(B0); 24 gpio_set_pin_output(B1); 25 gpio_write_pin_high(B1); 26 gpio_set_pin_output(B2); 27 gpio_write_pin_high(B2); 28 gpio_set_pin_output(B3); 29 gpio_write_pin_high(B3); 30 31 matrix_init_user(); 32 } 33 34 layer_state_t layer_state_set_kb(layer_state_t state) 35 { 36 state = layer_state_set_user(state); 37 process_indicator_led_kb(state); 38 39 return state; 40 } 41 42 __attribute__((weak)) 43 bool process_indicator_led_user(layer_state_t state){ 44 return true; 45 } 46 47 bool process_indicator_led_kb(layer_state_t state) 48 { 49 if(process_indicator_led_user(state)) 50 { 51 // if on layer 0, turn on B0 LED, otherwise off. 52 gpio_write_pin(B0, get_highest_layer(state) != 0); 53 54 // if on layer 1, turn on B1 LED, otherwise off. 55 gpio_write_pin(B1, get_highest_layer(state) != 1); 56 57 // if on layer 2, turn on B2 LED, otherwise off. 58 gpio_write_pin(B2, get_highest_layer(state) != 2); 59 60 // if on layer 3, turn on B3 LED, otherwise off. 61 gpio_write_pin(B3, get_highest_layer(state) != 3); 62 } 63 64 return true; 65 }