]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/wanleg/wanleg.c
Fix process_combo which assign -1 to uint16_t (#3697)
[qmk_firmware.git] / users / wanleg / wanleg.c
1 #include "wanleg.h"
2
3 // Defines actions for my global custom keycodes. Defined in wanleg.h file
4 // Then runs the _keymap's record handier if not processed here
5 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
6   switch (keycode) {
7     case QWERTY:
8       if (record->event.pressed) {
9         print("mode just switched to qwerty and this is a huge string\n");
10         set_single_persistent_default_layer(_QW);
11       }
12       return false;
13       break;
14     case GHERKIN:
15       if (record->event.pressed) {
16         set_single_persistent_default_layer(_GK);
17       }
18       return false;
19       break;
20     case gGHERKIN:
21       if (record->event.pressed) {
22         set_single_persistent_default_layer(gGK);
23       }
24       return false;
25       break;
26     case ONEHAND:
27     if (record->event.pressed) {
28       set_single_persistent_default_layer(ONE);
29       }
30       return false;
31       break;
32     case NUMPAD:
33     if (record->event.pressed) {
34       set_single_persistent_default_layer(PAD);
35       }
36       return false;
37       break;
38     case GHERKIN50:
39     if (record->event.pressed) {
40       set_single_persistent_default_layer(GK50);
41       }
42       return false;
43       break;
44     case SUBTER:
45       if (record->event.pressed) {
46         layer_on(SUB);
47       } else {
48         layer_off(SUB);
49       }
50       return false;
51       break;
52     case SUPRA:
53       if (record->event.pressed) {
54         layer_on(SUP);
55       } else {
56         layer_off(SUP);
57       }
58       return false;
59       break;
60         case NUMBER:
61       if (record->event.pressed) {
62         layer_on(NUM);
63       } else {
64         layer_off(NUM);
65       }
66       return false;
67       break;
68         case DIRECTION:
69       if (record->event.pressed) {
70         layer_on(DIR);
71       } else {
72         layer_off(DIR);
73       }
74       return false;
75       break;
76         case ETCETERA:
77       if (record->event.pressed) {
78         layer_on(ETC);
79       } else {
80         layer_off(ETC);
81       }
82       return false;
83       break;
84   case gNUMBER:
85       if (record->event.pressed) {
86         layer_on(gNUM);
87       } else {
88         layer_off(gNUM);
89       }
90       return false;
91       break;
92   case gDIRECTION:
93       if (record->event.pressed) {
94         layer_on(gDIR);
95       } else {
96         layer_off(gDIR);
97       }
98       return false;
99       break;
100         case gETCETERA:
101       if (record->event.pressed) {
102         layer_on(gETC);
103       } else {
104         layer_off(gETC);
105       }
106       return false;
107       break;
108         case FUNCTION:
109       if (record->event.pressed) {
110         layer_on(_FN);
111       } else {
112         layer_off(_FN);
113       }
114       return false;
115       break;
116   }
117   return true;
118 }
119
120 /// Turn off LEDs on ProMicros of Let's Split ///
121 // LEDs only on by default on Let's Split
122 // Add reconfigurable functions here, for keymap customization
123 // This allows for a global, userspace functions, and continued
124 // customization of the keymap.  Use _keymap instead of _user
125 // functions in the keymaps
126 __attribute__ ((weak))
127 void matrix_init_keymap(void) {}
128
129 // Call user matrix init, then call the keymap's init function
130 void matrix_init_user(void) {
131 #if defined(KEYBOARD_lets_split_rev2)
132   DDRD &= ~(1<<5);
133   PORTD &= ~(1<<5);
134
135   DDRB &= ~(1<<0);
136   PORTB &= ~(1<<0);
137 #endif
138   matrix_init_keymap();
139 }