Kiibohd Controller
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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

generatedKeymap.h 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. /* Copyright (C) 2014-2016 by Jacob Alexander
  2. *
  3. * This file 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 3 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This file 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 file. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. // This file was generated by the kll compiler, DO NOT EDIT.
  17. // Generation Date: 2016-11-11
  18. // KLL Backend: kiibohd
  19. // KLL Git Rev: 1a078b2b940709bc3c429c952d2f0d842927394f
  20. // KLL Git Changes: None
  21. // Compiler arguments:
  22. // ../../kll/kll.py
  23. // /mnt/1/share/i75/controller/Scan/MatrixARM/capabilities.kll
  24. // /mnt/1/share/i75/controller/Macro/PartialMap/capabilities.kll
  25. // /mnt/1/share/i75/controller/Output/pjrcUSB/capabilities.kll
  26. // /mnt/1/share/i75/controller/Scan/i75/scancode_map.kll
  27. // -d
  28. // /mnt/1/share/i75/controller/kll/layouts/md1Overlay.kll
  29. // /mnt/1/share/i75/controller/kll/layouts/stdFuncMap.kll
  30. // -p
  31. // /mnt/1/share/i75/controller/kll/layouts/hhkbpro2.kll
  32. // -p
  33. // /mnt/1/share/i75/controller/kll/layouts/colemak.kll
  34. // --backend
  35. // kiibohd
  36. // --templates
  37. // /mnt/1/share/i75/controller/kll/templates/kiibohdKeymap.h
  38. // /mnt/1/share/i75/controller/kll/templates/kiibohdDefs.h
  39. // --outputs
  40. // generatedKeymap.h
  41. // kll_defs.h
  42. //
  43. // - Base Layer -
  44. // MatrixArmCapabilities
  45. // /mnt/1/share/i75/controller/Scan/MatrixARM/capabilities.kll
  46. // PartialMapCapabilities
  47. // /mnt/1/share/i75/controller/Macro/PartialMap/capabilities.kll
  48. // pjrcUSBCapabilities
  49. // /mnt/1/share/i75/controller/Output/pjrcUSB/capabilities.kll
  50. // MD1
  51. // /mnt/1/share/i75/controller/Scan/i75/scancode_map.kll
  52. // - Default Layer -
  53. // md1Overlay
  54. // /mnt/1/share/i75/controller/kll/layouts/md1Overlay.kll
  55. // stdFuncMap
  56. // /mnt/1/share/i75/controller/kll/layouts/stdFuncMap.kll
  57. // - Partial Layers -
  58. // Layer 1
  59. // hhkbpro2
  60. // /mnt/1/share/i75/controller/kll/layouts/hhkbpro2.kll
  61. // Layer 2
  62. // colemak
  63. // /mnt/1/share/i75/controller/kll/layouts/colemak.kll
  64. #pragma once
  65. // ----- Includes -----
  66. // KLL Include
  67. #include <kll.h>
  68. // ----- Capabilities -----
  69. // Capability function declarations
  70. void CustomAction_action1_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  71. void CustomAction_blockHold_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  72. void CustomAction_blockKey_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  73. void Macro_layerLatch_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  74. void Macro_layerLock_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  75. void Macro_layerRotate_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  76. void Macro_layerShift_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  77. void Macro_layerState_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  78. void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  79. void Output_flashMode_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  80. void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  81. void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  82. void Output_noneSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  83. void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  84. void Output_toggleKbdProtocol_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  85. void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  86. void Output_usbMouse_capability( uint8_t state, uint8_t stateType, uint8_t *args );
  87. // Indexed Capabilities Table
  88. const Capability CapabilitiesList[] = {
  89. { CustomAction_action1_capability, 0 },
  90. { CustomAction_blockHold_capability, 1 },
  91. { CustomAction_blockKey_capability, 1 },
  92. { Macro_layerLatch_capability, 2 },
  93. { Macro_layerLock_capability, 2 },
  94. { Macro_layerRotate_capability, 1 },
  95. { Macro_layerShift_capability, 2 },
  96. { Macro_layerState_capability, 3 },
  97. { Output_consCtrlSend_capability, 2 },
  98. { Output_flashMode_capability, 0 },
  99. { Output_kbdProtocolBoot_capability, 0 },
  100. { Output_kbdProtocolNKRO_capability, 0 },
  101. { Output_noneSend_capability, 0 },
  102. { Output_sysCtrlSend_capability, 1 },
  103. { Output_toggleKbdProtocol_capability, 0 },
  104. { Output_usbCodeSend_capability, 1 },
  105. { Output_usbMouse_capability, 6 },
  106. };
  107. // -- Result Macros
  108. // Result Macro Guides
  109. Guide_RM( 0 ) = { 1, 15, KEY_4, 0 };
  110. Guide_RM( 1 ) = { 1, 15, KEY_K, 0 };
  111. Guide_RM( 2 ) = { 1, 15, KEY_TAB, 0 };
  112. Guide_RM( 3 ) = { 1, 15, KEY_RSHIFT, 0 };
  113. Guide_RM( 4 ) = { 1, 15, KEY_R, 0 };
  114. Guide_RM( 5 ) = { 1, 15, KEY_COMMA, 0 };
  115. Guide_RM( 6 ) = { 1, 15, KEY_ESC, 0 };
  116. Guide_RM( 7 ) = { 1, 15, KEY_F, 0 };
  117. Guide_RM( 8 ) = { 1, 15, KEY_T, 0 };
  118. Guide_RM( 9 ) = { 1, 15, KEY_PERIOD, 0 };
  119. Guide_RM( 10 ) = { 1, 15, KEY_A, 0 };
  120. Guide_RM( 11 ) = { 1, 15, KEY_LEFT, 0 };
  121. Guide_RM( 12 ) = { 1, 15, KEY_1, 0 };
  122. Guide_RM( 13 ) = { 1, 15, KEY_G, 0 };
  123. Guide_RM( 14 ) = { 1, 15, KEY_RALT, 0 };
  124. Guide_RM( 15 ) = { 1, 15, KEY_Q, 0 };
  125. Guide_RM( 16 ) = { 1, 15, KEY_DOWN, 0 };
  126. Guide_RM( 17 ) = { 1, 15, KEY_B, 0 };
  127. Guide_RM( 18 ) = { 1, 15, KEY_H, 0 };
  128. Guide_RM( 19 ) = { 1, 15, KEY_BACKSPACE, 0 };
  129. Guide_RM( 20 ) = { 1, 15, KEY_RGUI, 0 };
  130. Guide_RM( 21 ) = { 1, 15, KEY_X, 0 };
  131. Guide_RM( 22 ) = { 1, 15, KEY_W, 0 };
  132. Guide_RM( 23 ) = { 1, 15, KEY_N, 0 };
  133. Guide_RM( 24 ) = { 1, 15, KEY_S, 0 };
  134. Guide_RM( 25 ) = { 1, 15, KEY_SPACE, 0 };
  135. Guide_RM( 26 ) = { 1, 15, KEY_M, 0 };
  136. Guide_RM( 27 ) = { 1, 15, KEY_DELETE, 0 };
  137. Guide_RM( 28 ) = { 1, 15, KEY_APP, 0 };
  138. Guide_RM( 29 ) = { 1, 15, KEY_D, 0 };
  139. Guide_RM( 30 ) = { 1, 15, KEY_0, 0 };
  140. Guide_RM( 31 ) = { 1, 15, KEY_CAPS_LOCK, 0 };
  141. Guide_RM( 32 ) = { 1, 15, KEY_7, 0 };
  142. Guide_RM( 33 ) = { 1, 15, KEY_C, 0 };
  143. Guide_RM( 34 ) = { 1, 15, KEY_MINUS, 0 };
  144. Guide_RM( 35 ) = { 1, 6, 1, 0, 0 };
  145. Guide_RM( 36 ) = { 1, 15, KEY_LSHIFT, 0 };
  146. Guide_RM( 37 ) = { 1, 15, KEY_V, 0 };
  147. Guide_RM( 38 ) = { 1, 15, KEY_LEFT_BRACKET, 0 };
  148. Guide_RM( 39 ) = { 1, 15, KEY_EQUAL, 0 };
  149. Guide_RM( 40 ) = { 1, 15, KEY_Z, 0 };
  150. Guide_RM( 41 ) = { 1, 15, KEY_I, 0 };
  151. Guide_RM( 42 ) = { 1, 15, KEY_RIGHT_BRACKET, 0 };
  152. Guide_RM( 43 ) = { 1, 15, KEY_LGUI, 0 };
  153. Guide_RM( 44 ) = { 1, 15, KEY_8, 0 };
  154. Guide_RM( 45 ) = { 1, 15, KEY_ENTER, 0 };
  155. Guide_RM( 46 ) = { 1, 15, KEY_BACKSLASH, 0 };
  156. Guide_RM( 47 ) = { 1, 15, KEY_5, 0 };
  157. Guide_RM( 48 ) = { 1, 15, KEY_LALT, 0 };
  158. Guide_RM( 49 ) = { 1, 15, KEY_L, 0 };
  159. Guide_RM( 50 ) = { 1, 15, KEY_9, 0 };
  160. Guide_RM( 51 ) = { 1, 15, KEY_6, 0 };
  161. Guide_RM( 52 ) = { 1, 15, KEY_O, 0 };
  162. Guide_RM( 53 ) = { 1, 15, KEY_UP, 0 };
  163. Guide_RM( 54 ) = { 1, 15, KEY_PAGE_UP, 0 };
  164. Guide_RM( 55 ) = { 1, 15, KEY_Y, 0 };
  165. Guide_RM( 56 ) = { 1, 15, KEY_SLASH, 0 };
  166. Guide_RM( 57 ) = { 1, 15, KEY_P, 0 };
  167. Guide_RM( 58 ) = { 1, 15, KEY_2, 0 };
  168. Guide_RM( 59 ) = { 1, 15, KEY_PAGE_DOWN, 0 };
  169. Guide_RM( 60 ) = { 1, 15, KEY_U, 0 };
  170. Guide_RM( 61 ) = { 1, 15, KEY_SEMICOLON, 0 };
  171. Guide_RM( 62 ) = { 1, 15, KEY_RIGHT, 0 };
  172. Guide_RM( 63 ) = { 1, 15, KEY_3, 0 };
  173. Guide_RM( 64 ) = { 1, 15, KEY_LCTRL, 0 };
  174. Guide_RM( 65 ) = { 1, 15, KEY_J, 0 };
  175. Guide_RM( 66 ) = { 1, 15, KEY_RCTRL, 0 };
  176. Guide_RM( 67 ) = { 1, 15, KEY_QUOTE, 0 };
  177. Guide_RM( 68 ) = { 1, 15, KEY_E, 0 };
  178. Guide_RM( 69 ) = { 1, 15, KEY_F4, 0 };
  179. Guide_RM( 70 ) = { 1, 15, KEY_HOME, 0 };
  180. Guide_RM( 71 ) = { 1, 15, KEY_END, 0 };
  181. Guide_RM( 72 ) = { 1, 8, 184, 0, 0 };
  182. Guide_RM( 73 ) = { 1, 8, 234, 0, 0 };
  183. Guide_RM( 74 ) = { 1, 15, KEY_F1, 0 };
  184. Guide_RM( 75 ) = { 1, 15, KEYPAD_ASTERISK, 0 };
  185. Guide_RM( 76 ) = { 1, 9, 0 };
  186. Guide_RM( 77 ) = { 1, 15, KEYPAD_PLUS, 0 };
  187. Guide_RM( 78 ) = { 1, 8, 233, 0, 0 };
  188. Guide_RM( 79 ) = { 1, 15, KEYPAD_MINUS, 0 };
  189. Guide_RM( 80 ) = { 1, 8, 226, 0, 0 };
  190. Guide_RM( 81 ) = { 1, 15, KEY_F10, 0 };
  191. Guide_RM( 82 ) = { 1, 15, KEY_F7, 0 };
  192. Guide_RM( 83 ) = { 1, 15, KEY_F11, 0 };
  193. Guide_RM( 84 ) = { 1, 15, KEY_F12, 0 };
  194. Guide_RM( 85 ) = { 1, 15, KEY_PRINTSCREEN, 0 };
  195. Guide_RM( 86 ) = { 1, 15, KEY_F8, 0 };
  196. Guide_RM( 87 ) = { 1, 15, KEY_INSERT, 0 };
  197. Guide_RM( 88 ) = { 1, 15, KEY_F5, 0 };
  198. Guide_RM( 89 ) = { 1, 15, KEY_F9, 0 };
  199. Guide_RM( 90 ) = { 1, 15, KEY_F6, 0 };
  200. Guide_RM( 91 ) = { 1, 15, KEY_SCROLL_LOCK, 0 };
  201. Guide_RM( 92 ) = { 1, 15, KEY_PAUSE, 0 };
  202. Guide_RM( 93 ) = { 1, 15, KEY_F2, 0 };
  203. Guide_RM( 94 ) = { 1, 15, KEY_F3, 0 };
  204. Guide_RM( 95 ) = { 1, 15, KEYPAD_SLASH, 0 };
  205. // -- Result Macro List
  206. // Indexed Table of Result Macros
  207. const ResultMacro ResultMacroList[] = {
  208. Define_RM( 0 ),
  209. Define_RM( 1 ),
  210. Define_RM( 2 ),
  211. Define_RM( 3 ),
  212. Define_RM( 4 ),
  213. Define_RM( 5 ),
  214. Define_RM( 6 ),
  215. Define_RM( 7 ),
  216. Define_RM( 8 ),
  217. Define_RM( 9 ),
  218. Define_RM( 10 ),
  219. Define_RM( 11 ),
  220. Define_RM( 12 ),
  221. Define_RM( 13 ),
  222. Define_RM( 14 ),
  223. Define_RM( 15 ),
  224. Define_RM( 16 ),
  225. Define_RM( 17 ),
  226. Define_RM( 18 ),
  227. Define_RM( 19 ),
  228. Define_RM( 20 ),
  229. Define_RM( 21 ),
  230. Define_RM( 22 ),
  231. Define_RM( 23 ),
  232. Define_RM( 24 ),
  233. Define_RM( 25 ),
  234. Define_RM( 26 ),
  235. Define_RM( 27 ),
  236. Define_RM( 28 ),
  237. Define_RM( 29 ),
  238. Define_RM( 30 ),
  239. Define_RM( 31 ),
  240. Define_RM( 32 ),
  241. Define_RM( 33 ),
  242. Define_RM( 34 ),
  243. Define_RM( 35 ),
  244. Define_RM( 36 ),
  245. Define_RM( 37 ),
  246. Define_RM( 38 ),
  247. Define_RM( 39 ),
  248. Define_RM( 40 ),
  249. Define_RM( 41 ),
  250. Define_RM( 42 ),
  251. Define_RM( 43 ),
  252. Define_RM( 44 ),
  253. Define_RM( 45 ),
  254. Define_RM( 46 ),
  255. Define_RM( 47 ),
  256. Define_RM( 48 ),
  257. Define_RM( 49 ),
  258. Define_RM( 50 ),
  259. Define_RM( 51 ),
  260. Define_RM( 52 ),
  261. Define_RM( 53 ),
  262. Define_RM( 54 ),
  263. Define_RM( 55 ),
  264. Define_RM( 56 ),
  265. Define_RM( 57 ),
  266. Define_RM( 58 ),
  267. Define_RM( 59 ),
  268. Define_RM( 60 ),
  269. Define_RM( 61 ),
  270. Define_RM( 62 ),
  271. Define_RM( 63 ),
  272. Define_RM( 64 ),
  273. Define_RM( 65 ),
  274. Define_RM( 66 ),
  275. Define_RM( 67 ),
  276. Define_RM( 68 ),
  277. Define_RM( 69 ),
  278. Define_RM( 70 ),
  279. Define_RM( 71 ),
  280. Define_RM( 72 ),
  281. Define_RM( 73 ),
  282. Define_RM( 74 ),
  283. Define_RM( 75 ),
  284. Define_RM( 76 ),
  285. Define_RM( 77 ),
  286. Define_RM( 78 ),
  287. Define_RM( 79 ),
  288. Define_RM( 80 ),
  289. Define_RM( 81 ),
  290. Define_RM( 82 ),
  291. Define_RM( 83 ),
  292. Define_RM( 84 ),
  293. Define_RM( 85 ),
  294. Define_RM( 86 ),
  295. Define_RM( 87 ),
  296. Define_RM( 88 ),
  297. Define_RM( 89 ),
  298. Define_RM( 90 ),
  299. Define_RM( 91 ),
  300. Define_RM( 92 ),
  301. Define_RM( 93 ),
  302. Define_RM( 94 ),
  303. Define_RM( 95 ),
  304. };
  305. // -- Trigger Macro Record
  306. // Keeps a record/state of each result macro
  307. ResultMacroRecord ResultMacroRecordList[ ResultMacroNum ];
  308. // -- Trigger Macros
  309. // Trigger Macro Guides
  310. Guide_TM( 0 ) = { 1, 0x00, 0x01, 0x04, 0 };
  311. Guide_TM( 1 ) = { 1, 0x00, 0x01, 0x26, 0 };
  312. Guide_TM( 2 ) = { 1, 0x00, 0x01, 0x0F, 0 };
  313. Guide_TM( 3 ) = { 1, 0x00, 0x01, 0x38, 0 };
  314. Guide_TM( 4 ) = { 1, 0x00, 0x01, 0x13, 0 };
  315. Guide_TM( 5 ) = { 1, 0x00, 0x01, 0x35, 0 };
  316. Guide_TM( 6 ) = { 1, 0x00, 0x01, 0x00, 0 };
  317. Guide_TM( 7 ) = { 1, 0x00, 0x01, 0x39, 0 };
  318. Guide_TM( 8 ) = { 1, 0x00, 0x01, 0x22, 0 };
  319. Guide_TM( 9 ) = { 1, 0x00, 0x01, 0x14, 0 };
  320. Guide_TM( 10 ) = { 1, 0x00, 0x01, 0x36, 0 };
  321. Guide_TM( 11 ) = { 1, 0x00, 0x01, 0x1F, 0 };
  322. Guide_TM( 12 ) = { 1, 0x00, 0x01, 0x48, 0 };
  323. Guide_TM( 13 ) = { 1, 0x00, 0x01, 0x01, 0 };
  324. Guide_TM( 14 ) = { 1, 0x00, 0x01, 0x23, 0 };
  325. Guide_TM( 15 ) = { 1, 0x00, 0x01, 0x45, 0 };
  326. Guide_TM( 16 ) = { 1, 0x00, 0x01, 0x10, 0 };
  327. Guide_TM( 17 ) = { 1, 0x00, 0x01, 0x49, 0 };
  328. Guide_TM( 18 ) = { 1, 0x00, 0x01, 0x32, 0 };
  329. Guide_TM( 19 ) = { 1, 0x00, 0x01, 0x24, 0 };
  330. Guide_TM( 20 ) = { 1, 0x00, 0x01, 0x0D, 0 };
  331. Guide_TM( 21 ) = { 1, 0x00, 0x01, 0x46, 0 };
  332. Guide_TM( 22 ) = { 1, 0x00, 0x01, 0x2F, 0 };
  333. Guide_TM( 23 ) = { 1, 0x00, 0x01, 0x11, 0 };
  334. Guide_TM( 24 ) = { 1, 0x00, 0x01, 0x33, 0 };
  335. Guide_TM( 25 ) = { 1, 0x00, 0x01, 0x0E, 0 };
  336. Guide_TM( 26 ) = { 1, 0x00, 0x01, 0x20, 0 };
  337. Guide_TM( 27 ) = { 1, 0x00, 0x01, 0x42, 0 };
  338. Guide_TM( 28 ) = { 1, 0x00, 0x01, 0x34, 0 };
  339. Guide_TM( 29 ) = { 1, 0x00, 0x01, 0x1D, 0 };
  340. Guide_TM( 30 ) = { 1, 0x00, 0x01, 0x3F, 0 };
  341. Guide_TM( 31 ) = { 1, 0x00, 0x01, 0x21, 0 };
  342. Guide_TM( 32 ) = { 1, 0x00, 0x01, 0x0A, 0 };
  343. Guide_TM( 33 ) = { 1, 0x00, 0x01, 0x43, 0 };
  344. Guide_TM( 34 ) = { 1, 0x00, 0x01, 0x1E, 0 };
  345. Guide_TM( 35 ) = { 1, 0x00, 0x01, 0x07, 0 };
  346. Guide_TM( 36 ) = { 1, 0x00, 0x01, 0x30, 0 };
  347. Guide_TM( 37 ) = { 1, 0x00, 0x01, 0x0B, 0 };
  348. Guide_TM( 38 ) = { 1, 0x00, 0x01, 0x44, 0 };
  349. Guide_TM( 39 ) = { 1, 0x00, 0x01, 0x2D, 0 };
  350. Guide_TM( 40 ) = { 1, 0x00, 0x01, 0x31, 0 };
  351. Guide_TM( 41 ) = { 1, 0x00, 0x01, 0x1A, 0 };
  352. Guide_TM( 42 ) = { 1, 0x00, 0x01, 0x0C, 0 };
  353. Guide_TM( 43 ) = { 1, 0x00, 0x01, 0x2E, 0 };
  354. Guide_TM( 44 ) = { 1, 0x00, 0x01, 0x17, 0 };
  355. Guide_TM( 45 ) = { 1, 0x00, 0x01, 0x40, 0 };
  356. Guide_TM( 46 ) = { 1, 0x00, 0x01, 0x1B, 0 };
  357. Guide_TM( 47 ) = { 1, 0x00, 0x01, 0x3D, 0 };
  358. Guide_TM( 48 ) = { 1, 0x00, 0x01, 0x08, 0 };
  359. Guide_TM( 49 ) = { 1, 0x00, 0x01, 0x41, 0 };
  360. Guide_TM( 50 ) = { 1, 0x00, 0x01, 0x2A, 0 };
  361. Guide_TM( 51 ) = { 1, 0x00, 0x01, 0x1C, 0 };
  362. Guide_TM( 52 ) = { 1, 0x00, 0x01, 0x05, 0 };
  363. Guide_TM( 53 ) = { 1, 0x00, 0x01, 0x3E, 0 };
  364. Guide_TM( 54 ) = { 1, 0x00, 0x01, 0x27, 0 };
  365. Guide_TM( 55 ) = { 1, 0x00, 0x01, 0x09, 0 };
  366. Guide_TM( 56 ) = { 1, 0x00, 0x01, 0x2B, 0 };
  367. Guide_TM( 57 ) = { 1, 0x00, 0x01, 0x06, 0 };
  368. Guide_TM( 58 ) = { 1, 0x00, 0x01, 0x18, 0 };
  369. Guide_TM( 59 ) = { 1, 0x00, 0x01, 0x3A, 0 };
  370. Guide_TM( 60 ) = { 1, 0x00, 0x01, 0x2C, 0 };
  371. Guide_TM( 61 ) = { 1, 0x00, 0x01, 0x15, 0 };
  372. Guide_TM( 62 ) = { 1, 0x00, 0x01, 0x37, 0 };
  373. Guide_TM( 63 ) = { 1, 0x00, 0x01, 0x19, 0 };
  374. Guide_TM( 64 ) = { 1, 0x00, 0x01, 0x02, 0 };
  375. Guide_TM( 65 ) = { 1, 0x00, 0x01, 0x3B, 0 };
  376. Guide_TM( 66 ) = { 1, 0x00, 0x01, 0x16, 0 };
  377. Guide_TM( 67 ) = { 1, 0x00, 0x01, 0x28, 0 };
  378. Guide_TM( 68 ) = { 1, 0x00, 0x01, 0x4A, 0 };
  379. Guide_TM( 69 ) = { 1, 0x00, 0x01, 0x03, 0 };
  380. Guide_TM( 70 ) = { 1, 0x00, 0x01, 0x3C, 0 };
  381. Guide_TM( 71 ) = { 1, 0x00, 0x01, 0x25, 0 };
  382. Guide_TM( 72 ) = { 1, 0x00, 0x01, 0x47, 0 };
  383. Guide_TM( 73 ) = { 1, 0x00, 0x01, 0x29, 0 };
  384. Guide_TM( 74 ) = { 1, 0x00, 0x01, 0x12, 0 };
  385. Guide_TM( 75 ) = { 1, 0x00, 0x01, 0x04, 0 };
  386. Guide_TM( 76 ) = { 1, 0x00, 0x01, 0x26, 0 };
  387. Guide_TM( 77 ) = { 1, 0x00, 0x01, 0x0F, 0 };
  388. Guide_TM( 78 ) = { 1, 0x00, 0x01, 0x35, 0 };
  389. Guide_TM( 79 ) = { 1, 0x00, 0x01, 0x22, 0 };
  390. Guide_TM( 80 ) = { 1, 0x00, 0x01, 0x36, 0 };
  391. Guide_TM( 81 ) = { 1, 0x00, 0x01, 0x1F, 0 };
  392. Guide_TM( 82 ) = { 1, 0x00, 0x01, 0x01, 0 };
  393. Guide_TM( 83 ) = { 1, 0x00, 0x01, 0x24, 0 };
  394. Guide_TM( 84 ) = { 1, 0x00, 0x01, 0x11, 0 };
  395. Guide_TM( 85 ) = { 1, 0x00, 0x01, 0x33, 0 };
  396. Guide_TM( 86 ) = { 1, 0x00, 0x01, 0x20, 0 };
  397. Guide_TM( 87 ) = { 1, 0x00, 0x01, 0x34, 0 };
  398. Guide_TM( 88 ) = { 1, 0x00, 0x01, 0x21, 0 };
  399. Guide_TM( 89 ) = { 1, 0x00, 0x01, 0x0A, 0 };
  400. Guide_TM( 90 ) = { 1, 0x00, 0x01, 0x07, 0 };
  401. Guide_TM( 91 ) = { 1, 0x00, 0x01, 0x0B, 0 };
  402. Guide_TM( 92 ) = { 1, 0x00, 0x01, 0x1A, 0 };
  403. Guide_TM( 93 ) = { 1, 0x00, 0x01, 0x0C, 0 };
  404. Guide_TM( 94 ) = { 1, 0x00, 0x01, 0x17, 0 };
  405. Guide_TM( 95 ) = { 1, 0x00, 0x01, 0x08, 0 };
  406. Guide_TM( 96 ) = { 1, 0x00, 0x01, 0x1C, 0 };
  407. Guide_TM( 97 ) = { 1, 0x00, 0x01, 0x05, 0 };
  408. Guide_TM( 98 ) = { 1, 0x00, 0x01, 0x27, 0 };
  409. Guide_TM( 99 ) = { 1, 0x00, 0x01, 0x09, 0 };
  410. Guide_TM( 100 ) = { 1, 0x00, 0x01, 0x06, 0 };
  411. Guide_TM( 101 ) = { 1, 0x00, 0x01, 0x18, 0 };
  412. Guide_TM( 102 ) = { 1, 0x00, 0x01, 0x37, 0 };
  413. Guide_TM( 103 ) = { 1, 0x00, 0x01, 0x19, 0 };
  414. Guide_TM( 104 ) = { 1, 0x00, 0x01, 0x02, 0 };
  415. Guide_TM( 105 ) = { 1, 0x00, 0x01, 0x28, 0 };
  416. Guide_TM( 106 ) = { 1, 0x00, 0x01, 0x03, 0 };
  417. Guide_TM( 107 ) = { 1, 0x00, 0x01, 0x25, 0 };
  418. Guide_TM( 108 ) = { 1, 0x00, 0x01, 0x29, 0 };
  419. Guide_TM( 109 ) = { 1, 0x00, 0x01, 0x26, 0 };
  420. Guide_TM( 110 ) = { 1, 0x00, 0x01, 0x13, 0 };
  421. Guide_TM( 111 ) = { 1, 0x00, 0x01, 0x22, 0 };
  422. Guide_TM( 112 ) = { 1, 0x00, 0x01, 0x14, 0 };
  423. Guide_TM( 113 ) = { 1, 0x00, 0x01, 0x23, 0 };
  424. Guide_TM( 114 ) = { 1, 0x00, 0x01, 0x33, 0 };
  425. Guide_TM( 115 ) = { 1, 0x00, 0x01, 0x20, 0 };
  426. Guide_TM( 116 ) = { 1, 0x00, 0x01, 0x21, 0 };
  427. Guide_TM( 117 ) = { 1, 0x00, 0x01, 0x17, 0 };
  428. Guide_TM( 118 ) = { 1, 0x00, 0x01, 0x27, 0 };
  429. Guide_TM( 119 ) = { 1, 0x00, 0x01, 0x18, 0 };
  430. Guide_TM( 120 ) = { 1, 0x00, 0x01, 0x15, 0 };
  431. Guide_TM( 121 ) = { 1, 0x00, 0x01, 0x19, 0 };
  432. Guide_TM( 122 ) = { 1, 0x00, 0x01, 0x16, 0 };
  433. Guide_TM( 123 ) = { 1, 0x00, 0x01, 0x28, 0 };
  434. Guide_TM( 124 ) = { 1, 0x00, 0x01, 0x25, 0 };
  435. Guide_TM( 125 ) = { 1, 0x00, 0x01, 0x12, 0 };
  436. // -- Trigger Macro List
  437. // Indexed Table of Trigger Macros
  438. const TriggerMacro TriggerMacroList[] = {
  439. Define_TM( 0, 0 ),
  440. Define_TM( 1, 1 ),
  441. Define_TM( 2, 2 ),
  442. Define_TM( 3, 3 ),
  443. Define_TM( 4, 4 ),
  444. Define_TM( 5, 5 ),
  445. Define_TM( 6, 6 ),
  446. Define_TM( 7, 3 ),
  447. Define_TM( 8, 7 ),
  448. Define_TM( 9, 8 ),
  449. Define_TM( 10, 9 ),
  450. Define_TM( 11, 10 ),
  451. Define_TM( 12, 11 ),
  452. Define_TM( 13, 12 ),
  453. Define_TM( 14, 13 ),
  454. Define_TM( 15, 14 ),
  455. Define_TM( 16, 15 ),
  456. Define_TM( 17, 16 ),
  457. Define_TM( 18, 17 ),
  458. Define_TM( 19, 18 ),
  459. Define_TM( 20, 19 ),
  460. Define_TM( 21, 20 ),
  461. Define_TM( 22, 21 ),
  462. Define_TM( 23, 22 ),
  463. Define_TM( 24, 23 ),
  464. Define_TM( 25, 19 ),
  465. Define_TM( 26, 24 ),
  466. Define_TM( 27, 25 ),
  467. Define_TM( 28, 26 ),
  468. Define_TM( 29, 27 ),
  469. Define_TM( 30, 28 ),
  470. Define_TM( 31, 29 ),
  471. Define_TM( 32, 30 ),
  472. Define_TM( 33, 25 ),
  473. Define_TM( 34, 31 ),
  474. Define_TM( 35, 32 ),
  475. Define_TM( 36, 33 ),
  476. Define_TM( 37, 34 ),
  477. Define_TM( 38, 35 ),
  478. Define_TM( 39, 36 ),
  479. Define_TM( 40, 37 ),
  480. Define_TM( 41, 38 ),
  481. Define_TM( 42, 39 ),
  482. Define_TM( 43, 40 ),
  483. Define_TM( 44, 41 ),
  484. Define_TM( 45, 25 ),
  485. Define_TM( 46, 42 ),
  486. Define_TM( 47, 43 ),
  487. Define_TM( 48, 44 ),
  488. Define_TM( 49, 25 ),
  489. Define_TM( 50, 45 ),
  490. Define_TM( 51, 46 ),
  491. Define_TM( 52, 47 ),
  492. Define_TM( 53, 48 ),
  493. Define_TM( 54, 49 ),
  494. Define_TM( 55, 50 ),
  495. Define_TM( 56, 45 ),
  496. Define_TM( 57, 51 ),
  497. Define_TM( 58, 52 ),
  498. Define_TM( 59, 53 ),
  499. Define_TM( 60, 54 ),
  500. Define_TM( 61, 55 ),
  501. Define_TM( 62, 56 ),
  502. Define_TM( 63, 57 ),
  503. Define_TM( 64, 58 ),
  504. Define_TM( 65, 59 ),
  505. Define_TM( 66, 60 ),
  506. Define_TM( 67, 61 ),
  507. Define_TM( 68, 62 ),
  508. Define_TM( 69, 63 ),
  509. Define_TM( 70, 64 ),
  510. Define_TM( 71, 65 ),
  511. Define_TM( 72, 66 ),
  512. Define_TM( 73, 67 ),
  513. Define_TM( 74, 68 ),
  514. Define_TM( 75, 69 ),
  515. Define_TM( 76, 70 ),
  516. Define_TM( 77, 31 ),
  517. Define_TM( 78, 71 ),
  518. Define_TM( 79, 72 ),
  519. Define_TM( 80, 59 ),
  520. Define_TM( 81, 73 ),
  521. Define_TM( 82, 74 ),
  522. Define_TM( 83, 75 ),
  523. Define_TM( 84, 76 ),
  524. Define_TM( 85, 77 ),
  525. Define_TM( 86, 78 ),
  526. Define_TM( 87, 79 ),
  527. Define_TM( 88, 80 ),
  528. Define_TM( 89, 81 ),
  529. Define_TM( 90, 82 ),
  530. Define_TM( 91, 83 ),
  531. Define_TM( 92, 53 ),
  532. Define_TM( 93, 84 ),
  533. Define_TM( 94, 85 ),
  534. Define_TM( 95, 86 ),
  535. Define_TM( 96, 87 ),
  536. Define_TM( 97, 88 ),
  537. Define_TM( 98, 54 ),
  538. Define_TM( 99, 89 ),
  539. Define_TM( 100, 90 ),
  540. Define_TM( 101, 91 ),
  541. Define_TM( 102, 16 ),
  542. Define_TM( 103, 92 ),
  543. Define_TM( 104, 93 ),
  544. Define_TM( 105, 11 ),
  545. Define_TM( 106, 94 ),
  546. Define_TM( 107, 95 ),
  547. Define_TM( 108, 62 ),
  548. Define_TM( 109, 68 ),
  549. Define_TM( 110, 57 ),
  550. Define_TM( 111, 8 ),
  551. Define_TM( 112, 13 ),
  552. Define_TM( 113, 29 ),
  553. Define_TM( 114, 1 ),
  554. Define_TM( 115, 4 ),
  555. Define_TM( 116, 24 ),
  556. Define_TM( 117, 60 ),
  557. Define_TM( 118, 41 ),
  558. Define_TM( 119, 55 ),
  559. Define_TM( 120, 65 ),
  560. Define_TM( 121, 61 ),
  561. Define_TM( 122, 49 ),
  562. Define_TM( 123, 52 ),
  563. Define_TM( 124, 23 ),
  564. Define_TM( 125, 7 ),
  565. };
  566. // -- Trigger Macro Record List
  567. // Keeps a record/state of each trigger macro
  568. TriggerMacroRecord TriggerMacroRecordList[ TriggerMacroNum ];
  569. // ----- Trigger Maps -----
  570. // MaxScanCode
  571. // - This is retrieved from the KLL configuration
  572. // - Should be corollated with the max scan code in the scan module
  573. // - Maximum value is 0x100 (0x0 to 0xFF)
  574. // - Increasing it beyond the keyboard's capabilities is just a waste of ram...
  575. #define MaxScanCode 0x4A
  576. // -- Trigger Lists
  577. //
  578. // Index 0: # of triggers in list
  579. // Index n: pointer to trigger macro - use tm() macro
  580. // - Default Layer -
  581. Define_TL( default, 0x00 ) = { 1, 6 };
  582. Define_TL( default, 0x01 ) = { 1, 13 };
  583. Define_TL( default, 0x02 ) = { 1, 64 };
  584. Define_TL( default, 0x03 ) = { 1, 69 };
  585. Define_TL( default, 0x04 ) = { 1, 0 };
  586. Define_TL( default, 0x05 ) = { 1, 52 };
  587. Define_TL( default, 0x06 ) = { 1, 57 };
  588. Define_TL( default, 0x07 ) = { 1, 35 };
  589. Define_TL( default, 0x08 ) = { 1, 48 };
  590. Define_TL( default, 0x09 ) = { 1, 55 };
  591. Define_TL( default, 0x0A ) = { 1, 32 };
  592. Define_TL( default, 0x0B ) = { 1, 37 };
  593. Define_TL( default, 0x0C ) = { 1, 42 };
  594. Define_TL( default, 0x0D ) = { 1, 20 };
  595. Define_TL( default, 0x0E ) = { 1, 25 };
  596. Define_TL( default, 0x0F ) = { 1, 2 };
  597. Define_TL( default, 0x10 ) = { 1, 16 };
  598. Define_TL( default, 0x11 ) = { 1, 23 };
  599. Define_TL( default, 0x12 ) = { 1, 74 };
  600. Define_TL( default, 0x13 ) = { 1, 4 };
  601. Define_TL( default, 0x14 ) = { 1, 9 };
  602. Define_TL( default, 0x15 ) = { 1, 61 };
  603. Define_TL( default, 0x16 ) = { 1, 66 };
  604. Define_TL( default, 0x17 ) = { 1, 44 };
  605. Define_TL( default, 0x18 ) = { 1, 58 };
  606. Define_TL( default, 0x19 ) = { 1, 63 };
  607. Define_TL( default, 0x1A ) = { 1, 41 };
  608. Define_TL( default, 0x1B ) = { 1, 46 };
  609. Define_TL( default, 0x1C ) = { 1, 51 };
  610. Define_TL( default, 0x1D ) = { 1, 29 };
  611. Define_TL( default, 0x1E ) = { 1, 34 };
  612. Define_TL( default, 0x1F ) = { 1, 11 };
  613. Define_TL( default, 0x20 ) = { 1, 26 };
  614. Define_TL( default, 0x21 ) = { 1, 31 };
  615. Define_TL( default, 0x22 ) = { 1, 8 };
  616. Define_TL( default, 0x23 ) = { 1, 14 };
  617. Define_TL( default, 0x24 ) = { 1, 19 };
  618. Define_TL( default, 0x25 ) = { 1, 71 };
  619. Define_TL( default, 0x26 ) = { 1, 1 };
  620. Define_TL( default, 0x27 ) = { 1, 54 };
  621. Define_TL( default, 0x28 ) = { 1, 67 };
  622. Define_TL( default, 0x29 ) = { 1, 73 };
  623. Define_TL( default, 0x2A ) = { 1, 50 };
  624. Define_TL( default, 0x2B ) = { 1, 56 };
  625. Define_TL( default, 0x2C ) = { 1, 60 };
  626. Define_TL( default, 0x2D ) = { 1, 39 };
  627. Define_TL( default, 0x2E ) = { 1, 43 };
  628. Define_TL( default, 0x2F ) = { 1, 22 };
  629. Define_TL( default, 0x30 ) = { 1, 36 };
  630. Define_TL( default, 0x31 ) = { 1, 40 };
  631. Define_TL( default, 0x32 ) = { 1, 18 };
  632. Define_TL( default, 0x33 ) = { 1, 24 };
  633. Define_TL( default, 0x34 ) = { 1, 28 };
  634. Define_TL( default, 0x35 ) = { 1, 5 };
  635. Define_TL( default, 0x36 ) = { 1, 10 };
  636. Define_TL( default, 0x37 ) = { 1, 62 };
  637. Define_TL( default, 0x38 ) = { 1, 3 };
  638. Define_TL( default, 0x39 ) = { 1, 7 };
  639. Define_TL( default, 0x3A ) = { 1, 59 };
  640. Define_TL( default, 0x3B ) = { 1, 65 };
  641. Define_TL( default, 0x3C ) = { 1, 70 };
  642. Define_TL( default, 0x3D ) = { 1, 47 };
  643. Define_TL( default, 0x3E ) = { 1, 53 };
  644. Define_TL( default, 0x3F ) = { 1, 30 };
  645. Define_TL( default, 0x40 ) = { 1, 45 };
  646. Define_TL( default, 0x41 ) = { 1, 49 };
  647. Define_TL( default, 0x42 ) = { 1, 27 };
  648. Define_TL( default, 0x43 ) = { 1, 33 };
  649. Define_TL( default, 0x44 ) = { 1, 38 };
  650. Define_TL( default, 0x45 ) = { 1, 15 };
  651. Define_TL( default, 0x46 ) = { 1, 21 };
  652. Define_TL( default, 0x47 ) = { 1, 72 };
  653. Define_TL( default, 0x48 ) = { 1, 12 };
  654. Define_TL( default, 0x49 ) = { 1, 17 };
  655. Define_TL( default, 0x4A ) = { 1, 68 };
  656. // - Partial Layers -
  657. // Partial Layer 1
  658. Define_TL( layer1, 0x01 ) = { 1, 82 };
  659. Define_TL( layer1, 0x02 ) = { 1, 104 };
  660. Define_TL( layer1, 0x03 ) = { 1, 106 };
  661. Define_TL( layer1, 0x04 ) = { 1, 75 };
  662. Define_TL( layer1, 0x05 ) = { 1, 97 };
  663. Define_TL( layer1, 0x06 ) = { 1, 100 };
  664. Define_TL( layer1, 0x07 ) = { 1, 90 };
  665. Define_TL( layer1, 0x08 ) = { 1, 95 };
  666. Define_TL( layer1, 0x09 ) = { 1, 99 };
  667. Define_TL( layer1, 0x0A ) = { 1, 89 };
  668. Define_TL( layer1, 0x0B ) = { 1, 91 };
  669. Define_TL( layer1, 0x0C ) = { 1, 93 };
  670. Define_TL( layer1, 0x0D ) = { 0 };
  671. Define_TL( layer1, 0x0E ) = { 0 };
  672. Define_TL( layer1, 0x0F ) = { 1, 77 };
  673. Define_TL( layer1, 0x10 ) = { 0 };
  674. Define_TL( layer1, 0x11 ) = { 1, 84 };
  675. Define_TL( layer1, 0x12 ) = { 0 };
  676. Define_TL( layer1, 0x13 ) = { 0 };
  677. Define_TL( layer1, 0x14 ) = { 0 };
  678. Define_TL( layer1, 0x15 ) = { 0 };
  679. Define_TL( layer1, 0x16 ) = { 0 };
  680. Define_TL( layer1, 0x17 ) = { 1, 94 };
  681. Define_TL( layer1, 0x18 ) = { 1, 101 };
  682. Define_TL( layer1, 0x19 ) = { 1, 103 };
  683. Define_TL( layer1, 0x1A ) = { 1, 92 };
  684. Define_TL( layer1, 0x1B ) = { 0 };
  685. Define_TL( layer1, 0x1C ) = { 1, 96 };
  686. Define_TL( layer1, 0x1D ) = { 0 };
  687. Define_TL( layer1, 0x1E ) = { 0 };
  688. Define_TL( layer1, 0x1F ) = { 1, 81 };
  689. Define_TL( layer1, 0x20 ) = { 1, 86 };
  690. Define_TL( layer1, 0x21 ) = { 1, 88 };
  691. Define_TL( layer1, 0x22 ) = { 1, 79 };
  692. Define_TL( layer1, 0x23 ) = { 0 };
  693. Define_TL( layer1, 0x24 ) = { 1, 83 };
  694. Define_TL( layer1, 0x25 ) = { 1, 107 };
  695. Define_TL( layer1, 0x26 ) = { 1, 76 };
  696. Define_TL( layer1, 0x27 ) = { 1, 98 };
  697. Define_TL( layer1, 0x28 ) = { 1, 105 };
  698. Define_TL( layer1, 0x29 ) = { 1, 108 };
  699. Define_TL( layer1, 0x2A ) = { 0 };
  700. Define_TL( layer1, 0x2B ) = { 0 };
  701. Define_TL( layer1, 0x2C ) = { 0 };
  702. Define_TL( layer1, 0x2D ) = { 0 };
  703. Define_TL( layer1, 0x2E ) = { 0 };
  704. Define_TL( layer1, 0x2F ) = { 0 };
  705. Define_TL( layer1, 0x30 ) = { 0 };
  706. Define_TL( layer1, 0x31 ) = { 0 };
  707. Define_TL( layer1, 0x32 ) = { 0 };
  708. Define_TL( layer1, 0x33 ) = { 1, 85 };
  709. Define_TL( layer1, 0x34 ) = { 1, 87 };
  710. Define_TL( layer1, 0x35 ) = { 1, 78 };
  711. Define_TL( layer1, 0x36 ) = { 1, 80 };
  712. Define_TL( layer1, 0x37 ) = { 1, 102 };
  713. // Partial Layer 2
  714. Define_TL( layer2, 0x12 ) = { 1, 125 };
  715. Define_TL( layer2, 0x13 ) = { 1, 110 };
  716. Define_TL( layer2, 0x14 ) = { 1, 112 };
  717. Define_TL( layer2, 0x15 ) = { 1, 120 };
  718. Define_TL( layer2, 0x16 ) = { 1, 122 };
  719. Define_TL( layer2, 0x17 ) = { 1, 117 };
  720. Define_TL( layer2, 0x18 ) = { 1, 119 };
  721. Define_TL( layer2, 0x19 ) = { 1, 121 };
  722. Define_TL( layer2, 0x1A ) = { 0 };
  723. Define_TL( layer2, 0x1B ) = { 0 };
  724. Define_TL( layer2, 0x1C ) = { 0 };
  725. Define_TL( layer2, 0x1D ) = { 0 };
  726. Define_TL( layer2, 0x1E ) = { 0 };
  727. Define_TL( layer2, 0x1F ) = { 0 };
  728. Define_TL( layer2, 0x20 ) = { 1, 115 };
  729. Define_TL( layer2, 0x21 ) = { 1, 116 };
  730. Define_TL( layer2, 0x22 ) = { 1, 111 };
  731. Define_TL( layer2, 0x23 ) = { 1, 113 };
  732. Define_TL( layer2, 0x24 ) = { 0 };
  733. Define_TL( layer2, 0x25 ) = { 1, 124 };
  734. Define_TL( layer2, 0x26 ) = { 1, 109 };
  735. Define_TL( layer2, 0x27 ) = { 1, 118 };
  736. Define_TL( layer2, 0x28 ) = { 1, 123 };
  737. Define_TL( layer2, 0x29 ) = { 0 };
  738. Define_TL( layer2, 0x2A ) = { 0 };
  739. Define_TL( layer2, 0x2B ) = { 0 };
  740. Define_TL( layer2, 0x2C ) = { 0 };
  741. Define_TL( layer2, 0x2D ) = { 0 };
  742. Define_TL( layer2, 0x2E ) = { 0 };
  743. Define_TL( layer2, 0x2F ) = { 0 };
  744. Define_TL( layer2, 0x30 ) = { 0 };
  745. Define_TL( layer2, 0x31 ) = { 0 };
  746. Define_TL( layer2, 0x32 ) = { 0 };
  747. Define_TL( layer2, 0x33 ) = { 1, 114 };
  748. // -- ScanCode Offset Map
  749. // Maps interconnect ids to scancode offsets
  750. //
  751. // Only used for keyboards with an interconnect
  752. const uint8_t InterconnectOffsetList[] = {
  753. 0x4B,
  754. };
  755. // -- ScanCode Indexed Maps
  756. // Maps to a trigger list of macro pointers
  757. // _
  758. // <scan code> -> |T|
  759. // |r| -> <trigger macro pointer 1>
  760. // |i|
  761. // |g| -> <trigger macro pointer 2>
  762. // |g|
  763. // |e| -> <trigger macro pointer 3>
  764. // |r|
  765. // |s| -> <trigger macro pointer n>
  766. // -
  767. // - Default Map for ScanCode Lookup -
  768. const nat_ptr_t *default_scanMap[] = {
  769. default_tl_0x00, default_tl_0x01, default_tl_0x02, default_tl_0x03, default_tl_0x04, default_tl_0x05, default_tl_0x06, default_tl_0x07, default_tl_0x08, default_tl_0x09, default_tl_0x0A, default_tl_0x0B, default_tl_0x0C, default_tl_0x0D, default_tl_0x0E, default_tl_0x0F, default_tl_0x10, default_tl_0x11, default_tl_0x12, default_tl_0x13, default_tl_0x14, default_tl_0x15, default_tl_0x16, default_tl_0x17, default_tl_0x18, default_tl_0x19, default_tl_0x1A, default_tl_0x1B, default_tl_0x1C, default_tl_0x1D, default_tl_0x1E, default_tl_0x1F, default_tl_0x20, default_tl_0x21, default_tl_0x22, default_tl_0x23, default_tl_0x24, default_tl_0x25, default_tl_0x26, default_tl_0x27, default_tl_0x28, default_tl_0x29, default_tl_0x2A, default_tl_0x2B, default_tl_0x2C, default_tl_0x2D, default_tl_0x2E, default_tl_0x2F, default_tl_0x30, default_tl_0x31, default_tl_0x32, default_tl_0x33, default_tl_0x34, default_tl_0x35, default_tl_0x36, default_tl_0x37, default_tl_0x38, default_tl_0x39, default_tl_0x3A, default_tl_0x3B, default_tl_0x3C, default_tl_0x3D, default_tl_0x3E, default_tl_0x3F, default_tl_0x40, default_tl_0x41, default_tl_0x42, default_tl_0x43, default_tl_0x44, default_tl_0x45, default_tl_0x46, default_tl_0x47, default_tl_0x48, default_tl_0x49, default_tl_0x4A
  770. };
  771. // - Partial Layer ScanCode Lookup Maps -
  772. // Partial Layer 1
  773. const nat_ptr_t *layer1_scanMap[] = {
  774. layer1_tl_0x01, layer1_tl_0x02, layer1_tl_0x03, layer1_tl_0x04, layer1_tl_0x05, layer1_tl_0x06, layer1_tl_0x07, layer1_tl_0x08, layer1_tl_0x09, layer1_tl_0x0A, layer1_tl_0x0B, layer1_tl_0x0C, layer1_tl_0x0D, layer1_tl_0x0E, layer1_tl_0x0F, layer1_tl_0x10, layer1_tl_0x11, layer1_tl_0x12, layer1_tl_0x13, layer1_tl_0x14, layer1_tl_0x15, layer1_tl_0x16, layer1_tl_0x17, layer1_tl_0x18, layer1_tl_0x19, layer1_tl_0x1A, layer1_tl_0x1B, layer1_tl_0x1C, layer1_tl_0x1D, layer1_tl_0x1E, layer1_tl_0x1F, layer1_tl_0x20, layer1_tl_0x21, layer1_tl_0x22, layer1_tl_0x23, layer1_tl_0x24, layer1_tl_0x25, layer1_tl_0x26, layer1_tl_0x27, layer1_tl_0x28, layer1_tl_0x29, layer1_tl_0x2A, layer1_tl_0x2B, layer1_tl_0x2C, layer1_tl_0x2D, layer1_tl_0x2E, layer1_tl_0x2F, layer1_tl_0x30, layer1_tl_0x31, layer1_tl_0x32, layer1_tl_0x33, layer1_tl_0x34, layer1_tl_0x35, layer1_tl_0x36, layer1_tl_0x37
  775. };
  776. // Partial Layer 2
  777. const nat_ptr_t *layer2_scanMap[] = {
  778. layer2_tl_0x12, layer2_tl_0x13, layer2_tl_0x14, layer2_tl_0x15, layer2_tl_0x16, layer2_tl_0x17, layer2_tl_0x18, layer2_tl_0x19, layer2_tl_0x1A, layer2_tl_0x1B, layer2_tl_0x1C, layer2_tl_0x1D, layer2_tl_0x1E, layer2_tl_0x1F, layer2_tl_0x20, layer2_tl_0x21, layer2_tl_0x22, layer2_tl_0x23, layer2_tl_0x24, layer2_tl_0x25, layer2_tl_0x26, layer2_tl_0x27, layer2_tl_0x28, layer2_tl_0x29, layer2_tl_0x2A, layer2_tl_0x2B, layer2_tl_0x2C, layer2_tl_0x2D, layer2_tl_0x2E, layer2_tl_0x2F, layer2_tl_0x30, layer2_tl_0x31, layer2_tl_0x32, layer2_tl_0x33
  779. };
  780. // ----- Layer Index -----
  781. // -- Layer Index List
  782. //
  783. // Index 0: Default map
  784. // Index n: Additional layers
  785. const Layer LayerIndex[] = {
  786. Layer_IN( default_scanMap, "D: md1Overlay + stdFuncMap", 0x00 ),
  787. Layer_IN( layer1_scanMap, "1: hhkbpro2", 0x01 ),
  788. Layer_IN( layer2_scanMap, "2: colemak", 0x12 ),
  789. };
  790. // - Layer State
  791. uint8_t LayerState[ LayerNum ];