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