diff options
Diffstat (limited to 'keyboard')
-rw-r--r-- | keyboard/atomic/keymaps/pvc/keymap.c | 373 | ||||
-rw-r--r-- | keyboard/atomic/keymaps/pvc/makefile.mk | 2 |
2 files changed, 190 insertions, 185 deletions
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index c2081f525..aaef6b041 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | #ifdef AUDIO_ENABLE | 4 | #ifdef AUDIO_ENABLE |
5 | #include "audio.h" | 5 | #include "audio.h" |
6 | #include "musical_notes.h" | 6 | #include "song_list.h" |
7 | #endif | 7 | #endif |
8 | 8 | ||
9 | 9 | ||
@@ -17,6 +17,13 @@ | |||
17 | #define M_LW 1 | 17 | #define M_LW 1 |
18 | #define M_RS 2 | 18 | #define M_RS 2 |
19 | #define M_FN 3 | 19 | #define M_FN 3 |
20 | #define M_T1 4 | ||
21 | #define M_T2 5 | ||
22 | #define M_T3 6 | ||
23 | #define M_T4 7 | ||
24 | #define M_TU 8 | ||
25 | #define M_TD 9 | ||
26 | #define M_DF 10 | ||
20 | 27 | ||
21 | 28 | ||
22 | #define _______ KC_TRNS | 29 | #define _______ KC_TRNS |
@@ -63,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
63 | { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, | 70 | { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, |
64 | { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, | 71 | { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, |
65 | { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, | 72 | { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, |
66 | { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, | 73 | { _______, M(M_T1), M(M_T2), M(M_T3), M(M_T4), M(M_TU), M(M_TD), M(M_DF), _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, |
67 | { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, | 74 | { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, |
68 | }, | 75 | }, |
69 | [_AD] = { /* ADJUST */ | 76 | [_AD] = { /* ADJUST */ |
@@ -76,139 +83,124 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
76 | }; | 83 | }; |
77 | 84 | ||
78 | 85 | ||
86 | |||
79 | #ifdef AUDIO_ENABLE | 87 | #ifdef AUDIO_ENABLE |
80 | 88 | ||
89 | float start_up[][2] = SONG(ODE_TO_JOY); | ||
81 | 90 | ||
91 | float tone_lw[][2] = { | ||
82 | 92 | ||
93 | Q__NOTE(_C4 ) , | ||
94 | Q__NOTE(_CS4 ) , | ||
95 | Q__NOTE(_D4 ) , | ||
96 | Q__NOTE(_DS4 ) , | ||
97 | Q__NOTE(_E4 ) , | ||
98 | Q__NOTE(_F4 ) , | ||
99 | Q__NOTE(_FS4 ) , | ||
100 | Q__NOTE(_G4 ) , | ||
101 | Q__NOTE(_GS4 ) , | ||
102 | Q__NOTE(_A4 ) , | ||
103 | Q__NOTE(_AS4 ) , | ||
83 | 104 | ||
84 | float tone_lw[][2] = { | 105 | Q__NOTE(_B1 ) , |
85 | /* | ||
86 | Q_NOTE(_C1 ) , | ||
87 | Q_NOTE(_CS1 ) , | ||
88 | Q_NOTE(_D1 ) , | ||
89 | Q_NOTE(_DS1 ) , | ||
90 | Q_NOTE(_E1 ) , | ||
91 | Q_NOTE(_F1 ) , | ||
92 | Q_NOTE(_FS1 ) , | ||
93 | Q_NOTE(_G1 ) , | ||
94 | Q_NOTE(_GS1 ) , | ||
95 | Q_NOTE(_A1 ) , | ||
96 | Q_NOTE(_AS1 ) , | ||
97 | Q_NOTE(_B1 ) , | ||
98 | */ | ||
99 | |||
100 | Q_NOTE(_C4 ) , | ||
101 | Q_NOTE(_CS4 ) , | ||
102 | Q_NOTE(_D4 ) , | ||
103 | Q_NOTE(_DS4 ) , | ||
104 | Q_NOTE(_E4 ) , | ||
105 | Q_NOTE(_F4 ) , | ||
106 | Q_NOTE(_FS4 ) , | ||
107 | Q_NOTE(_G4 ) , | ||
108 | Q_NOTE(_GS4 ) , | ||
109 | Q_NOTE(_A4 ) , | ||
110 | Q_NOTE(_AS4 ) , | ||
111 | Q_NOTE(_B1 ) , | ||
112 | |||
113 | |||
114 | Q_NOTE(_C2 ) , | ||
115 | Q_NOTE(_CS2 ) , | ||
116 | Q_NOTE(_D2 ) , | ||
117 | Q_NOTE(_DS2 ) , | ||
118 | Q_NOTE(_E2 ) , | ||
119 | Q_NOTE(_F2 ) , | ||
120 | Q_NOTE(_FS2 ) , | ||
121 | Q_NOTE(_G2 ) , | ||
122 | Q_NOTE(_GS2 ) , | ||
123 | Q_NOTE(_A2 ) , | ||
124 | Q_NOTE(_AS2 ) , | ||
125 | Q_NOTE(_B2 ) , | ||
126 | Q_NOTE(_C3 ) , | ||
127 | Q_NOTE(_CS3 ) , | ||
128 | Q_NOTE(_D3 ) , | ||
129 | Q_NOTE(_DS3 ) , | ||
130 | Q_NOTE(_E3 ) , | ||
131 | Q_NOTE(_F3 ) , | ||
132 | Q_NOTE(_FS3 ) , | ||
133 | Q_NOTE(_G3 ) , | ||
134 | Q_NOTE(_GS3 ) , | ||
135 | Q_NOTE(_A3 ) , | ||
136 | Q_NOTE(_AS3 ) , | ||
137 | Q_NOTE(_B3 ) , | ||
138 | Q_NOTE(_C4 ) , | ||
139 | Q_NOTE(_CS4 ) , | ||
140 | Q_NOTE(_D4 ) , | ||
141 | Q_NOTE(_DS4 ) , | ||
142 | Q_NOTE(_E4 ) , | ||
143 | Q_NOTE(_F4 ) , | ||
144 | Q_NOTE(_FS4 ) , | ||
145 | Q_NOTE(_G4 ) , | ||
146 | Q_NOTE(_GS4 ) , | ||
147 | Q_NOTE(_A4 ) , | ||
148 | Q_NOTE(_AS4 ) , | ||
149 | Q_NOTE(_B4 ) , | ||
150 | Q_NOTE(_C5 ) , | ||
151 | Q_NOTE(_CS5 ) , | ||
152 | Q_NOTE(_D5 ) , | ||
153 | Q_NOTE(_DS5 ) , | ||
154 | Q_NOTE(_E5 ) , | ||
155 | Q_NOTE(_F5 ) , | ||
156 | Q_NOTE(_FS5 ) , | ||
157 | Q_NOTE(_G5 ) , | ||
158 | Q_NOTE(_GS5 ) , | ||
159 | Q_NOTE(_A5 ) , | ||
160 | Q_NOTE(_AS5 ) , | ||
161 | Q_NOTE(_B5 ) , | ||
162 | Q_NOTE(_C6 ) , | ||
163 | Q_NOTE(_CS6 ) , | ||
164 | Q_NOTE(_D6 ) , | ||
165 | Q_NOTE(_DS6 ) , | ||
166 | Q_NOTE(_E6 ) , | ||
167 | Q_NOTE(_F6 ) , | ||
168 | Q_NOTE(_FS6 ) , | ||
169 | Q_NOTE(_G6 ) , | ||
170 | Q_NOTE(_GS6 ) , | ||
171 | Q_NOTE(_A6 ) , | ||
172 | Q_NOTE(_AS6 ) , | ||
173 | Q_NOTE(_B6 ) , | ||
174 | Q_NOTE(_C7 ) , | ||
175 | Q_NOTE(_CS7 ) , | ||
176 | Q_NOTE(_D7 ) , | ||
177 | Q_NOTE(_DS7 ) , | ||
178 | Q_NOTE(_E7 ) , | ||
179 | Q_NOTE(_F7 ) , | ||
180 | Q_NOTE(_FS7 ) , | ||
181 | Q_NOTE(_G7 ) , | ||
182 | Q_NOTE(_GS7 ) , | ||
183 | Q_NOTE(_A7 ) , | ||
184 | Q_NOTE(_AS7 ) , | ||
185 | Q_NOTE(_B7 ) , | ||
186 | Q_NOTE(_C8 ) , | ||
187 | Q_NOTE(_CS8 ) , | ||
188 | Q_NOTE(_D8 ) , | ||
189 | Q_NOTE(_DS8 ) , | ||
190 | Q_NOTE(_E8 ) , | ||
191 | Q_NOTE(_F8 ) , | ||
192 | Q_NOTE(_FS8 ) , | ||
193 | Q_NOTE(_G8 ) , | ||
194 | Q_NOTE(_GS8 ) , | ||
195 | Q_NOTE(_A8 ) , | ||
196 | Q_NOTE(_AS8 ) , | ||
197 | Q_NOTE(_B8 ) , | ||
198 | 106 | ||
107 | Q__NOTE(_C2 ) , | ||
108 | Q__NOTE(_CS2 ) , | ||
109 | Q__NOTE(_D2 ) , | ||
110 | Q__NOTE(_DS2 ) , | ||
111 | Q__NOTE(_E2 ) , | ||
112 | Q__NOTE(_F2 ) , | ||
113 | Q__NOTE(_FS2 ) , | ||
114 | Q__NOTE(_G2 ) , | ||
115 | Q__NOTE(_GS2 ) , | ||
116 | Q__NOTE(_A2 ) , | ||
117 | Q__NOTE(_AS2 ) , | ||
118 | Q__NOTE(_B2 ) , | ||
119 | Q__NOTE(_C3 ) , | ||
120 | Q__NOTE(_CS3 ) , | ||
121 | Q__NOTE(_D3 ) , | ||
122 | Q__NOTE(_DS3 ) , | ||
123 | Q__NOTE(_E3 ) , | ||
124 | Q__NOTE(_F3 ) , | ||
125 | Q__NOTE(_FS3 ) , | ||
126 | Q__NOTE(_G3 ) , | ||
127 | Q__NOTE(_GS3 ) , | ||
128 | Q__NOTE(_A3 ) , | ||
129 | Q__NOTE(_AS3 ) , | ||
130 | Q__NOTE(_B3 ) , | ||
131 | Q__NOTE(_C4 ) , | ||
132 | Q__NOTE(_CS4 ) , | ||
133 | Q__NOTE(_D4 ) , | ||
134 | Q__NOTE(_DS4 ) , | ||
135 | Q__NOTE(_E4 ) , | ||
136 | Q__NOTE(_F4 ) , | ||
137 | Q__NOTE(_FS4 ) , | ||
138 | Q__NOTE(_G4 ) , | ||
139 | Q__NOTE(_GS4 ) , | ||
140 | Q__NOTE(_A4 ) , | ||
141 | Q__NOTE(_AS4 ) , | ||
142 | Q__NOTE(_B4 ) , | ||
143 | Q__NOTE(_C5 ) , | ||
144 | Q__NOTE(_CS5 ) , | ||
145 | Q__NOTE(_D5 ) , | ||
146 | Q__NOTE(_DS5 ) , | ||
147 | Q__NOTE(_E5 ) , | ||
148 | Q__NOTE(_F5 ) , | ||
149 | Q__NOTE(_FS5 ) , | ||
150 | Q__NOTE(_G5 ) , | ||
151 | Q__NOTE(_GS5 ) , | ||
152 | Q__NOTE(_A5 ) , | ||
153 | Q__NOTE(_AS5 ) , | ||
154 | Q__NOTE(_B5 ) , | ||
155 | Q__NOTE(_C6 ) , | ||
156 | Q__NOTE(_CS6 ) , | ||
157 | Q__NOTE(_D6 ) , | ||
158 | Q__NOTE(_DS6 ) , | ||
159 | Q__NOTE(_E6 ) , | ||
160 | Q__NOTE(_F6 ) , | ||
161 | Q__NOTE(_FS6 ) , | ||
162 | Q__NOTE(_G6 ) , | ||
163 | Q__NOTE(_GS6 ) , | ||
164 | Q__NOTE(_A6 ) , | ||
165 | Q__NOTE(_AS6 ) , | ||
166 | Q__NOTE(_B6 ) , | ||
167 | Q__NOTE(_C7 ) , | ||
168 | Q__NOTE(_CS7 ) , | ||
169 | Q__NOTE(_D7 ) , | ||
170 | Q__NOTE(_DS7 ) , | ||
171 | Q__NOTE(_E7 ) , | ||
172 | Q__NOTE(_F7 ) , | ||
173 | Q__NOTE(_FS7 ) , | ||
174 | Q__NOTE(_G7 ) , | ||
175 | Q__NOTE(_GS7 ) , | ||
176 | Q__NOTE(_A7 ) , | ||
177 | Q__NOTE(_AS7 ) , | ||
178 | Q__NOTE(_B7 ) , | ||
179 | Q__NOTE(_C8 ) , | ||
180 | Q__NOTE(_CS8 ) , | ||
181 | Q__NOTE(_D8 ) , | ||
182 | Q__NOTE(_DS8 ) , | ||
183 | Q__NOTE(_E8 ) , | ||
184 | Q__NOTE(_F8 ) , | ||
185 | Q__NOTE(_FS8 ) , | ||
186 | Q__NOTE(_G8 ) , | ||
187 | Q__NOTE(_GS8 ) , | ||
188 | Q__NOTE(_A8 ) , | ||
189 | Q__NOTE(_AS8 ) , | ||
190 | Q__NOTE(_B8 ) , | ||
199 | }; | 191 | }; |
200 | 192 | ||
201 | float tone_rs[][2] = { | 193 | float tone_rs[][2] = SONG(ROCK_A_BYE_BABY); |
202 | Q_NOTE(_A4 ) , | 194 | |
203 | Q_NOTE(_A4 ) , | 195 | void matrix_init_user(void) { |
204 | Q_NOTE(_A4 ) , | 196 | init_notes(); |
205 | Q_NOTE(_A4 ) , | 197 | PLAY_NOTE_ARRAY(start_up, false, STACCATO); |
206 | Q_NOTE(_AS8 ) , | 198 | println("Matrix Init"); |
207 | Q_NOTE(_B8 ) , | 199 | } |
208 | }; | ||
209 | 200 | ||
210 | #endif | 201 | #endif |
211 | 202 | ||
203 | |||
212 | void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) | 204 | void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) |
213 | { | 205 | { |
214 | if (order) | 206 | if (order) |
@@ -241,69 +233,82 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l | |||
241 | const uint16_t PROGMEM fn_actions[] = { | 233 | const uint16_t PROGMEM fn_actions[] = { |
242 | }; | 234 | }; |
243 | 235 | ||
244 | //#define MUSIC_ARRAY_SIZE(x) (((int)(sizeof(x) / (sizeof(x[0][0])))) / 2) | ||
245 | 236 | ||
246 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | 237 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
247 | { | 238 | { |
248 | 239 | ||
249 | // MACRODOWN only works in this function | 240 | // MACRODOWN only works in this function |
250 | switch(id) { | 241 | switch(id) |
251 | case M_LW: | 242 | { |
252 | if (record->event.pressed) { | 243 | case M_LW: |
253 | #ifdef AUDIO_ENABLE | 244 | if (record->event.pressed) { |
254 | println("PlayNotes LW"); | 245 | #ifdef AUDIO_ENABLE |
255 | PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); | 246 | PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); |
256 | #endif | 247 | #endif |
257 | layer_on(_LW); | 248 | layer_on(_LW); |
258 | update_tri_layer(_LW, _RS, _FN); | 249 | update_tri_layer(_LW, _RS, _AD); |
259 | } else { | 250 | } else { |
260 | layer_off(_LW); | 251 | layer_off(_LW); |
261 | update_tri_layer(_LW, _RS, _FN); | 252 | update_tri_layer(_LW, _RS, _AD); |
262 | } | 253 | } |
263 | break; | 254 | break; |
264 | case M_RS: | 255 | case M_RS: |
265 | if (record->event.pressed) { | 256 | if (record->event.pressed) { |
266 | #ifdef AUDIO_ENABLE | 257 | #ifdef AUDIO_ENABLE |
267 | println("PlayNotes RS"); | 258 | PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); |
268 | PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); | 259 | #endif |
269 | #endif | 260 | layer_on(_RS); |
270 | layer_on(_RS); | 261 | update_tri_layer(_LW, _RS, _AD); |
271 | update_tri_layer(_LW, _RS, _FN); | 262 | } else { |
272 | } else { | 263 | layer_off(_RS); |
273 | layer_off(_RS); | 264 | update_tri_layer(_LW, _RS, _AD); |
274 | update_tri_layer(_LW, _RS, _FN); | 265 | } |
275 | } | 266 | break; |
276 | break; | ||
277 | default: | ||
278 | break; | ||
279 | } | ||
280 | return MACRO_NONE; | ||
281 | }; | ||
282 | 267 | ||
283 | #ifdef AUDIO_ENABLE | 268 | case M_FN: |
284 | float start_up[][2] = { | 269 | if (record->event.pressed) { |
285 | Q_NOTE(_E4 ) , | 270 | layer_on(_FN); |
286 | Q_NOTE(_E4 ) , | 271 | } else { |
287 | Q_NOTE(_F4 ) , | 272 | layer_off(_FN); |
288 | Q_NOTE(_G4 ) , | 273 | } |
289 | Q_NOTE(_G4 ) , | 274 | break; |
290 | Q_NOTE(_F4 ) , | ||
291 | Q_NOTE(_E4 ) , | ||
292 | Q_NOTE(_D4 ) , | ||
293 | Q_NOTE(_C4 ) , | ||
294 | Q_NOTE(_C4 ) , | ||
295 | Q_NOTE(_D4 ) , | ||
296 | Q_NOTE(_E4 ) , | ||
297 | H_NOTE(_E4 ) , | ||
298 | Q_NOTE(_D4 ) , | ||
299 | H_NOTE(_D4 ) , | ||
300 | }; | ||
301 | #endif | ||
302 | 275 | ||
303 | void matrix_init_user(void) { | 276 | case M_T1: |
304 | #ifdef AUDIO_ENABLE | 277 | if (record->event.pressed) set_timbre(TIMBRE_12); |
305 | init_notes(); | 278 | break; |
306 | PLAY_NOTE_ARRAY(start_up, false, STACCATO); | 279 | |
307 | println("Matrix Init"); | 280 | case M_T2: |
308 | #endif | 281 | if (record->event.pressed) set_timbre(TIMBRE_25); |
309 | } | 282 | break; |
283 | |||
284 | case M_T3: | ||
285 | if (record->event.pressed) set_timbre(TIMBRE_50); | ||
286 | break; | ||
287 | |||
288 | case M_T4: | ||
289 | if (record->event.pressed) set_timbre(TIMBRE_75); | ||
290 | break; | ||
291 | |||
292 | |||
293 | case M_TU: | ||
294 | if (record->event.pressed) increase_tempo(10); | ||
295 | break; | ||
296 | |||
297 | case M_TD: | ||
298 | if (record->event.pressed) decrease_tempo(10); | ||
299 | break; | ||
300 | |||
301 | case M_DF: | ||
302 | if (record->event.pressed) | ||
303 | { | ||
304 | set_timbre(TIMBRE_DEFAULT); | ||
305 | set_tempo(TEMPO_DEFAULT); | ||
306 | } | ||
307 | break; | ||
308 | |||
309 | default: | ||
310 | break; | ||
311 | |||
312 | } | ||
313 | return MACRO_NONE; | ||
314 | }; \ No newline at end of file | ||
diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index d46996650..eefa42855 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk | |||
@@ -1,7 +1,7 @@ | |||
1 | BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | 1 | BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) |
2 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | 2 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) |
3 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | 3 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) |
4 | CONSOLE_ENABLE = yes # Console for debug(+400) | 4 | CONSOLE_ENABLE = no # Console for debug(+400) |
5 | COMMAND_ENABLE = yes # Commands for debug and configuration | 5 | COMMAND_ENABLE = yes # Commands for debug and configuration |
6 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | 6 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work |
7 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | 7 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality |