 a9c6adb083
			
		
	
	
		a9c6adb083
		
			
		
	
	
	
	
		
			
			Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
		
			
				
	
	
		
			143 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| Copyright 2021 talsu <talsu84@gmail.com>
 | |
| 
 | |
| This program is free software: you can redistribute it and/or modify
 | |
| it under the terms of the GNU General Public License as published by
 | |
| the Free Software Foundation, either version 2 of the License, or
 | |
| (at your option) any later version.
 | |
| 
 | |
| This program is distributed in the hope that it will be useful,
 | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| GNU General Public License for more details.
 | |
| 
 | |
| You should have received a copy of the GNU General Public License
 | |
| along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| */
 | |
| 
 | |
| #include QMK_KEYBOARD_H
 | |
| 
 | |
| enum kmac_pad_keycodes {
 | |
|     MD_BOOT = SAFE_RANGE,
 | |
|     MCR1,
 | |
|     MCR2,
 | |
|     MCR3,
 | |
|     MCR4,
 | |
|     MCR5,
 | |
|     MCR6,
 | |
|     MCR7,
 | |
|     MCR8,
 | |
|     MCR9,
 | |
|     MCR10,
 | |
|     MCR11,
 | |
|     MCR12
 | |
| };
 | |
| 
 | |
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | |
|     [0] = LAYOUT( /* Base */
 | |
|                                TG(1),
 | |
|     KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
 | |
|     KC_P7,   KC_P8,   KC_P9,   KC_PPLS,
 | |
|     KC_P4,   KC_P5,   KC_P6,
 | |
|     KC_P1,   KC_P2,   KC_P3,   KC_PENT,
 | |
|     KC_P0,            KC_PDOT          ),
 | |
|     [1] = LAYOUT( /* FN  */
 | |
|                                KC_TRNS,
 | |
|     MCR1,    MCR2,    MCR3,    KC_TRNS,
 | |
|     MCR4,    MCR5,    MCR6,    KC_TRNS,
 | |
|     MCR7,    MCR8,    MCR9,
 | |
|     MCR10,   MCR11,   MCR12,   KC_TRNS,
 | |
|     KC_TRNS,          MD_BOOT          )
 | |
| };
 | |
| 
 | |
| bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | |
| 
 | |
|     switch (keycode) {
 | |
|         case MD_BOOT:
 | |
|         {
 | |
|             static uint32_t key_timer;
 | |
|             if (record->event.pressed) {
 | |
|                 key_timer = timer_read32();
 | |
|             } else {
 | |
|                 if (timer_elapsed32(key_timer) >= 2000) {
 | |
|                     reset_keyboard();
 | |
|                 }
 | |
|             }
 | |
|             return false;
 | |
|         }
 | |
|         case MCR1:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 1");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR2:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 2");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR3:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 3");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR4:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 4");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR5:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 5");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR6:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 6");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR7:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 7");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR8:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 8");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR9:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 9");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR10:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 10");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR11:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 12");
 | |
|             }
 | |
|             return false;
 | |
|         case MCR12:
 | |
|             if (record->event.pressed) {
 | |
|                 SEND_STRING("Macro 12");
 | |
|             }
 | |
|             return false;
 | |
|         default:
 | |
|             return true;
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| bool led_update_user(led_t led_state) {
 | |
|     writePin(B1, led_state.num_lock);
 | |
|     return false;
 | |
| }
 | |
| 
 | |
| 
 | |
| layer_state_t layer_state_set_user(layer_state_t state) {
 | |
|     writePin(B3, !IS_LAYER_ON_STATE(state, 0));
 | |
|     return state;
 | |
| }
 |