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
|
/*
* This file is subject to the terms of the GFX License. If a copy of
* the license was not distributed with this file, you can obtain one at:
*
* http://ugfx.org/license.html
*/
/**
* @file src/ginput/ginput_keyboard_microcode.c
* @brief GINPUT keyboard standard microcode definitions.
*/
#include "gfx.h"
#if GFX_USE_GINPUT && GINPUT_NEED_KEYBOARD && !GKEYBOARD_LAYOUT_OFF
#include "ginput_keyboard_microcode.h"
#if GKEYBOARD_LAYOUT_SCANCODE2_US
#error "Keyboard Layout SCANCODE2_US is not fully implemented yet"
uint8_t KeyboardLayout_ScancodeSet2_US[] = {
KMC_HEADERSTART, KMC_HEADER_ID1, KMC_HEADER_ID2, KMC_HEADER_VER_1,
KMC_RECORDSTART, 0x03, // Handle E0 codes (ignore for now assuming a single character)
KMC_TEST_LASTCODE, 0xE0,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x03,
KMC_TEST_CODE, 0xE0,
KMC_ACT_STOP,
KMC_RECORDSTART, 0x03, // Handle E1 codes (ignore for now assuming a single character)
KMC_TEST_LASTCODE, 0xE1,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x03,
KMC_TEST_CODE, 0xE1,
KMC_ACT_STOP,
KMC_RECORDSTART, 0x03, // Handle E2 codes (ignore for now assuming a single character)
KMC_TEST_LASTCODE, 0xE2,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x03,
KMC_TEST_CODE, 0xE2,
KMC_ACT_STOP,
KMC_RECORDSTART, 0x06, // KeyUp
KMC_TEST_CODEBIT, 0x80,
KMC_ACT_STATEBIT, GKEYSTATE_KEYUP_BIT,
KMC_ACT_CODEBIT, 0x80 | KMC_BIT_CLEAR,
KMC_RECORDSTART, 0x05, // CapsLock (on keyup to avoid repeats)
KMC_TEST_CODE, 0x58,
KMC_TEST_STATEBIT, GKEYSTATE_KEYUP_BIT | KMC_BIT_CLEAR,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x05,
KMC_TEST_CODE, 0x58,
KMC_ACT_STATEBIT, GKEYSTATE_CAPSLOCK_BIT | KMC_BIT_INVERT,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x05, // Detect Shift Keys
//KMC_ACT_LAYOUTBIT, SCANCODESET2_LAYOUT_E0_BIT | KMC_BIT_CLEAR,
KMC_ACT_STOP,
KMC_RECORDSTART, 0x03,
KMC_ACT_CHARRANGE, 0x00,
KMC_ACT_DONE,
KMC_RECORDSTART, 0x00,
};
#endif // GKEYBOARD_LAYOUT_SCANCODE2_US
#endif // GFX_USE_GINPUT && GINPUT_NEED_KEYBOARD && !GKEYBOARD_LAYOUT_OFF
|