mattly.c 1.6 KB

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