summaryrefslogtreecommitdiff
path: root/include/yasl/keycodes.h
blob: 75869458b1078de6f68316b6691fe6f284c73db8 (plain)
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
/**
 * @file
 * Portable physical keyboard identities, included by yasl/yasl.h.
 * Letter/punctuation names describe positions on a US keyboard, regardless of
 * active layout or modifiers. Use YASL_INPUT_TEXT for text and codepoint/shifted
 * in yasl_key_event for layout labels. These values are neither Unicode nor
 * native scancodes; do not derive a character from a key enumerator.
 */
#ifndef YASL_KEYCODES_H
#define YASL_KEYCODES_H

#include <stdint.h>

/** Physical keys. Unrecognized native keys report YASL_KEY_UNKNOWN. */
enum yasl_key : uint32_t {
    YASL_KEY_UNKNOWN = 0x000, /**< No portable identity; native_code may still identify the key. */
    YASL_KEY_SPACE = 0x020, /**< Space. */
    YASL_KEY_APOSTROPHE = 0x027, /**< Apostrophe. */
    YASL_KEY_COMMA = 0x02c, /**< Comma. */
    YASL_KEY_MINUS = 0x02d, /**< Minus. */
    YASL_KEY_PERIOD = 0x02e, /**< Period. */
    YASL_KEY_SLASH = 0x02f, /**< Slash. */
    YASL_KEY_0 = 0x030, /**< Physical 0 key. */
    YASL_KEY_1 = 0x031, /**< Physical 1 key. */
    YASL_KEY_2 = 0x032, /**< Physical 2 key. */
    YASL_KEY_3 = 0x033, /**< Physical 3 key. */
    YASL_KEY_4 = 0x034, /**< Physical 4 key. */
    YASL_KEY_5 = 0x035, /**< Physical 5 key. */
    YASL_KEY_6 = 0x036, /**< Physical 6 key. */
    YASL_KEY_7 = 0x037, /**< Physical 7 key. */
    YASL_KEY_8 = 0x038, /**< Physical 8 key. */
    YASL_KEY_9 = 0x039, /**< Physical 9 key. */
    YASL_KEY_SEMICOLON = 0x03b, /**< Semicolon. */
    YASL_KEY_EQUAL = 0x03d, /**< Equal. */
    YASL_KEY_A = 0x041, /**< Physical US A position; independent of layout and modifiers. */
    YASL_KEY_B = 0x042, /**< Physical US B position; independent of layout and modifiers. */
    YASL_KEY_C = 0x043, /**< Physical US C position; independent of layout and modifiers. */
    YASL_KEY_D = 0x044, /**< Physical US D position; independent of layout and modifiers. */
    YASL_KEY_E = 0x045, /**< Physical US E position; independent of layout and modifiers. */
    YASL_KEY_F = 0x046, /**< Physical US F position; independent of layout and modifiers. */
    YASL_KEY_G = 0x047, /**< Physical US G position; independent of layout and modifiers. */
    YASL_KEY_H = 0x048, /**< Physical US H position; independent of layout and modifiers. */
    YASL_KEY_I = 0x049, /**< Physical US I position; independent of layout and modifiers. */
    YASL_KEY_J = 0x04a, /**< Physical US J position; independent of layout and modifiers. */
    YASL_KEY_K = 0x04b, /**< Physical US K position; independent of layout and modifiers. */
    YASL_KEY_L = 0x04c, /**< Physical US L position; independent of layout and modifiers. */
    YASL_KEY_M = 0x04d, /**< Physical US M position; independent of layout and modifiers. */
    YASL_KEY_N = 0x04e, /**< Physical US N position; independent of layout and modifiers. */
    YASL_KEY_O = 0x04f, /**< Physical US O position; independent of layout and modifiers. */
    YASL_KEY_P = 0x050, /**< Physical US P position; independent of layout and modifiers. */
    YASL_KEY_Q = 0x051, /**< Physical US Q position; independent of layout and modifiers. */
    YASL_KEY_R = 0x052, /**< Physical US R position; independent of layout and modifiers. */
    YASL_KEY_S = 0x053, /**< Physical US S position; independent of layout and modifiers. */
    YASL_KEY_T = 0x054, /**< Physical US T position; independent of layout and modifiers. */
    YASL_KEY_U = 0x055, /**< Physical US U position; independent of layout and modifiers. */
    YASL_KEY_V = 0x056, /**< Physical US V position; independent of layout and modifiers. */
    YASL_KEY_W = 0x057, /**< Physical US W position; independent of layout and modifiers. */
    YASL_KEY_X = 0x058, /**< Physical US X position; independent of layout and modifiers. */
    YASL_KEY_Y = 0x059, /**< Physical US Y position; independent of layout and modifiers. */
    YASL_KEY_Z = 0x05a, /**< Physical US Z position; independent of layout and modifiers. */
    YASL_KEY_LEFT_BRACKET = 0x05b, /**< Left Bracket. */
    YASL_KEY_BACKSLASH = 0x05c, /**< Backslash. */
    YASL_KEY_RIGHT_BRACKET = 0x05d, /**< Right Bracket. */
    YASL_KEY_GRAVE = 0x060, /**< Grave. */
    YASL_KEY_ESCAPE = 0x100, /**< Escape. */
    YASL_KEY_ENTER = 0x101, /**< Enter. */
    YASL_KEY_TAB = 0x102, /**< Tab. */
    YASL_KEY_BACKSPACE = 0x103, /**< Backspace. */
    YASL_KEY_INSERT = 0x104, /**< Insert. */
    YASL_KEY_DELETE = 0x105, /**< Delete. */
    YASL_KEY_RIGHT = 0x106, /**< Right. */
    YASL_KEY_LEFT = 0x107, /**< Left. */
    YASL_KEY_DOWN = 0x108, /**< Down. */
    YASL_KEY_UP = 0x109, /**< Up. */
    YASL_KEY_PAGE_UP = 0x10a, /**< Page Up. */
    YASL_KEY_PAGE_DOWN = 0x10b, /**< Page Down. */
    YASL_KEY_HOME = 0x10c, /**< Home. */
    YASL_KEY_END = 0x10d, /**< End. */
    YASL_KEY_CAPS_LOCK = 0x10e, /**< Caps Lock. */
    YASL_KEY_SCROLL_LOCK = 0x10f, /**< Scroll Lock. */
    YASL_KEY_NUM_LOCK = 0x110, /**< Num Lock. */
    YASL_KEY_PRINT_SCREEN = 0x111, /**< Print Screen. */
    YASL_KEY_PAUSE = 0x112, /**< Pause. */
    YASL_KEY_ISO_BACKSLASH = 0x113, /**< Iso Backslash. */
    YASL_KEY_YEN = 0x114, /**< Yen. */
    YASL_KEY_RO = 0x115, /**< Ro. */
    YASL_KEY_KANA = 0x116, /**< Kana. */
    YASL_KEY_EISU = 0x117, /**< Eisu. */
    YASL_KEY_CONVERT = 0x118, /**< Convert. */
    YASL_KEY_NONCONVERT = 0x119, /**< Nonconvert. */
    YASL_KEY_F1 = 0x120, /**< Function key F1. */
    YASL_KEY_F2 = 0x121, /**< Function key F2. */
    YASL_KEY_F3 = 0x122, /**< Function key F3. */
    YASL_KEY_F4 = 0x123, /**< Function key F4. */
    YASL_KEY_F5 = 0x124, /**< Function key F5. */
    YASL_KEY_F6 = 0x125, /**< Function key F6. */
    YASL_KEY_F7 = 0x126, /**< Function key F7. */
    YASL_KEY_F8 = 0x127, /**< Function key F8. */
    YASL_KEY_F9 = 0x128, /**< Function key F9. */
    YASL_KEY_F10 = 0x129, /**< Function key F10. */
    YASL_KEY_F11 = 0x12a, /**< Function key F11. */
    YASL_KEY_F12 = 0x12b, /**< Function key F12. */
    YASL_KEY_F13 = 0x12c, /**< Function key F13. */
    YASL_KEY_F14 = 0x12d, /**< Function key F14. */
    YASL_KEY_F15 = 0x12e, /**< Function key F15. */
    YASL_KEY_F16 = 0x12f, /**< Function key F16. */
    YASL_KEY_F17 = 0x130, /**< Function key F17. */
    YASL_KEY_F18 = 0x131, /**< Function key F18. */
    YASL_KEY_F19 = 0x132, /**< Function key F19. */
    YASL_KEY_F20 = 0x133, /**< Function key F20. */
    YASL_KEY_F21 = 0x134, /**< Function key F21. */
    YASL_KEY_F22 = 0x135, /**< Function key F22. */
    YASL_KEY_F23 = 0x136, /**< Function key F23. */
    YASL_KEY_F24 = 0x137, /**< Function key F24. */
    YASL_KEY_F25 = 0x138, /**< Function key F25. */
    YASL_KEY_KP_0 = 0x140, /**< Numeric keypad 0. */
    YASL_KEY_KP_1 = 0x141, /**< Numeric keypad 1. */
    YASL_KEY_KP_2 = 0x142, /**< Numeric keypad 2. */
    YASL_KEY_KP_3 = 0x143, /**< Numeric keypad 3. */
    YASL_KEY_KP_4 = 0x144, /**< Numeric keypad 4. */
    YASL_KEY_KP_5 = 0x145, /**< Numeric keypad 5. */
    YASL_KEY_KP_6 = 0x146, /**< Numeric keypad 6. */
    YASL_KEY_KP_7 = 0x147, /**< Numeric keypad 7. */
    YASL_KEY_KP_8 = 0x148, /**< Numeric keypad 8. */
    YASL_KEY_KP_9 = 0x149, /**< Numeric keypad 9. */
    YASL_KEY_KP_DECIMAL = 0x14a, /**< Numeric keypad decimal. */
    YASL_KEY_KP_DIVIDE = 0x14b, /**< Numeric keypad divide. */
    YASL_KEY_KP_MULTIPLY = 0x14c, /**< Numeric keypad multiply. */
    YASL_KEY_KP_SUBTRACT = 0x14d, /**< Numeric keypad subtract. */
    YASL_KEY_KP_ADD = 0x14e, /**< Numeric keypad add. */
    YASL_KEY_KP_ENTER = 0x14f, /**< Numeric keypad enter. */
    YASL_KEY_KP_EQUAL = 0x150, /**< Numeric keypad equal. */
    YASL_KEY_KP_COMMA = 0x151, /**< Numeric keypad comma. */
    YASL_KEY_KP_CLEAR = 0x152, /**< Numeric keypad clear. */
    YASL_KEY_LEFT_SHIFT = 0x160, /**< Left Shift. */
    YASL_KEY_LEFT_CONTROL = 0x161, /**< Left Control. */
    YASL_KEY_LEFT_ALT = 0x162, /**< Left Alt. */
    YASL_KEY_LEFT_SUPER = 0x163, /**< Left Super. */
    YASL_KEY_RIGHT_SHIFT = 0x164, /**< Right Shift. */
    YASL_KEY_RIGHT_CONTROL = 0x165, /**< Right Control. */
    YASL_KEY_RIGHT_ALT = 0x166, /**< Right Alt. */
    YASL_KEY_RIGHT_SUPER = 0x167, /**< Right Super. */
    YASL_KEY_MENU = 0x168, /**< Menu. */
    YASL_KEY_VOLUME_UP = 0x169, /**< Volume Up. */
    YASL_KEY_VOLUME_DOWN = 0x16a, /**< Volume Down. */
    YASL_KEY_MUTE = 0x16b, /**< Mute. */
};

#endif /* YASL_KEYCODES_H */