]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/mattly/mattly.c
mattly's userspace and iris (#6279)
[qmk_firmware.git] / users / mattly / mattly.c
1 #include "mattly.h"
2
3 __attribute__ ((weak))
4 layer_state_t layer_state_set_keymap (layer_state_t state) {
5   return state;
6 }
7
8 void set_lights_default(void) {
9     #ifdef RGBLIGHT_ENABLE
10         if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
11             rgblight_sethsv_noeeprom(HSV_CAPS);
12         } else {
13             rgblight_sethsv_noeeprom(HSV_DEFAULT);
14         }
15     #endif
16 }
17
18 void layer_state_set_rgb(layer_state_t state) {
19 #ifdef RGBLIGHT_ENABLE
20     switch (biton32(state)) {
21         case _QWERTY:
22             set_lights_default();
23             break;
24         case _SYMBOL:
25             rgblight_sethsv_noeeprom(HSV_SYMBOL);
26             break;
27         case _NAVNUM:
28             rgblight_sethsv_noeeprom(HSV_NAVNUM);
29             break;
30         case _FUNCT:
31             rgblight_sethsv_noeeprom(HSV_FUNCT);
32             break;
33     }
34 #endif
35 }
36
37
38 layer_state_t layer_state_set_user (layer_state_t state) {
39   state = update_tri_layer_state(state, _SYMBOL, _NAVNUM, _FUNCT);
40   layer_state_set_rgb(state);
41   return layer_state_set_keymap (state);
42 }
43
44 void on_reset(void) {
45     #ifdef RGBLIGHT_ENABLE
46     rgblight_sethsv_noeeprom(HSV_RESET);
47     #endif
48 }
49
50 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
51     switch (keycode) {
52         case KC_CAPS:
53             #ifdef RGBLIGHT_ENABLE
54             set_lights_default();
55             #endif
56             return true;
57         case RESET:
58             on_reset();
59             return true;
60         default:
61             return true;
62     }
63 }
64
65 void keyboard_post_init_user(void) {
66 #ifdef RGBLIGHT_ENABLE
67     rgblight_enable_noeeprom();
68     set_lights_default();
69 #endif
70 }