PatchworkOS  c9fea19
A non-POSIX operating system.
Loading...
Searching...
No Matches
kbd.h
Go to the documentation of this file.
1#ifndef _SYS_KBD_H
2#define _SYS_KBD_H 1
3
4#include <stdint.h>
5
6#if defined(__cplusplus)
7extern "C"
8{
9#endif
10
11#include "_internal/clock_t.h"
12
13/**
14 * @brief Keyboard device header.
15 * @ingroup libstd
16 * @defgroup libstd_sys_kbd Keyboard device
17 *
18 * @{
19 */
20
21/**
22 * @brief Keyboard keycode type.
23 * @ingroup libstd_sys_kbd
24 *
25 */
26typedef enum
27{
28 KBD_NONE = 0x00, ///< None
29 KBD_ERR_OVF = 0x01, ///< Keyboard error overflow
30 KBD_POST_FAIL = 0x02, ///< POST failure
31 KBD_ERR_UNDEFINED = 0x03, ///< Undefined error
32 KBD_A = 0x04, ///< Key A
33 KBD_B = 0x05, ///< Key B
34 KBD_C = 0x06, ///< Key C
35 KBD_D = 0x07, ///< Key D
36 KBD_E = 0x08, ///< Key E
37 KBD_F = 0x09, ///< Key F
38 KBD_G = 0x0A, ///< Key G
39 KBD_H = 0x0B, ///< Key H
40 KBD_I = 0x0C, ///< Key I
41 KBD_J = 0x0D, ///< Key J
42 KBD_K = 0x0E, ///< Key K
43 KBD_L = 0x0F, ///< Key L
44 KBD_M = 0x10, ///< Key M
45 KBD_N = 0x11, ///< Key N
46 KBD_O = 0x12, ///< Key O
47 KBD_P = 0x13, ///< Key P
48 KBD_Q = 0x14, ///< Key Q
49 KBD_R = 0x15, ///< Key R
50 KBD_S = 0x16, ///< Key S
51 KBD_T = 0x17, ///< Key T
52 KBD_U = 0x18, ///< Key U
53 KBD_V = 0x19, ///< Key V
54 KBD_W = 0x1A, ///< Key W
55 KBD_X = 0x1B, ///< Key X
56 KBD_Y = 0x1C, ///< Key Y
57 KBD_Z = 0x1D, ///< Key Z
58
59 KBD_1 = 0x1E, ///< Key 1
60 KBD_2 = 0x1F, ///< Key 2
61 KBD_3 = 0x20, ///< Key 3
62 KBD_4 = 0x21, ///< Key 4
63 KBD_5 = 0x22, ///< Key 5
64 KBD_6 = 0x23, ///< Key 6
65 KBD_7 = 0x24, ///< Key 7
66 KBD_8 = 0x25, ///< Key 8
67 KBD_9 = 0x26, ///< Key 9
68 KBD_0 = 0x27, ///< Key 0
69
70 KBD_ENTER = 0x28, ///< Enter key
71 KBD_ESC = 0x29, ///< Escape key
72 KBD_BACKSPACE = 0x2A, ///< Backspace key
73 KBD_TAB = 0x2B, ///< Tab key
74 KBD_SPACE = 0x2C, ///< Space key
75 KBD_MINUS = 0x2D, ///< Minus key
76 KBD_EQUAL = 0x2E, ///< Equal key
77 KBD_LEFT_BRACE = 0x2F, ///< Left brace key
78 KBD_RIGHT_BRACE = 0x30, ///< Right brace key
79 KBD_BACKSLASH = 0x31, ///< Backslash key
80 KBD_HASHTILDE = 0x32, ///< Hashtilde key
81 KBD_SEMICOLON = 0x33, ///< Semicolon key
82 KBD_APOSTROPHE = 0x34, ///< Apostrophe key
83 KBD_GRAVE = 0x35, ///< Grave accent key
84 KBD_COMMA = 0x36, ///< Comma key
85 KBD_PERIOD = 0x37, ///< Period key
86 KBD_SLASH = 0x38, ///< Slash key
87 KBD_CAPS_LOCK = 0x39, ///< Caps Lock key
88
89 KBD_F1 = 0x3A, ///< F1 key
90 KBD_F2 = 0x3B, ///< F2 key
91 KBD_F3 = 0x3C, ///< F3 key
92 KBD_F4 = 0x3D, ///< F4 key
93 KBD_F5 = 0x3E, ///< F5 key
94 KBD_F6 = 0x3F, ///< F6 key
95 KBD_F7 = 0x40, ///< F7 key
96 KBD_F8 = 0x41, ///< F8 key
97 KBD_F9 = 0x42, ///< F9 key
98 KBD_F10 = 0x43, ///< F10 key
99 KBD_F11 = 0x44, ///< F11 key
100 KBD_F12 = 0x45, ///< F12 key
101
102 KBD_SYSRQ = 0x46, ///< SysRq key
103 KBD_SCROLL_LOCK = 0x47, ///< Scroll Lock key
104 KBD_PAUSE = 0x48, ///< Pause key
105 KBD_INSERT = 0x49, ///< Insert key
106 KBD_HOME = 0x4A, ///< Home key
107 KBD_PAGE_UP = 0x4B, ///< Page Up key
108 KBD_DELETE = 0x4C, ///< Delete key
109 KBD_END = 0x4D, ///< End key
110 KBD_PAGE_DOWN = 0x4E, ///< Page Down key
111 KBD_RIGHT = 0x4F, ///< Right arrow key
112 KBD_LEFT = 0x50, ///< Left arrow key
113 KBD_DOWN = 0x51, ///< Down arrow key
114 KBD_UP = 0x52, ///< Up arrow key
115
116 KBD_NUM_LOCK = 0x53, ///< Num Lock key
117 KBD_KP_SLASH = 0x54, ///< Keypad Slash
118 KBD_KP_ASTERISK = 0x55, ///< Keypad Asterisk
119 KBD_KP_MINUS = 0x56, ///< Keypad Minus
120 KBD_KP_PLUS = 0x57, ///< Keypad Plus
121 KBD_KP_ENTER = 0x58, ///< Keypad Enter
122 KBD_KP_1 = 0x59, ///< Keypad 1
123 KBD_KP_2 = 0x5A, ///< Keypad 2
124 KBD_KP_3 = 0x5B, ///< Keypad 3
125 KBD_KP_4 = 0x5C, ///< Keypad 4
126 KBD_KP_5 = 0x5D, ///< Keypad 5
127 KBD_KP_6 = 0x5E, ///< Keypad 6
128 KBD_KP_7 = 0x5F, ///< Keypad 7
129 KBD_KP_8 = 0x60, ///< Keypad 8
130 KBD_KP_9 = 0x61, ///< Keypad 9
131 KBD_KP_0 = 0x62, ///< Keypad 0
132 KBD_KP_PERIOD = 0x63, ///< Keypad Period
133
134 KBD_102ND = 0x64, ///< 102nd key
135 KBD_COMPOSE = 0x65, ///< Compose key
136 KBD_POWER = 0x66, ///< Power key
137 KBD_KP_EQUAL = 0x67, ///< Keypad Equal
138
139 KBD_F13 = 0x68, ///< F13 key
140 KBD_F14 = 0x69, ///< F14 key
141 KBD_F15 = 0x6A, ///< F15 key
142 KBD_F16 = 0x6B, ///< F16 key
143 KBD_F17 = 0x6C, ///< F17 key
144 KBD_F18 = 0x6D, ///< F18 key
145 KBD_F19 = 0x6E, ///< F19 key
146 KBD_F20 = 0x6F, ///< F20 key
147 KBD_F21 = 0x70, ///< F21 key
148 KBD_F22 = 0x71, ///< F22 key
149 KBD_F23 = 0x72, ///< F23 key
150 KBD_F24 = 0x73, ///< F24 key
151
152 KBD_OPEN = 0x74, ///< Open key
153 KBD_HELP = 0x75, ///< Help key
154 KBD_PROPS = 0x76, ///< Props key
155 KBD_FRONT = 0x77, ///< Front key
156 KBD_STOP = 0x78, ///< Stop key
157 KBD_AGAIN = 0x79, ///< Again key
158 KBD_UNDO = 0x7A, ///< Undo key
159 KBD_CUT = 0x7B, ///< Cut key
160 KBD_COPY = 0x7C, ///< Copy key
161 KBD_PASTE = 0x7D, ///< Paste key
162 KBD_FIND = 0x7E, ///< Find key
163 KBD_MUTE = 0x7F, ///< Mute key
164 KBD_VOLUME_UP = 0x80, ///< Volume Up key
165 KBD_VOLUME_DOWN = 0x81, ///< Volume Down key
166 KBD_LOCKING_CAPS_LOCK = 0x82, ///< Locking Caps Lock key
167 KBD_LOCKING_NUM_LOCK = 0x83, ///< Locking Num Lock key
168 KBD_LOCKING_SCROLL_LOCK = 0x84, ///< Locking Scroll Lock key
169 KBD_KP_COMMA = 0x85, ///< Keypad Comma
170 KBD_KP_EQUAL_SIGN = 0x86, ///< Keypad Equal Sign
171 KBD_RO = 0x87, ///< RO key
172 KBD_KATAKANAHIRAGANA = 0x88, ///< Katakana/Hiragana key
173 KBD_YEN = 0x89, ///< Yen key
174 KBD_HENKAN = 0x8A, ///< Henkan key
175 KBD_MUHENKAN = 0x8B, ///< Muhenkan key
176 KBD_KP_JPCOMMA = 0x8C, ///< Keypad Japanese Comma
177 KBD_INTERNATIONAL7 = 0x8D, ///< International 7 key
178 KBD_INTERNATIONAL8 = 0x8E, ///< International 8 key
179 KBD_INTERNATIONAL9 = 0x8F, ///< International 9 key
180 KBD_HANGEUL = 0x90, ///< Hangeul key
181 KBD_HANJA = 0x91, ///< Hanja key
182 KBD_KATAKANA = 0x92, ///< Katakana key
183 KBD_HIRAGANA = 0x93, ///< Hiragana key
184 KBD_ZENKAKUHANKAKU = 0x94, ///< Zenkaku/Hankaku key
185 KBD_LANG6 = 0x95, ///< Language 6 key
186 KBD_LANG7 = 0x96, ///< Language 7 key
187 KBD_LANG8 = 0x97, ///< Language 8 key
188 KBD_LANG9 = 0x98, ///< Language 9 key
189 KBD_ALTERNATE_ERASE = 0x99, ///< Alternate Erase key
190 KBD_SYSREQ = 0x9A, ///< SysReq key
191 KBD_CANCEL = 0x9B, ///< Cancel key
192 KBD_CLEAR = 0x9C, ///< Clear key
193 KBD_PRIOR = 0x9D, ///< Prior key
194 KBD_RETURN = 0x9E, ///< Return key
195 KBD_SEPARATOR = 0x9F, ///< Separator key
196 KBD_OUT = 0xA0, ///< Out key
197 KBD_OPER = 0xA1, ///< Oper key
198 KBD_CLEAR_AGAIN = 0xA2, ///< Clear Again key
199 KBD_CRSEL_PROPS = 0xA3, ///< CrSel/Props key
200 KBD_EXSEL = 0xA4, ///< ExSel key
201
202 KBD_KP_00 = 0xB0, ///< Keypad 00
203 KBD_KP_000 = 0xB1, ///< Keypad 000
204 KBD_THOUSANDS_SEPARATOR = 0xB2, ///< Thousands Separator key
205 KBD_DECIMAL_SEPARATOR = 0xB3, ///< Decimal Separator key
206 KBD_CURRENCY_UNIT = 0xB4, ///< Currency Unit key
207 KBD_CURRENCY_SUBUNIT = 0xB5, ///< Currency Subunit key
208 KBD_KP_LEFT_PAREN = 0xB6, ///< Keypad Left Parenthesis
209 KBD_KP_RIGHT_PAREN = 0xB7, ///< Keypad Right Parenthesis
210 KBD_KP_LEFT_BRACE = 0xB8, ///< Keypad Left Brace
211 KBD_KP_RIGHT_BRACE = 0xB9, ///< Keypad Right Brace
212 KBD_KP_TAB = 0xBA, ///< Keypad Tab
213 KBD_KP_BACKSPACE = 0xBB, ///< Keypad Backspace
214 KBD_KP_A = 0xBC, ///< Keypad A
215 KBD_KP_B = 0xBD, ///< Keypad B
216 KBD_KP_C = 0xBE, ///< Keypad C
217 KBD_KP_D = 0xBF, ///< Keypad D
218 KBD_KP_E = 0xC0, ///< Keypad E
219 KBD_KP_F = 0xC1, ///< Keypad F
220 KBD_KP_XOR = 0xC2, ///< Keypad XOR
221 KBD_KP_CARET = 0xC3, ///< Keypad Caret
222 KBD_KP_PERCENT = 0xC4, ///< Keypad Percent
223 KBD_KP_LESS = 0xC5, ///< Keypad Less
224 KBD_KP_GREATER = 0xC6, ///< Keypad Greater
225 KBD_KP_AMPERSAND = 0xC7, ///< Keypad Ampersand
226 KBD_KP_DOUBLE_AMPERSAND = 0xC8, ///< Keypad Double Ampersand
227 KBD_KP_PIPE = 0xC9, ///< Keypad Pipe
228 KBD_KP_DOUBLE_PIPE = 0xCA, ///< Keypad Double Pipe
229 KBD_KP_COLON = 0xCB, ///< Keypad Colon
230 KBD_KP_HASH = 0xCC, ///< Keypad Hash
231 KBD_KP_SPACE = 0xCD, ///< Keypad Space
232 KBD_KP_AT = 0xCE, ///< Keypad At
233 KBD_KP_EXCLAMATION = 0xCF, ///< Keypad Exclamation
234 KBD_KP_MEMORY_STORE = 0xD0, ///< Keypad Memory Store
235 KBD_KP_MEMORY_RECALL = 0xD1, ///< Keypad Memory Recall
236 KBD_KP_MEMORY_CLEAR = 0xD2, ///< Keypad Memory Clear
237 KBD_KP_MEMORY_ADD = 0xD3, ///< Keypad Memory Add
238 KBD_KP_MEMORY_SUBTRACT = 0xD4, ///< Keypad Memory Subtract
239 KBD_KP_MEMORY_MULTIPLY = 0xD5, ///< Keypad Memory Multiply
240 KBD_KP_MEMORY_DIVIDE = 0xD6, ///< Keypad Memory Divide
241 KBD_KP_PLUS_MINUS = 0xD7, ///< Keypad Plus/Minus
242 KBD_KP_CLEAR = 0xD8, ///< Keypad Clear
243 KBD_KP_CLEAR_ENTRY = 0xD9, ///< Keypad Clear Entry
244 KBD_KP_BINARY = 0xDA, ///< Keypad Binary
245 KBD_KP_OCTAL = 0xDB, ///< Keypad Octal
246 KBD_KP_DECIMAL = 0xDC, ///< Keypad Decimal
247 KBD_KP_HEXADECIMAL = 0xDD, ///< Keypad Hexadecimal
248
249 KBD_LEFT_CTRL = 0xE0, ///< Left Control key
250 KBD_LEFT_SHIFT = 0xE1, ///< Left Shift key
251 KBD_LEFT_ALT = 0xE2, ///< Left Alt key
252 KBD_LEFT_SUPER = 0xE3, ///< Left Super key
253 KBD_RIGHT_CTRL = 0xE4, ///< Right Control key
254 KBD_RIGHT_SHIFT = 0xE5, ///< Right Shift key
255 KBD_RIGHT_ALT = 0xE6, ///< Right Alt key
256 KBD_RIGHT_SUPER = 0xE7, ///< Right Super key
257
258 KBD_MEDIA_PLAY_PAUSE = 0xE8, ///< Media Play/Pause key
259 KBD_MEDIA_STOP_CD = 0xE9, ///< Media Stop CD key
260 KBD_MEDIA_PREVIOUS_SONG = 0xEA, ///< Media Previous Song key
261 KBD_MEDIA_NEXT_SONG = 0xEB, ///< Media Next Song key
262 KBD_MEDIA_EJECT_CD = 0xEC, ///< Media Eject CD key
263 KBD_MEDIA_VOLUME_UP = 0xED, ///< Media Volume Up key
264 KBD_MEDIA_VOLUME_DOWN = 0xEE, ///< Media Volume Down key
265 KBD_MEDIA_MUTE = 0xEF, ///< Media Mute key
266 KBD_MEDIA_WWW = 0xF0, ///< Media WWW key
267 KBD_MEDIA_BACK = 0xF1, ///< Media Back key
268 KBD_MEDIA_FORWARD = 0xF2, ///< Media Forward key
269 KBD_MEDIA_STOP = 0xF3, ///< Media Stop key
270 KBD_MEDIA_FIND = 0xF4, ///< Media Find key
271 KBD_MEDIA_SCROLL_UP = 0xF5, ///< Media Scroll Up key
272 KBD_MEDIA_SCROLL_DOWN = 0xF6, ///< Media Scroll Down key
273 KBD_MEDIA_EDIT = 0xF7, ///< Media Edit key
274 KBD_MEDIA_SLEEP = 0xF8, ///< Media Sleep key
275 KBD_MEDIA_COFFEE = 0xF9, ///< Media Coffee key
276 KBD_MEDIA_REFRESH = 0xFA, ///< Media Refresh key
277 KBD_MEDIA_CALC = 0xFB, ///< Media Calculator key
278} keycode_t;
279
280/**
281 * @brief Keyboard event type.
282 * @ingroup libstd_sys_kbd
283 *
284 */
285typedef enum
286{
287 KBD_PRESS = 0, ///< Key press event
288 KBD_RELEASE = 1 ///< Key release event
290
291/**
292 * @brief Keyboard modifiers type.
293 * @ingroup libstd_sys_kbd
294 *
295 */
296typedef enum
297{
298 KBD_MOD_NONE = 0, ///< No modifier
299 KBD_MOD_CAPS = 1 << 0, ///< Caps Lock modifier
300 KBD_MOD_SHIFT = 1 << 1, ///< Shift modifier
301 KBD_MOD_CTRL = 1 << 2, ///< Control modifier
302 KBD_MOD_ALT = 1 << 3, ///< Alt modifier
303 KBD_MOD_SUPER = 1 << 4, ///< Super (Windows/Command) modifier
304} kbd_mods_t;
305
306/**
307 * @brief Keyboard event structure.
308 * @ingroup libstd_sys_kbd
309 *
310 * The `kbd_event_t` structure read from a keyboards stream file, for example `/dev/kbd/0/events`.
311 */
312typedef struct
313{
314 clock_t time; ///< Timestamp of the event
315 kbd_event_type_t type; ///< Type of keyboard event (press or release)
316 kbd_mods_t mods; ///< Active keyboard modifiers
317 keycode_t code; ///< Keycode of the key involved in the event
319
320#if defined(__cplusplus)
321}
322#endif
323
324#endif
325
326/** @} */
keycode_t
Keyboard keycode type.
Definition kbd.h:27
kbd_mods_t
Keyboard modifiers type.
Definition kbd.h:297
kbd_event_type_t
Keyboard event type.
Definition kbd.h:286
@ KBD_F11
F11 key.
Definition kbd.h:99
@ KBD_KP_COMMA
Keypad Comma.
Definition kbd.h:169
@ KBD_MEDIA_REFRESH
Media Refresh key.
Definition kbd.h:276
@ KBD_KP_4
Keypad 4.
Definition kbd.h:125
@ KBD_KP_CLEAR
Keypad Clear.
Definition kbd.h:242
@ KBD_RIGHT_SUPER
Right Super key.
Definition kbd.h:256
@ KBD_2
Key 2.
Definition kbd.h:60
@ KBD_MEDIA_VOLUME_UP
Media Volume Up key.
Definition kbd.h:263
@ KBD_KP_OCTAL
Keypad Octal.
Definition kbd.h:245
@ KBD_F23
F23 key.
Definition kbd.h:149
@ KBD_MEDIA_SLEEP
Media Sleep key.
Definition kbd.h:274
@ KBD_MEDIA_PLAY_PAUSE
Media Play/Pause key.
Definition kbd.h:258
@ KBD_LANG9
Language 9 key.
Definition kbd.h:188
@ KBD_PROPS
Props key.
Definition kbd.h:154
@ KBD_6
Key 6.
Definition kbd.h:64
@ KBD_1
Key 1.
Definition kbd.h:59
@ KBD_F5
F5 key.
Definition kbd.h:93
@ KBD_INTERNATIONAL9
International 9 key.
Definition kbd.h:179
@ KBD_4
Key 4.
Definition kbd.h:62
@ KBD_KP_LESS
Keypad Less.
Definition kbd.h:223
@ KBD_F21
F21 key.
Definition kbd.h:147
@ KBD_K
Key K.
Definition kbd.h:42
@ KBD_KP_D
Keypad D.
Definition kbd.h:217
@ KBD_KATAKANAHIRAGANA
Katakana/Hiragana key.
Definition kbd.h:172
@ KBD_MEDIA_COFFEE
Media Coffee key.
Definition kbd.h:275
@ KBD_MEDIA_EJECT_CD
Media Eject CD key.
Definition kbd.h:262
@ KBD_MUTE
Mute key.
Definition kbd.h:163
@ KBD_SPACE
Space key.
Definition kbd.h:74
@ KBD_LANG7
Language 7 key.
Definition kbd.h:186
@ KBD_F24
F24 key.
Definition kbd.h:150
@ KBD_T
Key T.
Definition kbd.h:51
@ KBD_INSERT
Insert key.
Definition kbd.h:105
@ KBD_MEDIA_WWW
Media WWW key.
Definition kbd.h:266
@ KBD_KP_MEMORY_STORE
Keypad Memory Store.
Definition kbd.h:234
@ KBD_F2
F2 key.
Definition kbd.h:90
@ KBD_R
Key R.
Definition kbd.h:49
@ KBD_KP_BINARY
Keypad Binary.
Definition kbd.h:244
@ KBD_KP_E
Keypad E.
Definition kbd.h:218
@ KBD_POWER
Power key.
Definition kbd.h:136
@ KBD_GRAVE
Grave accent key.
Definition kbd.h:83
@ KBD_F18
F18 key.
Definition kbd.h:144
@ KBD_MEDIA_MUTE
Media Mute key.
Definition kbd.h:265
@ KBD_KP_XOR
Keypad XOR.
Definition kbd.h:220
@ KBD_PERIOD
Period key.
Definition kbd.h:85
@ KBD_CURRENCY_SUBUNIT
Currency Subunit key.
Definition kbd.h:207
@ KBD_F9
F9 key.
Definition kbd.h:97
@ KBD_F6
F6 key.
Definition kbd.h:94
@ KBD_RETURN
Return key.
Definition kbd.h:194
@ KBD_MEDIA_STOP
Media Stop key.
Definition kbd.h:269
@ KBD_LANG8
Language 8 key.
Definition kbd.h:187
@ KBD_LEFT
Left arrow key.
Definition kbd.h:112
@ KBD_F7
F7 key.
Definition kbd.h:95
@ KBD_Q
Key Q.
Definition kbd.h:48
@ KBD_F13
F13 key.
Definition kbd.h:139
@ KBD_MINUS
Minus key.
Definition kbd.h:75
@ KBD_M
Key M.
Definition kbd.h:44
@ KBD_APOSTROPHE
Apostrophe key.
Definition kbd.h:82
@ KBD_3
Key 3.
Definition kbd.h:61
@ KBD_CRSEL_PROPS
CrSel/Props key.
Definition kbd.h:199
@ KBD_LEFT_ALT
Left Alt key.
Definition kbd.h:251
@ KBD_KP_MEMORY_SUBTRACT
Keypad Memory Subtract.
Definition kbd.h:238
@ KBD_ZENKAKUHANKAKU
Zenkaku/Hankaku key.
Definition kbd.h:184
@ KBD_KP_EQUAL_SIGN
Keypad Equal Sign.
Definition kbd.h:170
@ KBD_KP_PLUS_MINUS
Keypad Plus/Minus.
Definition kbd.h:241
@ KBD_EXSEL
ExSel key.
Definition kbd.h:200
@ KBD_MEDIA_VOLUME_DOWN
Media Volume Down key.
Definition kbd.h:264
@ KBD_J
Key J.
Definition kbd.h:41
@ KBD_KP_SPACE
Keypad Space.
Definition kbd.h:231
@ KBD_KP_BACKSPACE
Keypad Backspace.
Definition kbd.h:213
@ KBD_RO
RO key.
Definition kbd.h:171
@ KBD_KP_ASTERISK
Keypad Asterisk.
Definition kbd.h:118
@ KBD_KP_HASH
Keypad Hash.
Definition kbd.h:230
@ KBD_MEDIA_STOP_CD
Media Stop CD key.
Definition kbd.h:259
@ KBD_YEN
Yen key.
Definition kbd.h:173
@ KBD_KP_PIPE
Keypad Pipe.
Definition kbd.h:227
@ KBD_DOWN
Down arrow key.
Definition kbd.h:113
@ KBD_F20
F20 key.
Definition kbd.h:146
@ KBD_SYSREQ
SysReq key.
Definition kbd.h:190
@ KBD_F4
F4 key.
Definition kbd.h:92
@ KBD_BACKSLASH
Backslash key.
Definition kbd.h:79
@ KBD_RIGHT_BRACE
Right brace key.
Definition kbd.h:78
@ KBD_PAUSE
Pause key.
Definition kbd.h:104
@ KBD_KP_1
Keypad 1.
Definition kbd.h:122
@ KBD_X
Key X.
Definition kbd.h:55
@ KBD_8
Key 8.
Definition kbd.h:66
@ KBD_F8
F8 key.
Definition kbd.h:96
@ KBD_MEDIA_PREVIOUS_SONG
Media Previous Song key.
Definition kbd.h:260
@ KBD_HOME
Home key.
Definition kbd.h:106
@ KBD_LEFT_SHIFT
Left Shift key.
Definition kbd.h:250
@ KBD_S
Key S.
Definition kbd.h:50
@ KBD_KP_LEFT_PAREN
Keypad Left Parenthesis.
Definition kbd.h:208
@ KBD_OPER
Oper key.
Definition kbd.h:197
@ KBD_MEDIA_EDIT
Media Edit key.
Definition kbd.h:273
@ KBD_OUT
Out key.
Definition kbd.h:196
@ KBD_LOCKING_SCROLL_LOCK
Locking Scroll Lock key.
Definition kbd.h:168
@ KBD_HANGEUL
Hangeul key.
Definition kbd.h:180
@ KBD_ERR_OVF
Keyboard error overflow.
Definition kbd.h:29
@ KBD_I
Key I.
Definition kbd.h:40
@ KBD_HANJA
Hanja key.
Definition kbd.h:181
@ KBD_KP_DOUBLE_AMPERSAND
Keypad Double Ampersand.
Definition kbd.h:226
@ KBD_H
Key H.
Definition kbd.h:39
@ KBD_RIGHT_SHIFT
Right Shift key.
Definition kbd.h:254
@ KBD_TAB
Tab key.
Definition kbd.h:73
@ KBD_N
Key N.
Definition kbd.h:45
@ KBD_Z
Key Z.
Definition kbd.h:57
@ KBD_KP_HEXADECIMAL
Keypad Hexadecimal.
Definition kbd.h:247
@ KBD_KP_MEMORY_MULTIPLY
Keypad Memory Multiply.
Definition kbd.h:239
@ KBD_LOCKING_NUM_LOCK
Locking Num Lock key.
Definition kbd.h:167
@ KBD_LEFT_CTRL
Left Control key.
Definition kbd.h:249
@ KBD_KP_7
Keypad 7.
Definition kbd.h:128
@ KBD_BACKSPACE
Backspace key.
Definition kbd.h:72
@ KBD_HASHTILDE
Hashtilde key.
Definition kbd.h:80
@ KBD_U
Key U.
Definition kbd.h:52
@ KBD_KP_COLON
Keypad Colon.
Definition kbd.h:229
@ KBD_RIGHT
Right arrow key.
Definition kbd.h:111
@ KBD_FRONT
Front key.
Definition kbd.h:155
@ KBD_F
Key F.
Definition kbd.h:37
@ KBD_KP_C
Keypad C.
Definition kbd.h:216
@ KBD_MEDIA_SCROLL_DOWN
Media Scroll Down key.
Definition kbd.h:272
@ KBD_DECIMAL_SEPARATOR
Decimal Separator key.
Definition kbd.h:205
@ KBD_LANG6
Language 6 key.
Definition kbd.h:185
@ KBD_7
Key 7.
Definition kbd.h:65
@ KBD_5
Key 5.
Definition kbd.h:63
@ KBD_KP_MEMORY_ADD
Keypad Memory Add.
Definition kbd.h:237
@ KBD_HELP
Help key.
Definition kbd.h:153
@ KBD_KP_A
Keypad A.
Definition kbd.h:214
@ KBD_COPY
Copy key.
Definition kbd.h:160
@ KBD_UNDO
Undo key.
Definition kbd.h:158
@ KBD_THOUSANDS_SEPARATOR
Thousands Separator key.
Definition kbd.h:204
@ KBD_KP_9
Keypad 9.
Definition kbd.h:130
@ KBD_0
Key 0.
Definition kbd.h:68
@ KBD_MEDIA_FORWARD
Media Forward key.
Definition kbd.h:268
@ KBD_KP_3
Keypad 3.
Definition kbd.h:124
@ KBD_KP_0
Keypad 0.
Definition kbd.h:131
@ KBD_O
Key O.
Definition kbd.h:46
@ KBD_KP_F
Keypad F.
Definition kbd.h:219
@ KBD_SEPARATOR
Separator key.
Definition kbd.h:195
@ KBD_KP_6
Keypad 6.
Definition kbd.h:127
@ KBD_CUT
Cut key.
Definition kbd.h:159
@ KBD_D
Key D.
Definition kbd.h:35
@ KBD_MEDIA_FIND
Media Find key.
Definition kbd.h:270
@ KBD_F17
F17 key.
Definition kbd.h:143
@ KBD_NUM_LOCK
Num Lock key.
Definition kbd.h:116
@ KBD_CURRENCY_UNIT
Currency Unit key.
Definition kbd.h:206
@ KBD_ENTER
Enter key.
Definition kbd.h:70
@ KBD_FIND
Find key.
Definition kbd.h:162
@ KBD_PASTE
Paste key.
Definition kbd.h:161
@ KBD_KP_RIGHT_PAREN
Keypad Right Parenthesis.
Definition kbd.h:209
@ KBD_AGAIN
Again key.
Definition kbd.h:157
@ KBD_KP_TAB
Keypad Tab.
Definition kbd.h:212
@ KBD_MUHENKAN
Muhenkan key.
Definition kbd.h:175
@ KBD_V
Key V.
Definition kbd.h:53
@ KBD_KP_AMPERSAND
Keypad Ampersand.
Definition kbd.h:225
@ KBD_KP_MINUS
Keypad Minus.
Definition kbd.h:119
@ KBD_VOLUME_UP
Volume Up key.
Definition kbd.h:164
@ KBD_CLEAR_AGAIN
Clear Again key.
Definition kbd.h:198
@ KBD_KP_LEFT_BRACE
Keypad Left Brace.
Definition kbd.h:210
@ KBD_KP_MEMORY_DIVIDE
Keypad Memory Divide.
Definition kbd.h:240
@ KBD_RIGHT_ALT
Right Alt key.
Definition kbd.h:255
@ KBD_W
Key W.
Definition kbd.h:54
@ KBD_COMPOSE
Compose key.
Definition kbd.h:135
@ KBD_EQUAL
Equal key.
Definition kbd.h:76
@ KBD_9
Key 9.
Definition kbd.h:67
@ KBD_LOCKING_CAPS_LOCK
Locking Caps Lock key.
Definition kbd.h:166
@ KBD_KP_EXCLAMATION
Keypad Exclamation.
Definition kbd.h:233
@ KBD_102ND
102nd key
Definition kbd.h:134
@ KBD_ERR_UNDEFINED
Undefined error.
Definition kbd.h:31
@ KBD_KP_SLASH
Keypad Slash.
Definition kbd.h:117
@ KBD_CAPS_LOCK
Caps Lock key.
Definition kbd.h:87
@ KBD_KP_PLUS
Keypad Plus.
Definition kbd.h:120
@ KBD_ALTERNATE_ERASE
Alternate Erase key.
Definition kbd.h:189
@ KBD_KP_8
Keypad 8.
Definition kbd.h:129
@ KBD_P
Key P.
Definition kbd.h:47
@ KBD_KP_2
Keypad 2.
Definition kbd.h:123
@ KBD_KP_ENTER
Keypad Enter.
Definition kbd.h:121
@ KBD_INTERNATIONAL8
International 8 key.
Definition kbd.h:178
@ KBD_PRIOR
Prior key.
Definition kbd.h:193
@ KBD_KP_EQUAL
Keypad Equal.
Definition kbd.h:137
@ KBD_UP
Up arrow key.
Definition kbd.h:114
@ KBD_L
Key L.
Definition kbd.h:43
@ KBD_KP_PERCENT
Keypad Percent.
Definition kbd.h:222
@ KBD_KP_MEMORY_CLEAR
Keypad Memory Clear.
Definition kbd.h:236
@ KBD_A
Key A.
Definition kbd.h:32
@ KBD_F12
F12 key.
Definition kbd.h:100
@ KBD_Y
Key Y.
Definition kbd.h:56
@ KBD_KP_5
Keypad 5.
Definition kbd.h:126
@ KBD_RIGHT_CTRL
Right Control key.
Definition kbd.h:253
@ KBD_KP_MEMORY_RECALL
Keypad Memory Recall.
Definition kbd.h:235
@ KBD_NONE
None.
Definition kbd.h:28
@ KBD_SLASH
Slash key.
Definition kbd.h:86
@ KBD_KP_JPCOMMA
Keypad Japanese Comma.
Definition kbd.h:176
@ KBD_F16
F16 key.
Definition kbd.h:142
@ KBD_F19
F19 key.
Definition kbd.h:145
@ KBD_END
End key.
Definition kbd.h:109
@ KBD_ESC
Escape key.
Definition kbd.h:71
@ KBD_C
Key C.
Definition kbd.h:34
@ KBD_KP_B
Keypad B.
Definition kbd.h:215
@ KBD_PAGE_DOWN
Page Down key.
Definition kbd.h:110
@ KBD_KP_DOUBLE_PIPE
Keypad Double Pipe.
Definition kbd.h:228
@ KBD_B
Key B.
Definition kbd.h:33
@ KBD_SCROLL_LOCK
Scroll Lock key.
Definition kbd.h:103
@ KBD_HENKAN
Henkan key.
Definition kbd.h:174
@ KBD_KATAKANA
Katakana key.
Definition kbd.h:182
@ KBD_G
Key G.
Definition kbd.h:38
@ KBD_OPEN
Open key.
Definition kbd.h:152
@ KBD_E
Key E.
Definition kbd.h:36
@ KBD_F1
F1 key.
Definition kbd.h:89
@ KBD_KP_PERIOD
Keypad Period.
Definition kbd.h:132
@ KBD_VOLUME_DOWN
Volume Down key.
Definition kbd.h:165
@ KBD_MEDIA_BACK
Media Back key.
Definition kbd.h:267
@ KBD_MEDIA_CALC
Media Calculator key.
Definition kbd.h:277
@ KBD_DELETE
Delete key.
Definition kbd.h:108
@ KBD_HIRAGANA
Hiragana key.
Definition kbd.h:183
@ KBD_COMMA
Comma key.
Definition kbd.h:84
@ KBD_STOP
Stop key.
Definition kbd.h:156
@ KBD_F3
F3 key.
Definition kbd.h:91
@ KBD_KP_CARET
Keypad Caret.
Definition kbd.h:221
@ KBD_F15
F15 key.
Definition kbd.h:141
@ KBD_F22
F22 key.
Definition kbd.h:148
@ KBD_KP_AT
Keypad At.
Definition kbd.h:232
@ KBD_KP_CLEAR_ENTRY
Keypad Clear Entry.
Definition kbd.h:243
@ KBD_LEFT_BRACE
Left brace key.
Definition kbd.h:77
@ KBD_INTERNATIONAL7
International 7 key.
Definition kbd.h:177
@ KBD_LEFT_SUPER
Left Super key.
Definition kbd.h:252
@ KBD_MEDIA_NEXT_SONG
Media Next Song key.
Definition kbd.h:261
@ KBD_SEMICOLON
Semicolon key.
Definition kbd.h:81
@ KBD_KP_DECIMAL
Keypad Decimal.
Definition kbd.h:246
@ KBD_F10
F10 key.
Definition kbd.h:98
@ KBD_KP_00
Keypad 00.
Definition kbd.h:202
@ KBD_KP_000
Keypad 000.
Definition kbd.h:203
@ KBD_F14
F14 key.
Definition kbd.h:140
@ KBD_CANCEL
Cancel key.
Definition kbd.h:191
@ KBD_POST_FAIL
POST failure.
Definition kbd.h:30
@ KBD_KP_RIGHT_BRACE
Keypad Right Brace.
Definition kbd.h:211
@ KBD_SYSRQ
SysRq key.
Definition kbd.h:102
@ KBD_PAGE_UP
Page Up key.
Definition kbd.h:107
@ KBD_MEDIA_SCROLL_UP
Media Scroll Up key.
Definition kbd.h:271
@ KBD_KP_GREATER
Keypad Greater.
Definition kbd.h:224
@ KBD_CLEAR
Clear key.
Definition kbd.h:192
@ KBD_MOD_SUPER
Super (Windows/Command) modifier.
Definition kbd.h:303
@ KBD_MOD_CAPS
Caps Lock modifier.
Definition kbd.h:299
@ KBD_MOD_NONE
No modifier.
Definition kbd.h:298
@ KBD_MOD_CTRL
Control modifier.
Definition kbd.h:301
@ KBD_MOD_ALT
Alt modifier.
Definition kbd.h:302
@ KBD_MOD_SHIFT
Shift modifier.
Definition kbd.h:300
@ KBD_RELEASE
Key release event.
Definition kbd.h:288
@ KBD_PRESS
Key press event.
Definition kbd.h:287
__UINT64_TYPE__ clock_t
A nanosecond time.
Definition clock_t.h:13
Keyboard event structure.
Definition kbd.h:313
kbd_event_type_t type
Type of keyboard event (press or release)
Definition kbd.h:315
keycode_t code
Keycode of the key involved in the event.
Definition kbd.h:317
clock_t time
Timestamp of the event.
Definition kbd.h:314
kbd_mods_t mods
Active keyboard modifiers.
Definition kbd.h:316