qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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");