keymap.c (2047B)
1 /* Copyright 2018 QMK Community 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 QMK_KEYBOARD_H 17 18 #define _BL 0 19 #define _FN 1 20 21 // Define keyboard specific keycodes for controlling on/off for all LEDs as they 22 // are all on different pins with this PCB, rather than a single backlight pin 23 enum custom_keycodes { 24 SS_LON = SAFE_RANGE, 25 SS_LOFF 26 }; 27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28 /* Base Layer: Media Keys 29 * ,-----------. 30 * |FN | V-| V+| 31 * |---+---+---| 32 * |Prv|Ply|Nxt| 33 * `-----------' 34 */ 35 [_BL] = LAYOUT( /* Base */ 36 MO(_FN), KC_VOLD, KC_VOLU, 37 KC_MPRV, KC_MPLY, KC_MNXT 38 ), 39 /* FN Layer: LED control 40 * ,-----------. 41 * |FN | V-| V+| 42 * |---+---+---| 43 * |Prv|Ply|Nxt| 44 * `-----------' 45 */ 46 [_FN] = LAYOUT( 47 KC_TRNS, SS_LON, SS_LOFF, 48 KC_NO, KC_NO, KC_NO 49 ), 50 }; 51 52 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 53 // Put your per-action keyboard code here. 54 // Runs for every action, just before processing by the firmware. 55 if (record->event.pressed) { 56 57 // Check for custom keycodes for turning on and off LEDs 58 switch(keycode) { 59 case SS_LON: 60 sixshooter_led_all_on(); 61 return false; 62 case SS_LOFF: 63 sixshooter_led_all_off(); 64 return false; 65 } 66 } 67 return true; 68 }; 69 70 void matrix_init_user(void) { 71 // Default all LEDs to on 72 sixshooter_led_all_on(); 73 }