]> git.donarmstrong.com Git - kiibohd-kll.git/blob - templates/kiibohdKeymap.h
Adding support for Interconnect Nodes
[kiibohd-kll.git] / templates / kiibohdKeymap.h
1 /* Copyright (C) 2014-2015 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
17 <|Information|>
18
19
20 #pragma once
21
22 // ----- Includes -----
23
24 // KLL Include
25 #include <kll.h>
26
27
28
29 // ----- Capabilities -----
30
31 // Indexed Capabilities Table
32 <|CapabilitiesList|>
33
34
35 // -- Result Macros
36
37 // Result Macro Guides
38 <|ResultMacros|>
39
40
41 // -- Result Macro List
42
43 // Indexed Table of Result Macros
44 <|ResultMacroList|>
45
46
47 // -- Trigger Macro Record
48
49 // Keeps a record/state of each result macro
50 <|ResultMacroRecord|>
51
52
53 // -- Trigger Macros
54
55 // Trigger Macro Guides
56 <|TriggerMacros|>
57
58
59 // -- Trigger Macro List
60
61 // Indexed Table of Trigger Macros
62 <|TriggerMacroList|>
63
64
65 // -- Trigger Macro Record List
66
67 // Keeps a record/state of each trigger macro
68 <|TriggerMacroRecord|>
69
70
71
72 // ----- Trigger Maps -----
73
74 // MaxScanCode
75 // - This is retrieved from the KLL configuration
76 // - Should be corollated with the max scan code in the scan module
77 // - Maximum value is 0x100 (0x0 to 0xFF)
78 // - Increasing it beyond the keyboard's capabilities is just a waste of ram...
79 #define MaxScanCode <|MaxScanCode|>
80
81 // -- Trigger Lists
82 //
83 // Index 0: # of triggers in list
84 // Index n: pointer to trigger macro - use tm() macro
85
86 // - Default Layer -
87 <|DefaultLayerTriggerList|>
88
89
90 // - Partial Layers -
91 <|PartialLayerTriggerLists|>
92
93
94 // -- ScanCode Offset Map
95 // Maps interconnect ids to scancode offsets
96 //
97 // Only used for keyboards with an interconnect
98 <|ScanCodeInterconnectOffsetList|>
99
100
101 // -- ScanCode Indexed Maps
102 // Maps to a trigger list of macro pointers
103 //                 _
104 // <scan code> -> |T|
105 //                |r| -> <trigger macro pointer 1>
106 //                |i|
107 //                |g| -> <trigger macro pointer 2>
108 //                |g|
109 //                |e| -> <trigger macro pointer 3>
110 //                |r|
111 //                |s| -> <trigger macro pointer n>
112 //                 -
113
114 // - Default Map for ScanCode Lookup -
115 <|DefaultLayerScanMap|>
116
117
118 // - Partial Layer ScanCode Lookup Maps -
119 <|PartialLayerScanMaps|>
120
121
122
123 // ----- Layer Index -----
124
125 // -- Layer Index List
126 //
127 // Index 0: Default map
128 // Index n: Additional layers
129 <|LayerIndexList|>
130
131
132 // - Layer State
133 <|LayerState|>
134