aboutsummaryrefslogtreecommitdiff
path: root/keyboards/infinity60/keymaps/jpetermans/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/infinity60/keymaps/jpetermans/keymap.c')
-rw-r--r--keyboards/infinity60/keymaps/jpetermans/keymap.c101
1 files changed, 39 insertions, 62 deletions
diff --git a/keyboards/infinity60/keymaps/jpetermans/keymap.c b/keyboards/infinity60/keymaps/jpetermans/keymap.c
index c34d56ec8..3c2e0d4da 100644
--- a/keyboards/infinity60/keymaps/jpetermans/keymap.c
+++ b/keyboards/infinity60/keymaps/jpetermans/keymap.c
@@ -11,20 +11,25 @@
11//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles 11//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles
12#define max_pages 6 12#define max_pages 6
13 13
14enum ic60_keycodes { 14enum led_modes {
15 NUMPAD, 15 MODE_ALL,
16 FNAV, 16 MODE_GAME,
17 MEDIA,
18 BACKLIGHT,
19 BRIGHT,
20 DIM,
21 ALL,
22 GAME,
23 MODE_SINGLE, 17 MODE_SINGLE,
24 MODE_PAGE, 18 MODE_PAGE,
25 MODE_FLASH 19 MODE_FLASH
26}; 20};
27 21
22enum macro_id {
23 LED_ALL = SAFE_RANGE,
24 LED_GAME,
25 LED_BACKLIGHT,
26 LED_BRIGHT,
27 LED_DIM,
28 LED_SINGLE,
29 LED_PAGE,
30 LED_FLASH
31};
32
28uint8_t current_layer_global = 0; 33uint8_t current_layer_global = 0;
29uint8_t led_mode_global = MODE_SINGLE; 34uint8_t led_mode_global = MODE_SINGLE;
30uint8_t backlight_status_global = 1; //init on/off state of backlight 35uint8_t backlight_status_global = 1; //init on/off state of backlight
@@ -77,10 +82,10 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
77 82
78 /* media */ 83 /* media */
79 [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( \ 84 [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift( \
80 _______,F(MODE_SINGLE),F(MODE_PAGE),F(MODE_FLASH),_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\ 85 _______,LED_SINGLE,LED_PAGE,LED_FLASH,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\
81 _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\ 86 _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
82 _______,_______,_______,_______,_______,F(GAME),_______, _______, _______, _______,_______, _______,_______, \ 87 _______,_______,_______,_______,_______,LED_GAME,_______, _______, _______, _______,_______, _______,_______, \
83 _______,_______,F(ALL) ,F(BRIGHT),F(DIM),F(BACKLIGHT),_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \ 88 _______,_______,LED_ALL ,LED_BRIGHT,LED_DIM,LED_BACKLIGHT,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \
84 _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \ 89 _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \
85 ), 90 ),
86 /* ~ */ 91 /* ~ */
@@ -101,22 +106,6 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101 ), 106 ),
102}; 107};
103 108
104//id for user defined functions and macros
105enum function_id {
106 NONE,
107};
108
109enum macro_id {
110 ACTION_LEDS_ALL,
111 ACTION_LEDS_GAME,
112 ACTION_LEDS_BACKLIGHT,
113 ACTION_LEDS_BRIGHT,
114 ACTION_LEDS_DIM,
115 ACTION_LEDS_SINGLE,
116 ACTION_LEDS_PAGE,
117 ACTION_LEDS_FLASH
118};
119
120/* ================================== 109/* ==================================
121 * LED MAPPING 110 * LED MAPPING
122 * ==================================*/ 111 * ==================================*/
@@ -158,74 +147,62 @@ uint8_t led_game[5] = {
158 47,48,51 147 47,48,51
159}; 148};
160 149
161//======== qmk functions ========= 150bool process_record_user(uint16_t keycode, keyrecord_t *record) {
162const uint16_t fn_actions[] = {
163 [ALL] = ACTION_FUNCTION(ACTION_LEDS_ALL),
164 [GAME] = ACTION_FUNCTION(ACTION_LEDS_GAME),
165 [BACKLIGHT] = ACTION_FUNCTION(ACTION_LEDS_BACKLIGHT),
166 [BRIGHT] = ACTION_FUNCTION(ACTION_LEDS_BRIGHT),
167 [DIM] = ACTION_FUNCTION(ACTION_LEDS_DIM),
168 [MODE_SINGLE] = ACTION_FUNCTION(ACTION_LEDS_SINGLE),
169 [MODE_PAGE] = ACTION_FUNCTION(ACTION_LEDS_PAGE),
170 [MODE_FLASH] = ACTION_FUNCTION(ACTION_LEDS_FLASH),
171};
172
173/* custom action function */
174void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
175 msg_t msg; 151 msg_t msg;
176 152
177 switch(id) { 153 switch(keycode) {
178 case ACTION_LEDS_ALL: 154 case LED_ALL:
179 if(record->event.pressed) { 155 if(record->event.pressed) {
180 led_mode_global = led_mode_global == ALL ? MODE_SINGLE : ALL; 156 led_mode_global = led_mode_global == MODE_ALL ? MODE_SINGLE : MODE_ALL;
181 msg=TOGGLE_ALL; 157 msg=TOGGLE_ALL;
182 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); 158 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
183 } 159 }
184 break; 160 return false;
185 161
186 case ACTION_LEDS_BACKLIGHT: 162 case LED_BACKLIGHT:
187 if(record->event.pressed) { 163 if(record->event.pressed) {
188 backlight_status_global ^= 1; 164 backlight_status_global ^= 1;
189 msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT; 165 msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT;
190 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); 166 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
191 } 167 }
192 break; 168 return false;
193 169
194 case ACTION_LEDS_GAME: 170 case LED_GAME:
195 if(record->event.pressed) { 171 if(record->event.pressed) {
196 led_mode_global = led_mode_global == GAME ? MODE_SINGLE : GAME; 172 led_mode_global = led_mode_global == MODE_GAME ? MODE_SINGLE : MODE_GAME;
197 173
198 msg=(4 << 8) | DISPLAY_PAGE; 174 msg=(4 << 8) | DISPLAY_PAGE;
199 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); 175 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
200 } 176 }
201 break; 177 return false;
202 178
203 case ACTION_LEDS_BRIGHT: 179 case LED_BRIGHT:
204 if(record->event.pressed) { 180 if(record->event.pressed) {
205 msg=(1 << 8) | STEP_BRIGHTNESS; 181 msg=(1 << 8) | STEP_BRIGHTNESS;
206 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); 182 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
207 } 183 }
208 break; 184 return false;
209 185
210 case ACTION_LEDS_DIM: 186 case LED_DIM:
211 if(record->event.pressed) { 187 if(record->event.pressed) {
212 msg=(0 << 8) | STEP_BRIGHTNESS; 188 msg=(0 << 8) | STEP_BRIGHTNESS;
213 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE); 189 chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
214 } 190 }
215 break; 191 return false;
216 192
217 //set led_mode for matrix_scan to toggle leds 193 //set led_mode for matrix_scan to toggle leds
218 case ACTION_LEDS_SINGLE: 194 case LED_SINGLE:
219 led_mode_global = MODE_SINGLE; 195 led_mode_global = MODE_SINGLE;
220 break; 196 return false;
221 case ACTION_LEDS_PAGE: 197 case LED_PAGE:
222 led_mode_global = MODE_PAGE; 198 led_mode_global = MODE_PAGE;
223 break; 199 return false;
224 case ACTION_LEDS_FLASH: 200 case LED_FLASH:
225 led_mode_global = MODE_FLASH; 201 led_mode_global = MODE_FLASH;
226 break; 202 return false;
227 203
228 } 204 }
205 return true;
229} 206}
230 207
231// Runs just one time when the keyboard initializes. 208// Runs just one time when the keyboard initializes.
@@ -257,7 +234,7 @@ void matrix_scan_user(void) {
257 return; 234 return;
258 } 235 }
259 236
260 if (led_layer_state != layer_state && led_mode_global != GAME && led_mode_global != ALL) { 237 if (led_layer_state != layer_state && led_mode_global != MODE_GAME && led_mode_global != MODE_ALL) {
261 //check mode 238 //check mode
262 //Turn on layer indicator or page depending on mode 239 //Turn on layer indicator or page depending on mode
263 switch(led_mode_global) { 240 switch(led_mode_global) {