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.

125 lines
3.6 KiB

  1. /* Copyright 2021 QMK
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. enum serial_transaction_id {
  18. #ifdef USE_I2C
  19. I2C_EXECUTE_CALLBACK,
  20. #endif // USE_I2C
  21. GET_SLAVE_MATRIX_CHECKSUM,
  22. GET_SLAVE_MATRIX_DATA,
  23. #ifdef SPLIT_TRANSPORT_MIRROR
  24. PUT_MASTER_MATRIX,
  25. #endif // SPLIT_TRANSPORT_MIRROR
  26. #ifdef ENCODER_ENABLE
  27. GET_ENCODERS_CHECKSUM,
  28. GET_ENCODERS_DATA,
  29. CMD_ENCODER_DRAIN,
  30. #endif // ENCODER_ENABLE
  31. #ifndef DISABLE_SYNC_TIMER
  32. PUT_SYNC_TIMER,
  33. #endif // DISABLE_SYNC_TIMER
  34. #if !defined(NO_ACTION_LAYER) && defined(SPLIT_LAYER_STATE_ENABLE)
  35. PUT_LAYER_STATE,
  36. PUT_DEFAULT_LAYER_STATE,
  37. #endif // !defined(NO_ACTION_LAYER) && defined(SPLIT_LAYER_STATE_ENABLE)
  38. #ifdef SPLIT_LED_STATE_ENABLE
  39. PUT_LED_STATE,
  40. #endif // SPLIT_LED_STATE_ENABLE
  41. #ifdef SPLIT_MODS_ENABLE
  42. PUT_MODS,
  43. #endif // SPLIT_MODS_ENABLE
  44. #ifdef BACKLIGHT_ENABLE
  45. PUT_BACKLIGHT,
  46. #endif // BACKLIGHT_ENABLE
  47. #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
  48. PUT_RGBLIGHT,
  49. #endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
  50. #if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
  51. PUT_LED_MATRIX,
  52. #endif // defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
  53. #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
  54. PUT_RGB_MATRIX,
  55. #endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
  56. #if defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE)
  57. PUT_WPM,
  58. #endif // defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE)
  59. #if defined(OLED_ENABLE) && defined(SPLIT_OLED_ENABLE)
  60. PUT_OLED,
  61. #endif // defined(OLED_ENABLE) && defined(SPLIT_OLED_ENABLE)
  62. #if defined(ST7565_ENABLE) && defined(SPLIT_ST7565_ENABLE)
  63. PUT_ST7565,
  64. #endif // defined(ST7565_ENABLE) && defined(SPLIT_ST7565_ENABLE)
  65. #if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE)
  66. GET_POINTING_CHECKSUM,
  67. GET_POINTING_DATA,
  68. PUT_POINTING_CPI,
  69. #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE)
  70. #if defined(SPLIT_WATCHDOG_ENABLE)
  71. PUT_WATCHDOG,
  72. #endif // defined(SPLIT_WATCHDOG_ENABLE)
  73. #if defined(HAPTIC_ENABLE) && defined(SPLIT_HAPTIC_ENABLE)
  74. PUT_HAPTIC,
  75. #endif // defined(HAPTIC_ENABLE) && defined(SPLIT_HAPTIC_ENABLE)
  76. #if defined(SPLIT_ACTIVITY_ENABLE)
  77. PUT_ACTIVITY,
  78. #endif // SPLIT_ACTIVITY_ENABLE
  79. #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER)
  80. PUT_RPC_INFO,
  81. PUT_RPC_REQ_DATA,
  82. EXECUTE_RPC,
  83. GET_RPC_RESP_DATA,
  84. #endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER)
  85. // keyboard-specific
  86. #ifdef SPLIT_TRANSACTION_IDS_KB
  87. SPLIT_TRANSACTION_IDS_KB,
  88. #endif // SPLIT_TRANSACTION_IDS_KB
  89. // user/keymap-specific
  90. #ifdef SPLIT_TRANSACTION_IDS_USER
  91. SPLIT_TRANSACTION_IDS_USER,
  92. #endif // SPLIT_TRANSACTION_IDS_USER
  93. #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE)
  94. PUT_DETECTED_OS,
  95. #endif // defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE)
  96. NUM_TOTAL_TRANSACTIONS
  97. };
  98. // Ensure we only use 5 bits for transaction
  99. _Static_assert(NUM_TOTAL_TRANSACTIONS <= (1 << 5), "Max number of usable transactions exceeded");