aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/config.h27
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/keymap.c130
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/readme.md2
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/rules.mk5
-rw-r--r--users/dudeofawesome/dudeofawesome.h6
5 files changed, 94 insertions, 76 deletions
diff --git a/keyboards/preonic/keymaps/dudeofawesome/config.h b/keyboards/preonic/keymaps/dudeofawesome/config.h
index 566fac3ed..48bd13ba4 100644
--- a/keyboards/preonic/keymaps/dudeofawesome/config.h
+++ b/keyboards/preonic/keymaps/dudeofawesome/config.h
@@ -1,27 +1,20 @@
1#ifndef CONFIG_USER_H 1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H 2#define CONFIG_USER_H
3 3
4#include "config_common.h" 4#include "../../config.h"
5#include "dudeofawesome.h"
5 6
6#define TAPPING_TOGGLE 2 7#define TAPPING_TOGGLE 2
7 8
8#ifdef AUDIO_ENABLE 9#ifdef AUDIO_ENABLE
9 #define STARTUP_SONG SONG(PLANCK_SOUND) 10 #define STARTUP_SONG SONG(PLANCK_SOUND)
10 // #define STARTUP_SONG SONG(NO_SOUND) 11 // #define STARTUP_SONG SONG(NO_SOUND)
11 12
12 #define WORKMAN_SOUND \ 13 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
13 E__NOTE(_GS7), \ 14 SONG(WORKMAN_SOUND), \
14 ED_NOTE(_E7), \ 15 SONG(COLEMAK_SOUND), \
15 S__NOTE(_REST), \ 16 SONG(DVORAK_SOUND) \
16 E__NOTE(_A6), \ 17 }
17 S__NOTE(_REST), \
18 ED_NOTE(_GS6),
19
20 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
21 SONG(WORKMAN_SOUND), \
22 SONG(COLEMAK_SOUND), \
23 SONG(DVORAK_SOUND) \
24 }
25#endif 18#endif
26 19
27#define MUSIC_MASK (keycode != KC_NO) 20#define MUSIC_MASK (keycode != KC_NO)
diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c
index e8faf670b..dbe7fb648 100644
--- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c
+++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c
@@ -213,63 +213,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
213 213
214bool process_record_user(uint16_t keycode, keyrecord_t *record) { 214bool process_record_user(uint16_t keycode, keyrecord_t *record) {
215 switch (keycode) { 215 switch (keycode) {
216 case QWERTY: 216 case QWERTY:
217 if (record->event.pressed) { 217 if (record->event.pressed) {
218 set_single_persistent_default_layer(_QWERTY); 218 set_single_persistent_default_layer(_QWERTY);
219 }
220 return false;
221 break;
222 case WORKMAN:
223 if (record->event.pressed) {
224 set_single_persistent_default_layer(_WORKMAN);
225 }
226 return false;
227 break;
228 case COLEMAK:
229 if (record->event.pressed) {
230 set_single_persistent_default_layer(_COLEMAK);
231 }
232 return false;
233 break;
234 case DVORAK:
235 if (record->event.pressed) {
236 set_single_persistent_default_layer(_DVORAK);
237 }
238 return false;
239 break;
240 case LOWER:
241 if (record->event.pressed) {
242 layer_on(_LOWER);
243 update_tri_layer(_LOWER, _RAISE, _ADJUST);
244 } else {
245 layer_off(_LOWER);
246 update_tri_layer(_LOWER, _RAISE, _ADJUST);
247 }
248 return false;
249 break;
250 case RAISE:
251 if (record->event.pressed) {
252 layer_on(_RAISE);
253 update_tri_layer(_LOWER, _RAISE, _ADJUST);
254 } else {
255 layer_off(_RAISE);
256 update_tri_layer(_LOWER, _RAISE, _ADJUST);
257 }
258 return false;
259 break;
260 case BACKLIT:
261 if (record->event.pressed) {
262 register_code(KC_RSFT);
263 #ifdef BACKLIGHT_ENABLE
264 backlight_step();
265 #endif
266 PORTE &= ~(1<<6);
267 } else {
268 unregister_code(KC_RSFT);
269 PORTE |= (1<<6);
270 }
271 return false;
272 break;
273 } 219 }
274 return true; 220 return false;
221 case WORKMAN:
222 if (record->event.pressed) {
223 set_single_persistent_default_layer(_WORKMAN);
224 }
225 return false;
226 case COLEMAK:
227 if (record->event.pressed) {
228 set_single_persistent_default_layer(_COLEMAK);
229 }
230 return false;
231 case DVORAK:
232 if (record->event.pressed) {
233 set_single_persistent_default_layer(_DVORAK);
234 }
235 return false;
236 case LOWER:
237 if (record->event.pressed) {
238 layer_on(_LOWER);
239 update_tri_layer(_LOWER, _RAISE, _ADJUST);
240 } else {
241 layer_off(_LOWER);
242 update_tri_layer(_LOWER, _RAISE, _ADJUST);
243 }
244 return false;
245 case RAISE:
246 if (record->event.pressed) {
247 layer_on(_RAISE);
248 update_tri_layer(_LOWER, _RAISE, _ADJUST);
249 } else {
250 layer_off(_RAISE);
251 update_tri_layer(_LOWER, _RAISE, _ADJUST);
252 }
253 return false;
254 case BACKLIT:
255 if (record->event.pressed) {
256 register_code(KC_RSFT);
257 #ifdef BACKLIGHT_ENABLE
258 backlight_step();
259 #endif
260 PORTE &= ~(1<<6);
261 } else {
262 unregister_code(KC_RSFT);
263 PORTE |= (1<<6);
264 }
265 return false;
266 }
267 return true;
268};
269
270bool numpadActive = false;
271
272float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND);
273
274void matrix_scan_user (void) {
275 uint8_t layer = biton32(layer_state);
276
277 switch (layer) {
278 case _NUMPAD:
279 if (!numpadActive) {
280 numpadActive = true;
281 PLAY_SONG(tone_numpad_on);
282 }
283 break;
284 default:
285 if (numpadActive) {
286 numpadActive = false;
287 }
288 }
275}; 289};
diff --git a/keyboards/preonic/keymaps/dudeofawesome/readme.md b/keyboards/preonic/keymaps/dudeofawesome/readme.md
index 244442494..a5d89fc82 100644
--- a/keyboards/preonic/keymaps/dudeofawesome/readme.md
+++ b/keyboards/preonic/keymaps/dudeofawesome/readme.md
@@ -10,7 +10,7 @@
10 - Dvorak 10 - Dvorak
11 - Colemak 11 - Colemak
12- Numpad layer 12- Numpad layer
13 ![numpad layer](https://i.imgur.com/V5iGHZg.png) 13 ![numpad layer](https://i.imgur.com/IH8sWmQ.png)
14- Audio 14- Audio
15 15
16## Building and flashing 16## Building and flashing
diff --git a/keyboards/preonic/keymaps/dudeofawesome/rules.mk b/keyboards/preonic/keymaps/dudeofawesome/rules.mk
index e69de29bb..4434d3de7 100644
--- a/keyboards/preonic/keymaps/dudeofawesome/rules.mk
+++ b/keyboards/preonic/keymaps/dudeofawesome/rules.mk
@@ -0,0 +1,5 @@
1BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
2MIDI_ENABLE = no # MIDI controls
3AUDIO_ENABLE = yes # Audio output on port C6
4UNICODE_ENABLE = no # Unicode
5RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h
index 12b581b4d..91557925a 100644
--- a/users/dudeofawesome/dudeofawesome.h
+++ b/users/dudeofawesome/dudeofawesome.h
@@ -14,6 +14,12 @@
14 E__NOTE(_A6), \ 14 E__NOTE(_A6), \
15 S__NOTE(_REST), \ 15 S__NOTE(_REST), \
16 ED_NOTE(_GS6), 16 ED_NOTE(_GS6),
17
18 #define NUMPAD_ON_SOUND \
19 E__NOTE(_C6), \
20 ED_NOTE(_BF5), \
21 S__NOTE(_C6), \
22 ED_NOTE(_BF5),
17#endif 23#endif
18 24
19#endif 25#endif