You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.7 KiB

  1. #include "curry.h"
  2. userspace_config_t userspace_config;
  3. #define CURRY_UNICODE_MODE 1
  4. void bootmagic_lite(void) {
  5. matrix_scan();
  6. #if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0
  7. wait_ms(DEBOUNCING_DELAY * 2);
  8. #elif defined(DEBOUNCE) && DEBOUNCE > 0
  9. wait_ms(DEBOUNCE * 2);
  10. #else
  11. wait_ms(30);
  12. #endif
  13. matrix_scan();
  14. if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
  15. bootloader_jump();
  16. }
  17. }
  18. __attribute__((weak)) void keyboard_pre_init_keymap(void) {}
  19. void keyboard_pre_init_user(void) {
  20. userspace_config.raw = eeconfig_read_user();
  21. keyboard_pre_init_keymap();
  22. }
  23. __attribute__((weak)) void matrix_init_keymap(void) {}
  24. // Call user matrix init, set default RGB colors and then
  25. // call the keymap's init function
  26. void matrix_init_user(void) {
  27. #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
  28. set_unicode_input_mode(CURRY_UNICODE_MODE);
  29. get_unicode_input_mode();
  30. #endif // UNICODE_ENABLE
  31. matrix_init_keymap();
  32. }
  33. __attribute__((weak)) void keyboard_post_init_keymap(void) {}
  34. void keyboard_post_init_user(void) {
  35. #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
  36. keyboard_post_init_rgb();
  37. #endif
  38. keyboard_post_init_keymap();
  39. }
  40. __attribute__((weak)) void shutdown_keymap(void) {}
  41. void rgb_matrix_update_pwm_buffers(void);
  42. // On RESET, set all RGB to red, shutdown the keymap.
  43. void shutdown_user(void) {
  44. #if defined(RGBLIGHT_ENABLE)
  45. rgblight_enable_noeeprom();
  46. rgblight_mode_noeeprom(1);
  47. rgblight_setrgb_red();
  48. #endif
  49. #if defined(RGB_MATRIX_ENABLE)
  50. rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
  51. rgb_matrix_update_pwm_buffers();
  52. #endif
  53. shutdown_keymap();
  54. }
  55. __attribute__((weak)) void suspend_power_down_keymap(void) {}
  56. void suspend_power_down_user(void) { suspend_power_down_keymap(); }
  57. __attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
  58. void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); }
  59. __attribute__((weak)) void matrix_scan_keymap(void) {}
  60. // No global matrix scan code, so just run keymap's matrix
  61. // scan function
  62. __attribute__((weak)) void matrix_scan_user(void) {
  63. static bool has_ran_yet;
  64. if (!has_ran_yet) {
  65. has_ran_yet = true;
  66. startup_user();
  67. }
  68. #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
  69. matrix_scan_rgb();
  70. #endif // RGBLIGHT_ENABLE
  71. matrix_scan_keymap();
  72. }
  73. __attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
  74. // On Layer change, run keymap's layer change check
  75. layer_state_t layer_state_set_user(layer_state_t state) {
  76. state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
  77. #if defined(RGBLIGHT_ENABLE)
  78. state = layer_state_set_rgb(state);
  79. #endif
  80. return layer_state_set_keymap(state);
  81. }
  82. __attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; }
  83. // Runs state check and changes underglow color and animation
  84. layer_state_t default_layer_state_set_user(layer_state_t state) { return default_layer_state_set_keymap(state); }
  85. __attribute__((weak)) void led_set_keymap(uint8_t usb_led) {}
  86. // Any custom LED code goes here.
  87. void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); }
  88. __attribute__((weak)) void eeconfig_init_keymap(void) {}
  89. void eeconfig_init_user(void) {
  90. userspace_config.raw = 0;
  91. userspace_config.rgb_layer_change = true;
  92. eeconfig_update_user(userspace_config.raw);
  93. #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
  94. set_unicode_input_mode(CURRY_UNICODE_MODE);
  95. get_unicode_input_mode();
  96. #else
  97. eeprom_update_byte(EECONFIG_UNICODEMODE, CURRY_UNICODE_MODE);
  98. #endif
  99. eeconfig_init_keymap();
  100. keyboard_init();
  101. }