]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/xulkal/process_records.c
115623caa44a7dbf6631f90010cf0264b024148e
[qmk_firmware.git] / users / xulkal / process_records.c
1 #include "process_records.h"
2 #include "custom_keycodes.h"
3 #include "timer_utils.h"
4
5 #if defined(RGB_MATRIX_ENABLE)
6 extern void eeconfig_update_rgb_matrix_default(void);
7 #endif
8
9 #ifdef TRILAYER_ENABLED
10 uint32_t layer_state_set_user(uint32_t state)
11 {
12     return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
13 }
14 #endif
15
16 bool process_record_user(uint16_t keycode, keyrecord_t *record)
17 {
18     static uint16_t reset_timer;
19
20 #ifndef TAP_DANCE_ENABLE
21     if (!process_tap_dance_double(keycode, record))
22         return false;
23 #endif
24
25     switch (keycode)
26     {
27         case RGBRST:
28             {
29 #if defined(RGBLIGHT_ENABLE)
30                 if (record->event.pressed)
31                 {
32                     eeconfig_update_rgblight_default();
33                     rgblight_enable();
34                 }
35 #elif defined(RGB_MATRIX_ENABLE)
36                 if (record->event.pressed)
37                     eeconfig_update_rgb_matrix_default();
38 #endif
39             }
40             return false;
41         case RESET:
42             {
43                 if (record->event.pressed)
44                     reset_timer = timer_read() + 500;
45                 else if (timer_expired(reset_timer))
46                     reset_keyboard();
47             }
48             return false;
49   }
50
51   return process_record_keymap(keycode, record);
52 }
53
54 __attribute__ ((weak))
55 bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
56 {
57     return true;
58 }