Parent directory

transaction_id_define.h

3732 bytes
  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
 17#pragma once
 18
 19enum serial_transaction_id {
 20#ifdef USE_I2C
 21    I2C_EXECUTE_CALLBACK,
 22#endif // USE_I2C
 23
 24    GET_SLAVE_MATRIX_CHECKSUM,
 25    GET_SLAVE_MATRIX_DATA,
 26
 27#ifdef SPLIT_TRANSPORT_MIRROR
 28    PUT_MASTER_MATRIX,
 29#endif // SPLIT_TRANSPORT_MIRROR
 30
 31#ifdef ENCODER_ENABLE
 32    GET_ENCODERS_CHECKSUM,
 33    GET_ENCODERS_DATA,
 34    CMD_ENCODER_DRAIN,
 35#endif // ENCODER_ENABLE
 36
 37#ifndef DISABLE_SYNC_TIMER
 38    PUT_SYNC_TIMER,
 39#endif // DISABLE_SYNC_TIMER
 40
 41#if !defined(NO_ACTION_LAYER) && defined(SPLIT_LAYER_STATE_ENABLE)
 42    PUT_LAYER_STATE,
 43    PUT_DEFAULT_LAYER_STATE,
 44#endif // !defined(NO_ACTION_LAYER) && defined(SPLIT_LAYER_STATE_ENABLE)
 45
 46#ifdef SPLIT_LED_STATE_ENABLE
 47    PUT_LED_STATE,
 48#endif // SPLIT_LED_STATE_ENABLE
 49
 50#ifdef SPLIT_MODS_ENABLE
 51    PUT_MODS,
 52#endif // SPLIT_MODS_ENABLE
 53
 54#ifdef BACKLIGHT_ENABLE
 55    PUT_BACKLIGHT,
 56#endif // BACKLIGHT_ENABLE
 57
 58#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
 59    PUT_RGBLIGHT,
 60#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
 61
 62#if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
 63    PUT_LED_MATRIX,
 64#endif // defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT)
 65
 66#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT)
 67    PUT_RGB_MATRIX,
 68#endif // defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
 69
 70#if defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE)
 71    PUT_WPM,
 72#endif // defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE)
 73
 74#if defined(OLED_ENABLE) && defined(SPLIT_OLED_ENABLE)
 75    PUT_OLED,
 76#endif // defined(OLED_ENABLE) && defined(SPLIT_OLED_ENABLE)
 77
 78#if defined(ST7565_ENABLE) && defined(SPLIT_ST7565_ENABLE)
 79    PUT_ST7565,
 80#endif // defined(ST7565_ENABLE) && defined(SPLIT_ST7565_ENABLE)
 81
 82#if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE)
 83    GET_POINTING_CHECKSUM,
 84    GET_POINTING_DATA,
 85    PUT_POINTING_CPI,
 86#endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE)
 87
 88#if defined(SPLIT_WATCHDOG_ENABLE)
 89    PUT_WATCHDOG,
 90#endif // defined(SPLIT_WATCHDOG_ENABLE)
 91
 92#if defined(HAPTIC_ENABLE) && defined(SPLIT_HAPTIC_ENABLE)
 93    PUT_HAPTIC,
 94#endif // defined(HAPTIC_ENABLE) && defined(SPLIT_HAPTIC_ENABLE)
 95
 96#if defined(SPLIT_ACTIVITY_ENABLE)
 97    PUT_ACTIVITY,
 98#endif // SPLIT_ACTIVITY_ENABLE
 99
100#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER)
101    PUT_RPC_INFO,
102    PUT_RPC_REQ_DATA,
103    EXECUTE_RPC,
104    GET_RPC_RESP_DATA,
105#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER)
106
107// keyboard-specific
108#ifdef SPLIT_TRANSACTION_IDS_KB
109    SPLIT_TRANSACTION_IDS_KB,
110#endif // SPLIT_TRANSACTION_IDS_KB
111
112// user/keymap-specific
113#ifdef SPLIT_TRANSACTION_IDS_USER
114    SPLIT_TRANSACTION_IDS_USER,
115#endif // SPLIT_TRANSACTION_IDS_USER
116
117#if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE)
118    PUT_DETECTED_OS,
119#endif // defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE)
120
121    NUM_TOTAL_TRANSACTIONS
122};
123
124// Ensure we only use 5 bits for transaction
125_Static_assert(NUM_TOTAL_TRANSACTIONS <= (1 << 5), "Max number of usable transactions exceeded");