]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/xulkal/process_records.c
7c2b5e133f85ce66119d97a3b6e60994ae97baa8
[qmk_firmware.git] / users / xulkal / process_records.c
1 #include "process_records.h"
2
3 #ifdef TAP_DANCE_ENABLE
4 //Tap Dance Definitions
5 qk_tap_dance_action_t tap_dance_actions[] = {
6   [COMM_QUOT]  = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUOT),
7   [BACKSPACE] = ACTION_TAP_DANCE_DOUBLE (KC_BSPACE, LCTL(KC_BSPACE)),
8   [TAP_TAB] = ACTION_TAP_DANCE_DOUBLE (KC_TAB, LSFT(KC_TAB)),
9   [CTRL_MINUS] = ACTION_TAP_DANCE_DOUBLE (KC_LCTL, KC_MINS),
10   [CTRL_PLUS] = ACTION_TAP_DANCE_DOUBLE (KC_RCTL, KC_EQL)
11 };
12 #endif
13
14 #if defined(RGB_MATRIX_ENABLE)
15 extern void eeconfig_update_rgb_matrix_default(void);
16 #endif
17
18 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
19   static uint16_t reset_timer;
20   switch (keycode) {
21     case QWERTY:
22       if (record->event.pressed) {
23         set_single_persistent_default_layer(_QWERTY);
24       }
25       return false;
26     case GAME:
27 #ifndef GAMELAYER_DISABLE
28       if (record->event.pressed) {
29         set_single_persistent_default_layer(_GAME);
30       }
31 #endif
32       return false;
33     case LOWER:
34       if (record->event.pressed) {
35         layer_on(_LOWER);
36 #ifdef TRILAYER_ENABLED
37         update_tri_layer(_LOWER, _RAISE, _ADJUST);
38 #endif
39       } else {
40         layer_off(_LOWER);
41 #ifdef TRILAYER_ENABLED
42         update_tri_layer(_LOWER, _RAISE, _ADJUST);
43 #endif
44       }
45       return false;
46     case RAISE:
47       if (record->event.pressed) {
48         layer_on(_RAISE);
49 #ifdef TRILAYER_ENABLED
50         update_tri_layer(_LOWER, _RAISE, _ADJUST);
51 #endif
52       } else {
53         layer_off(_RAISE);
54 #ifdef TRILAYER_ENABLED
55         update_tri_layer(_LOWER, _RAISE, _ADJUST);
56 #endif
57       }
58       return false;
59     case RGBRST:
60 #if defined(RGBLIGHT_ENABLE)
61         if (record->event.pressed) {
62           eeconfig_update_rgblight_default();
63           rgblight_enable();
64         }
65 #elif defined(RGB_MATRIX_ENABLE)
66         if (record->event.pressed) {
67           eeconfig_update_rgb_matrix_default();
68         }
69 #endif
70       return false;
71     case RESET:
72       if (record->event.pressed) {
73           reset_timer = timer_read();
74       } else {
75           if (timer_elapsed(reset_timer) >= 500) {
76               reset_keyboard();
77           }
78       }
79       return false;
80   }
81
82   return process_record_keymap(keycode, record) &&
83 #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
84     process_record_rgb(keycode, record) &&
85 #endif // RGBLIGHT_ENABLE;
86     true;
87 }
88
89 __attribute__ ((weak))
90 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
91   return true;
92 }
93
94
95 __attribute__ ((weak))
96 bool process_record_rgb(uint16_t keycode, keyrecord_t *record) {
97   return true;
98 }