diff options
Diffstat (limited to 'keyboards/infinity60/keymaps/jpetermans/keymap.c')
-rw-r--r-- | keyboards/infinity60/keymaps/jpetermans/keymap.c | 101 |
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 | ||
14 | enum ic60_keycodes { | 14 | enum 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 | ||
22 | enum 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 | |||
28 | uint8_t current_layer_global = 0; | 33 | uint8_t current_layer_global = 0; |
29 | uint8_t led_mode_global = MODE_SINGLE; | 34 | uint8_t led_mode_global = MODE_SINGLE; |
30 | uint8_t backlight_status_global = 1; //init on/off state of backlight | 35 | uint8_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 | ||
105 | enum function_id { | ||
106 | NONE, | ||
107 | }; | ||
108 | |||
109 | enum 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 ========= | 150 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
162 | const 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 */ | ||
174 | void 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) { |