diff options
Diffstat (limited to 'keyboards/preonic/keymaps/dudeofawesome/keymap.c')
-rw-r--r-- | keyboards/preonic/keymaps/dudeofawesome/keymap.c | 130 |
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 | ||
214 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 214 | bool 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 | |||
270 | bool numpadActive = false; | ||
271 | |||
272 | float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND); | ||
273 | |||
274 | void 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 | }; |