forked from kiibohd/kll
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkiibohdKeymap.h
150 lines (95 loc) · 2.93 KB
/
kiibohdKeymap.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* Copyright (C) 2014-2016 by Jacob Alexander
*
* This file is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this file. If not, see <http://www.gnu.org/licenses/>.
*/
<|Information|>
#pragma once
// ----- Includes -----
// KLL Include
#include <kll.h>
// ----- Capabilities -----
// Capability function declarations
<|CapabilitiesFuncDecl|>
// Indexed Capabilities Table
<|CapabilitiesList|>
// -- Result Macros
// Result Macro Guides
<|ResultMacros|>
// -- Result Macro List
// Indexed Table of Result Macros
<|ResultMacroList|>
// -- Trigger Macro Record
// Keeps a record/state of each result macro
<|ResultMacroRecord|>
// -- Trigger Macros
// Trigger Macro Guides
<|TriggerMacros|>
// -- Trigger Macro List
// Indexed Table of Trigger Macros
<|TriggerMacroList|>
// -- Trigger Macro Record List
// Keeps a record/state of each trigger macro
<|TriggerMacroRecord|>
// ----- Trigger Maps -----
// MaxScanCode
// - This is retrieved from the KLL configuration
// - Should be corollated with the max scan code in the scan module
// - Maximum value is 0x100 (0x0 to 0xFF)
// - Increasing it beyond the keyboard's capabilities is just a waste of ram...
#define MaxScanCode <|MaxScanCode|>
// -- Trigger Lists
//
// Index 0: # of triggers in list
// Index n: pointer to trigger macro - use tm() macro
// - Default Layer -
<|DefaultLayerTriggerList|>
// - Partial Layers -
<|PartialLayerTriggerLists|>
// -- ScanCode Offset Map
// Maps interconnect ids to scancode offsets
//
// Only used for keyboards with an interconnect
<|ScanCodeInterconnectOffsetList|>
// -- ScanCode Indexed Maps
// Maps to a trigger list of macro pointers
// _
// <scan code> -> |T|
// |r| -> <trigger macro pointer 1>
// |i|
// |g| -> <trigger macro pointer 2>
// |g|
// |e| -> <trigger macro pointer 3>
// |r|
// |s| -> <trigger macro pointer n>
// -
// - Default Map for ScanCode Lookup -
<|DefaultLayerScanMap|>
// - Partial Layer ScanCode Lookup Maps -
<|PartialLayerScanMaps|>
// ----- Layer Index -----
// -- Layer Index List
//
// Index 0: Default map
// Index n: Additional layers
<|LayerIndexList|>
// - Layer State
<|LayerState|>
// ----- Key Positions -----
// -- Physical Key Positions
//
// Index 0: Key 1
// Each key has 6 dimensions
// x,y,z and rx,ry,rz (rotation)
// Units are in mm
<|KeyPositions|>