spidey3.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include QMK_KEYBOARD_H
  5. #ifdef UNICODEMAP_ENABLE
  6. # include "spidey3_unicode.h"
  7. #endif
  8. enum userspace_layers {
  9. _BASE = 0,
  10. _NUMPAD,
  11. _FN,
  12. _GLYPH,
  13. };
  14. enum custom_keycodes {
  15. CH_SUSP = SAFE_RANGE, // Suspend
  16. SPI_NORMAL,
  17. SPI_WIDE,
  18. SPI_SCRIPT,
  19. SPI_BLOCKS,
  20. SPI_CIRCLE,
  21. SPI_SQUARE,
  22. SPI_PARENS,
  23. SPI_FRAKTR,
  24. SPI_BOLD,
  25. SPI_MATH,
  26. SPI_GFLOCK,
  27. SPI_KP_00,
  28. SPI_GLO,
  29. };
  30. #ifdef RGBLIGHT_ENABLE
  31. enum layer_base {
  32. LAYER_BASE_DEFAULT = _BASE,
  33. LAYER_BASE_REGULAR = _NUMPAD,
  34. LAYER_BASE_END = _FN + 1,
  35. };
  36. typedef enum layer_ack {
  37. ACK_NO = 0,
  38. ACK_YES,
  39. ACK_MEH,
  40. ACK_HUH,
  41. } layer_ack_t;
  42. # define RGB_LAYER_ACK_DURATION 500
  43. void matrix_init_user_rgb(void);
  44. void matrix_scan_user_rgb(void);
  45. void keyboard_post_init_user_rgb(void);
  46. bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
  47. void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
  48. layer_state_t layer_state_set_user_rgb(layer_state_t state);
  49. layer_state_t default_layer_state_set_user_rgb(layer_state_t state);
  50. bool led_update_user_rgb(led_t led_state);
  51. void rgb_layer_ack(layer_ack_t n);
  52. void rgb_layer_ack_yn(bool yn);
  53. void clear_rgb_layers(void);
  54. void shutdown_user_rgb(void);
  55. # if defined(UNICODE_COMMON_ENABLE)
  56. void unicode_input_mode_set_user_rgb(uint8_t input_mode);
  57. # endif
  58. #endif
  59. #ifdef UNICODEMAP_ENABLE
  60. void eeconfig_init_user_unicode(void);
  61. #endif
  62. #ifdef SPI_DEBUG_SCAN_RATE
  63. # ifndef SPI_SCAN_RATE_INTERVAL
  64. # define SPI_SCAN_RATE_INTERVAL 10
  65. # endif
  66. #endif