Commit | Line | Data |
---|---|---|
26eef35f | 1 | #include QMK_KEYBOARD_H |
f6cb08a5 | 2 | #include "mousekey.h" |
ce75a767 I |
3 | |
4 | #ifdef AUDIO_ENABLE | |
5 | #include "audio.h" | |
6 | #include "song_list.h" | |
7 | #endif | |
8 | ||
f6cb08a5 I |
9 | enum keyboard_layers { |
10 | LAYER_QWERTY = 0, | |
11 | LAYER_UPPER, | |
12 | LAYER_LOWER, | |
13 | LAYER_FUNCTION, | |
14 | LAYER_MOUSE, | |
15 | LAYER_ADJUST, | |
16 | }; | |
17 | enum keyboard_macros { | |
18 | MACRO_QWERTY = 0, | |
19 | MACRO_UPPER, | |
20 | MACRO_LOWER, | |
21 | MACRO_FUNCTION, | |
22 | MACRO_MOUSE, | |
23 | MACRO_TIMBRE_1, | |
24 | MACRO_TIMBRE_2, | |
25 | MACRO_TIMBRE_3, | |
26 | MACRO_TIMBRE_4, | |
27 | MACRO_TEMPO_U, | |
28 | MACRO_TEMPO_D, | |
29 | MACRO_TONE_DEFAULT, | |
30 | MACRO_MUSIC_TOGGLE, | |
31 | MACRO_AUDIO_TOGGLE, | |
32 | MACRO_INC_VOICE, | |
33 | MACRO_DEC_VOICE, | |
34 | MACRO_BACKLIGHT, | |
35 | MACRO_BREATH_TOGGLE, | |
36 | MACRO_BREATH_SPEED_INC, | |
37 | MACRO_BREATH_SPEED_DEC, | |
38 | MACRO_BREATH_DEFAULT, | |
39 | MACRO_MOUSE_MOVE_UL, | |
40 | MACRO_MOUSE_MOVE_UR, | |
41 | MACRO_MOUSE_MOVE_DL, | |
42 | MACRO_MOUSE_MOVE_DR, | |
e9a09345 I |
43 | MACRO_HELP_1, |
44 | MACRO_HELP_2, | |
45 | MACRO_HELP_3, | |
46 | MACRO_HELP_4, | |
47 | MACRO_HELP_5, | |
48 | MACRO_HELP_6, | |
49 | MACRO_HELP_7, | |
50 | MACRO_HELP_8, | |
51 | MACRO_HELP_9, | |
f6cb08a5 | 52 | }; |
ce75a767 I |
53 | |
54 | #define M_QWRTY M(MACRO_QWERTY) | |
287eb7ad | 55 | #define M_UPPER M(MACRO_UPPER) |
ce75a767 | 56 | #define M_LOWER M(MACRO_LOWER) |
ce75a767 I |
57 | #define M_FUNCT M(MACRO_FUNCTION) |
58 | #define M_MOUSE M(MACRO_MOUSE) | |
59 | #define TIMBR_1 M(MACRO_TIMBRE_1) | |
60 | #define TIMBR_2 M(MACRO_TIMBRE_2) | |
61 | #define TIMBR_3 M(MACRO_TIMBRE_3) | |
62 | #define TIMBR_4 M(MACRO_TIMBRE_4) | |
63 | #define TMPO_UP M(MACRO_TEMPO_U) | |
64 | #define TMPO_DN M(MACRO_TEMPO_D) | |
65 | #define TMPO_DF M(MACRO_TONE_DEFAULT) | |
3f02637f | 66 | #define M_BACKL M(MACRO_BACKLIGHT) |
287eb7ad JH |
67 | #define M_BRTOG M(MACRO_BREATH_TOGGLE) |
68 | #define M_BSPDU M(MACRO_BREATH_SPEED_INC) | |
69 | #define M_BSPDD M(MACRO_BREATH_SPEED_DEC) | |
70 | #define M_BDFLT M(MACRO_BREATH_DEFAULT) | |
f6cb08a5 I |
71 | #define M_MS_UL M(MACRO_MOUSE_MOVE_UL) |
72 | #define M_MS_UR M(MACRO_MOUSE_MOVE_UR) | |
73 | #define M_MS_DL M(MACRO_MOUSE_MOVE_DL) | |
74 | #define M_MS_DR M(MACRO_MOUSE_MOVE_DR) | |
e9a09345 I |
75 | #define M_HELP1 M(MACRO_HELP_1) |
76 | #define M_HELP2 M(MACRO_HELP_2) | |
77 | #define M_HELP3 M(MACRO_HELP_3) | |
78 | #define M_HELP4 M(MACRO_HELP_4) | |
79 | #define M_HELP5 M(MACRO_HELP_5) | |
80 | #define M_HELP6 M(MACRO_HELP_6) | |
81 | #define M_HELP7 M(MACRO_HELP_7) | |
82 | #define M_HELP8 M(MACRO_HELP_8) | |
83 | #define M_HELP9 M(MACRO_HELP_9) | |
ce75a767 I |
84 | |
85 | ||
ce75a767 I |
86 | #define VC_UP M(MACRO_INC_VOICE) |
87 | #define VC_DOWN M(MACRO_DEC_VOICE) | |
88 | ||
89 | ||
90 | #define SC_UNDO LCTL(KC_Z) | |
91 | #define SC_REDO LCTL(KC_Y) | |
92 | #define SC_CUT LCTL(KC_X) | |
93 | #define SC_COPY LCTL(KC_C) | |
94 | #define SC_PSTE LCTL(KC_V) | |
95 | #define SC_SELA LCTL(KC_A) | |
96 | #define SC_SAVE LCTL(KC_S) | |
97 | #define SC_OPEN LCTL(KC_O) | |
98 | #define SC_ACLS LALT(KC_F4) | |
99 | #define SC_CCLS LCTL(KC_F4) | |
100 | ||
558f3ec1 | 101 | #define TG_NKRO MAGIC_TOGGLE_NKRO |
287eb7ad | 102 | #define OS_SHFT KC_FN0 |
ce75a767 | 103 | |
ce75a767 I |
104 | #define ________________ _______, _______ |
105 | #define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX | |
106 | ||
107 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
108 | ||
f6cb08a5 I |
109 | /* LAYER = LAYER_QWERTY |
110 | .-----------------------------------------------------------------------------------------------------------. | |
111 | | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | | |
112 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
113 | | ESC | A | S | D | F | G | H | J | K | L | ; | ' | | |
114 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
115 | | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | | |
116 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
117 | | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | OSHIFT | LEFT | DOWN | RIGHT | | |
118 | '-----------------------------------------------------------------------------------------------------------' | |
119 | */ | |
26eef35f JY |
120 | [LAYER_QWERTY] = LAYOUT_planck_grid( |
121 | KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC , | |
122 | KC_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT , | |
123 | KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_ENT , | |
124 | KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT | |
125 | ), | |
f6cb08a5 I |
126 | /* LAYER = LAYER_UPPER |
127 | .-----------------------------------------------------------------------------------------------------------. | |
128 | | PRINT | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | DEL | | |
129 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
130 | | PAUSE | F5 | F6 | F7 | F8 | SCR LK | KP * | KP 4 | KP 5 | KP 6 | KP + | INS | | |
131 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
132 | | ______ | F9 | F10 | F11 | F12 | PAUSE | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | HOME | | |
133 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
134 | | ______ | ______ | ______ | ______ | UPPER | KP 0 | KP 0 | ______ | RALT | KP . | KP ENT | END | | |
135 | '-----------------------------------------------------------------------------------------------------------' | |
136 | */ | |
26eef35f JY |
137 | [LAYER_UPPER] = LAYOUT_planck_grid( |
138 | KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL , | |
139 | KC_PAUS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS , | |
140 | _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PAUS, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME , | |
141 | _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END | |
142 | ), | |
f6cb08a5 I |
143 | /* LAYER = LAYER_LOWER |
144 | .-----------------------------------------------------------------------------------------------------------. | |
145 | | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | | |
146 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
147 | | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN | | |
148 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
149 | | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | HOME | | |
150 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
151 | | ______ | ______ | ______ | ______ | ______ | ______ | ______ | LOWER | ______ | ______ | ______ | END | | |
152 | '-----------------------------------------------------------------------------------------------------------' | |
153 | */ | |
26eef35f JY |
154 | [LAYER_LOWER] = LAYOUT_planck_grid( |
155 | _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , KC_PGUP , | |
156 | _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , KC_PGDN , | |
157 | _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, KC_HOME , | |
158 | _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, KC_END | |
159 | ), | |
f6cb08a5 I |
160 | /* LAYER = LAYER_FUNCTION |
161 | .-----------------------------------------------------------------------------------------------------------. | |
162 | | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | |
163 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
164 | | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | | |
165 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
166 | | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | VOL UP | MUTE | | |
167 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
168 | | ______ | ______ | FN | ______ | ______ | PLAY | PLAY | ______ | ______ | PREV | VOL DN | NEXT | | |
169 | '-----------------------------------------------------------------------------------------------------------' | |
170 | */ | |
26eef35f JY |
171 | [LAYER_FUNCTION] = LAYOUT_planck_grid( |
172 | XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , | |
173 | XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , | |
174 | _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE , | |
175 | _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT | |
176 | ), | |
f6cb08a5 I |
177 | /* LAYER = LAYER_MOUSE |
178 | .-----------------------------------------------------------------------------------------------------------. | |
179 | | ESC | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | MS WHL | MS WHR | | |
180 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
181 | | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | MS WHU | | |
182 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
183 | | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | MS U | MS WHD | | |
184 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
185 | | ______ | ______ | ______ | ______ | ______ | MS BT1 | MS BT1 | ______ | ______ | MS L | MS D | MS R | | |
186 | '-----------------------------------------------------------------------------------------------------------' | |
187 | */ | |
26eef35f JY |
188 | [LAYER_MOUSE] = LAYOUT_planck_grid( |
189 | KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, KC_WH_L, KC_WH_R , | |
190 | XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, KC_WH_U , | |
191 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, KC_MS_U, KC_WH_D , | |
192 | _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R | |
193 | ), | |
f6cb08a5 I |
194 | /* LAYER = LAYER_ADJUST |
195 | .-----------------------------------------------------------------------------------------------------------. | |
e9a09345 | 196 | | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | MUSIC | AUDIO | |
f6cb08a5 | 197 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |
e9a09345 | 198 | | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | |
f6cb08a5 I |
199 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |
200 | | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | VOICE+ | XXXXXX | | |
201 | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | |
202 | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX | XXXXXX | LOWER | XXXXXX | TEMPO- | VOICE- | TEMPO+ | | |
203 | '-----------------------------------------------------------------------------------------------------------' | |
ce75a767 | 204 | */ |
26eef35f JY |
205 | [LAYER_ADJUST] = LAYOUT_planck_grid( |
206 | XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, MU_TOG , AU_TOG , | |
207 | XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , | |
208 | XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX , | |
209 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP | |
210 | ), | |
f6cb08a5 | 211 | |
ce75a767 I |
212 | }; |
213 | ||
214 | #ifdef AUDIO_ENABLE | |
215 | ||
216 | float tone_my_startup[][2] = SONG(ODE_TO_JOY); | |
217 | float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); | |
218 | ||
ce75a767 I |
219 | float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); |
220 | float tone_music_on[][2] = SONG(DOE_A_DEER); | |
221 | float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); | |
222 | float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); | |
223 | float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); | |
224 | float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); | |
225 | float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); | |
226 | float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); | |
227 | float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | |
228 | ||
229 | #endif /* AUDIO_ENABLE */ | |
230 | ||
8ddbf7f5 | 231 | void persistent_default_layer_set(uint16_t default_layer) |
ce75a767 I |
232 | { |
233 | eeconfig_update_default_layer(default_layer); | |
234 | default_layer_set(default_layer); | |
235 | } | |
236 | ||
237 | const uint16_t PROGMEM fn_actions[] = { | |
558f3ec1 | 238 | [0] = ACTION_MODS_ONESHOT(MOD_RSFT), |
ce75a767 I |
239 | }; |
240 | ||
241 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |
242 | { | |
243 | ||
244 | // MACRODOWN only works in this function | |
245 | switch(id) | |
246 | { | |
247 | ||
e9a09345 I |
248 | case MACRO_HELP_1: |
249 | if (record->event.pressed) | |
250 | { | |
251 | uprintf("1"); | |
252 | } | |
253 | break; | |
254 | ||
255 | case MACRO_HELP_2: | |
256 | if (record->event.pressed) | |
257 | { | |
258 | uprintf("2"); | |
259 | } | |
260 | break; | |
261 | ||
262 | case MACRO_HELP_3: | |
263 | if (record->event.pressed) | |
264 | { | |
265 | uprintf("3"); | |
266 | } | |
267 | break; | |
268 | ||
269 | case MACRO_HELP_4: | |
270 | if (record->event.pressed) | |
271 | { | |
272 | uprintf("4"); | |
273 | } | |
274 | break; | |
275 | ||
276 | case MACRO_HELP_5: | |
277 | if (record->event.pressed) | |
278 | { | |
279 | uprintf("5"); | |
280 | } | |
281 | break; | |
282 | ||
283 | case MACRO_HELP_6: | |
284 | if (record->event.pressed) | |
285 | { | |
286 | uprintf("6"); | |
287 | } | |
288 | break; | |
289 | ||
290 | case MACRO_HELP_7: | |
291 | if (record->event.pressed) | |
292 | { | |
293 | uprintf("7"); | |
294 | } | |
295 | break; | |
296 | ||
297 | case MACRO_HELP_8: | |
298 | if (record->event.pressed) | |
299 | { | |
300 | uprintf("8"); | |
301 | } | |
302 | break; | |
303 | ||
304 | case MACRO_HELP_9: | |
305 | if (record->event.pressed) | |
306 | { | |
307 | uprintf("9"); | |
308 | } | |
309 | break; | |
310 | ||
f6cb08a5 | 311 | case MACRO_BREATH_TOGGLE: |
ce75a767 I |
312 | if (record->event.pressed) |
313 | { | |
4464d90f | 314 | #ifdef BACKLIGHT_BREATHING |
f6cb08a5 | 315 | breathing_toggle(); |
4464d90f | 316 | #endif |
ce75a767 I |
317 | } |
318 | break; | |
319 | ||
f6cb08a5 | 320 | case MACRO_BREATH_SPEED_INC: |
ce75a767 I |
321 | if (record->event.pressed) |
322 | { | |
4464d90f | 323 | #ifdef BACKLIGHT_BREATHING |
4931510a | 324 | breathing_period_inc(); |
4464d90f | 325 | #endif |
ce75a767 I |
326 | } |
327 | break; | |
328 | ||
f6cb08a5 | 329 | case MACRO_BREATH_SPEED_DEC: |
ce75a767 I |
330 | if (record->event.pressed) |
331 | { | |
4464d90f | 332 | #ifdef BACKLIGHT_BREATHING |
4931510a | 333 | breathing_period_dec(); |
4464d90f | 334 | #endif |
ce75a767 I |
335 | } |
336 | break; | |
337 | ||
f6cb08a5 | 338 | case MACRO_BREATH_DEFAULT: |
ce75a767 I |
339 | if (record->event.pressed) |
340 | { | |
4464d90f | 341 | #ifdef BACKLIGHT_BREATHING |
8d6eadf2 | 342 | breathing_period_default(); |
4464d90f | 343 | #endif |
ce75a767 | 344 | } |
f6cb08a5 I |
345 | break; |
346 | ||
347 | case MACRO_QWERTY: | |
348 | if (record->event.pressed) | |
ce75a767 | 349 | { |
8ddbf7f5 | 350 | persistent_default_layer_set(1UL<<LAYER_QWERTY); |
ce75a767 I |
351 | } |
352 | break; | |
353 | ||
287eb7ad | 354 | case MACRO_UPPER: |
ce75a767 I |
355 | if (record->event.pressed) |
356 | { | |
287eb7ad | 357 | layer_on(LAYER_UPPER); |
4464d90f BC |
358 | #ifdef BACKLIGHT_BREATHING |
359 | breathing_period_set(2); | |
360 | breathing_pulse(); | |
361 | #endif | |
287eb7ad | 362 | update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); |
ce75a767 I |
363 | } |
364 | else | |
365 | { | |
287eb7ad JH |
366 | layer_off(LAYER_UPPER); |
367 | update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); | |
ce75a767 I |
368 | } |
369 | break; | |
370 | ||
f6cb08a5 I |
371 | case MACRO_LOWER: |
372 | if (record->event.pressed) | |
373 | { | |
374 | layer_on(LAYER_LOWER); | |
4464d90f BC |
375 | #ifdef BACKLIGHT_BREATHING |
376 | breathing_period_set(2); | |
377 | breathing_pulse(); | |
378 | #endif | |
f6cb08a5 I |
379 | update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); |
380 | } | |
381 | else | |
382 | { | |
383 | layer_off(LAYER_LOWER); | |
384 | update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); | |
385 | } | |
386 | break; | |
387 | ||
ce75a767 I |
388 | case MACRO_FUNCTION: |
389 | if (record->event.pressed) | |
390 | { | |
4464d90f BC |
391 | #ifdef BACKLIGHT_BREATHING |
392 | breathing_period_set(3); | |
393 | breathing_enable(); | |
394 | #endif | |
ce75a767 I |
395 | layer_on(LAYER_FUNCTION); |
396 | } | |
397 | else | |
398 | { | |
4464d90f BC |
399 | #ifdef BACKLIGHT_BREATHING |
400 | breathing_period_set(1); | |
401 | breathing_self_disable(); | |
402 | #endif | |
ce75a767 I |
403 | layer_off(LAYER_FUNCTION); |
404 | } | |
405 | break; | |
406 | ||
3f02637f JH |
407 | |
408 | #ifdef BACKLIGHT_ENABLE | |
409 | case MACRO_BACKLIGHT: | |
410 | if (record->event.pressed) | |
411 | { | |
412 | backlight_step(); | |
413 | } | |
414 | #endif | |
415 | ||
ce75a767 I |
416 | #ifdef MOUSEKEY_ENABLE |
417 | ||
418 | case MACRO_MOUSE: | |
419 | if (record->event.pressed) | |
420 | { | |
421 | layer_invert(LAYER_MOUSE); | |
422 | } | |
423 | break; | |
f6cb08a5 I |
424 | |
425 | case MACRO_MOUSE_MOVE_UL: | |
426 | if (record->event.pressed) | |
427 | { | |
428 | mousekey_on(KC_MS_UP); | |
429 | mousekey_on(KC_MS_LEFT); | |
430 | } | |
431 | else | |
432 | { | |
433 | mousekey_off(KC_MS_UP); | |
434 | mousekey_off(KC_MS_LEFT); | |
435 | } | |
436 | break; | |
437 | ||
438 | case MACRO_MOUSE_MOVE_UR: | |
439 | if (record->event.pressed) | |
440 | { | |
441 | mousekey_on(KC_MS_UP); | |
442 | mousekey_on(KC_MS_RIGHT); | |
443 | } | |
444 | else | |
445 | { | |
446 | mousekey_off(KC_MS_UP); | |
447 | mousekey_off(KC_MS_RIGHT); | |
448 | } | |
449 | break; | |
450 | ||
451 | case MACRO_MOUSE_MOVE_DL: | |
452 | if (record->event.pressed) | |
453 | { | |
454 | mousekey_on(KC_MS_DOWN); | |
455 | mousekey_on(KC_MS_LEFT); | |
456 | } | |
457 | else | |
458 | { | |
459 | mousekey_off(KC_MS_DOWN); | |
460 | mousekey_off(KC_MS_LEFT); | |
461 | } | |
462 | break; | |
463 | ||
464 | case MACRO_MOUSE_MOVE_DR: | |
465 | if (record->event.pressed) | |
466 | { | |
467 | mousekey_on(KC_MS_DOWN); | |
468 | mousekey_on(KC_MS_RIGHT); | |
469 | } | |
470 | else | |
471 | { | |
472 | mousekey_off(KC_MS_DOWN); | |
473 | mousekey_off(KC_MS_RIGHT); | |
474 | } | |
475 | break; | |
ce75a767 I |
476 | |
477 | #endif /* MOUSEKEY_ENABLE */ | |
478 | ||
479 | #ifdef AUDIO_ENABLE | |
480 | ||
481 | case MACRO_TIMBRE_1: | |
482 | if (record->event.pressed) set_timbre(TIMBRE_12); | |
483 | break; | |
484 | ||
485 | case MACRO_TIMBRE_2: | |
486 | if (record->event.pressed) set_timbre(TIMBRE_25); | |
487 | break; | |
488 | ||
489 | case MACRO_TIMBRE_3: | |
490 | if (record->event.pressed) set_timbre(TIMBRE_50); | |
491 | break; | |
492 | ||
493 | case MACRO_TIMBRE_4: | |
494 | if (record->event.pressed) set_timbre(TIMBRE_75); | |
495 | break; | |
496 | ||
497 | case MACRO_TEMPO_U: | |
498 | if (record->event.pressed) increase_tempo(10); | |
499 | break; | |
500 | ||
501 | case MACRO_TEMPO_D: | |
502 | if (record->event.pressed) decrease_tempo(10); | |
503 | break; | |
504 | ||
505 | case MACRO_TONE_DEFAULT: | |
506 | if (record->event.pressed) | |
507 | { | |
508 | set_timbre(TIMBRE_DEFAULT); | |
509 | set_tempo(TEMPO_DEFAULT); | |
510 | } | |
511 | break; | |
512 | ||
ce75a767 I |
513 | #endif /* AUDIO_ENABLE */ |
514 | ||
515 | default: | |
516 | break; | |
517 | ||
518 | } | |
519 | return MACRO_NONE; | |
520 | }; | |
521 | ||
522 | ||
523 | #ifdef AUDIO_ENABLE | |
524 | ||
ce75a767 I |
525 | void matrix_init_user(void) |
526 | { | |
527 | set_voice(default_voice); | |
287eb7ad | 528 | startup_user(); |
ce75a767 I |
529 | println("Matrix Init"); |
530 | } | |
531 | ||
532 | void led_set_user(uint8_t usb_led) | |
533 | { | |
534 | static uint8_t old_usb_led = 0; | |
535 | ||
536 | _delay_ms(10); // gets rid of tick | |
537 | ||
538 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) | |
539 | { | |
540 | // If CAPS LK LED is turning on... | |
fe60cbd9 | 541 | PLAY_SONG(tone_caps_on); |
ce75a767 I |
542 | } |
543 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) | |
544 | { | |
545 | // If CAPS LK LED is turning off... | |
fe60cbd9 | 546 | PLAY_SONG(tone_caps_off); |
ce75a767 I |
547 | } |
548 | else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) | |
549 | { | |
550 | // If NUM LK LED is turning on... | |
fe60cbd9 | 551 | PLAY_SONG(tone_numlk_on); |
ce75a767 I |
552 | } |
553 | else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) | |
554 | { | |
555 | // If NUM LED is turning off... | |
fe60cbd9 | 556 | PLAY_SONG(tone_numlk_off); |
ce75a767 I |
557 | } |
558 | else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) | |
559 | { | |
560 | // If SCROLL LK LED is turning on... | |
fe60cbd9 | 561 | PLAY_SONG(tone_scroll_on); |
ce75a767 I |
562 | } |
563 | else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) | |
564 | { | |
565 | // If SCROLL LED is turning off... | |
fe60cbd9 | 566 | PLAY_SONG(tone_scroll_off); |
ce75a767 I |
567 | } |
568 | old_usb_led = usb_led; | |
569 | } | |
570 | ||
571 | ||
287eb7ad | 572 | void startup_user() |
ce75a767 I |
573 | { |
574 | _delay_ms(10); // gets rid of tick | |
fe60cbd9 | 575 | PLAY_SONG(tone_my_startup); |
ce75a767 I |
576 | } |
577 | ||
287eb7ad | 578 | void shutdown_user() |
ce75a767 | 579 | { |
fe60cbd9 | 580 | PLAY_SONG(tone_my_goodbye); |
287eb7ad JH |
581 | _delay_ms(2000); |
582 | stop_all_notes(); | |
583 | } | |
584 | ||
585 | void audio_on_user(void) | |
586 | { | |
fe60cbd9 | 587 | PLAY_SONG(tone_audio_on); |
287eb7ad JH |
588 | } |
589 | ||
590 | void music_on_user(void) | |
591 | { | |
fe60cbd9 | 592 | PLAY_SONG(tone_music_on); |
287eb7ad JH |
593 | } |
594 | ||
595 | void music_scale_user(void) | |
596 | { | |
fe60cbd9 | 597 | PLAY_SONG(music_scale); |
ce75a767 I |
598 | } |
599 | ||
ade22f8e | 600 | #endif /* AUDIO_ENABLE */ |