aboutsummaryrefslogtreecommitdiff
path: root/keyboards/preonic/keymaps/dudeofawesome/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/preonic/keymaps/dudeofawesome/keymap.c')
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/keymap.c130
1 files changed, 72 insertions, 58 deletions
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};