process_records.c 1.4 KB

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