Parent directory

steno_keycodes.h

2668 bytes
  1/* Copyright 2017 Joseph Wasson
  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 "keycodes.h"
 20
 21// List of keycodes for the steno keyboard. To prevent
 22// errors, this must be <= 42 total entries in order to
 23// support the GeminiPR protocol.
 24enum steno_keycodes {
 25    STN__MIN = QK_STENO,
 26    STN_FN   = STN__MIN,
 27    STN_NUM,
 28    STN_N1 = STN_NUM,
 29    STN_N2,
 30    STN_N3,
 31    STN_N4,
 32    STN_N5,
 33    STN_N6,
 34    STN_SL,
 35    STN_S1 = STN_SL,
 36    STN_S2,
 37    STN_TL,
 38    STN_KL,
 39    STN_PL,
 40    STN_WL,
 41    STN_HL,
 42    STN_RL,
 43    STN_A,
 44    STN_O,
 45    STN_STR,
 46    STN_ST1 = STN_STR,
 47    STN_ST2,
 48    STN_RES1,
 49    STN_RE1 = STN_RES1,
 50    STN_RES2,
 51    STN_RE2 = STN_RES2,
 52    STN_PWR,
 53    STN_ST3,
 54    STN_ST4,
 55    STN_E,
 56    STN_U,
 57    STN_FR,
 58    STN_RR,
 59    STN_PR,
 60    STN_BR,
 61    STN_LR,
 62    STN_GR,
 63    STN_TR,
 64    STN_SR,
 65    STN_DR,
 66    STN_N7,
 67    STN_N8,
 68    STN_N9,
 69    STN_NA,
 70    STN_NB,
 71    STN_NC,
 72    STN_ZR,
 73    STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT
 74};
 75
 76#ifdef STENO_COMBINEDMAP
 77enum steno_combined_keycodes {
 78    STN_S3 = QK_STENO_COMB,
 79    STN_TKL,
 80    STN_PWL,
 81    STN_HRL,
 82    STN_FRR,
 83    STN_PBR,
 84    STN_LGR,
 85    STN_TSR,
 86    STN_DZR,
 87    STN_AO,
 88    STN_EU,
 89    STN_COMB_MAX = STN_EU,
 90};
 91#endif
 92
 93#ifdef STENO_ENABLE_BOLT
 94// TxBolt Codes
 95#    define TXB_NUL 0
 96#    define TXB_S_L 0b00000001
 97#    define TXB_T_L 0b00000010
 98#    define TXB_K_L 0b00000100
 99#    define TXB_P_L 0b00001000
100#    define TXB_W_L 0b00010000
101#    define TXB_H_L 0b00100000
102#    define TXB_R_L 0b01000001
103#    define TXB_A_L 0b01000010
104#    define TXB_O_L 0b01000100
105#    define TXB_STR 0b01001000
106#    define TXB_E_R 0b01010000
107#    define TXB_U_R 0b01100000
108#    define TXB_F_R 0b10000001
109#    define TXB_R_R 0b10000010
110#    define TXB_P_R 0b10000100
111#    define TXB_B_R 0b10001000
112#    define TXB_L_R 0b10010000
113#    define TXB_G_R 0b10100000
114#    define TXB_T_R 0b11000001
115#    define TXB_S_R 0b11000010
116#    define TXB_D_R 0b11000100
117#    define TXB_Z_R 0b11001000
118#    define TXB_NUM 0b11010000
119#endif // STENO_ENABLE_BOLT