keyboard.h (2620B)
1 #ifndef TA_KEYBOARD_H
2 #define TA_KEYBOARD_H
3
4 #include <tuxanci2/display.h>
5 #include <tuxanci2/abi.h>
6 #include <stdint.h>
7 #include <stdbool.h>
8
9 typedef enum {
10 KEY_NONE = 0,
11 KEY_BACKSPACE = 8,
12 KEY_TAB = 9,
13 KEY_ENTER = 13,
14 KEY_ESCAPE = 27,
15 KEY_SPACE = 32,
16 KEY_EXCLAMATION_MARK = 33,
17 KEY_QUOTATION_MARK = 34,
18 KEY_HASH = 35,
19 KEY_DOLLAR_SIGN = 36,
20 KEY_PERCENT_SIGN = 37,
21 KEY_AMPERSAND = 38,
22 KEY_APOSTROPHE = 39,
23 KEY_LEFT_PARENTHESIS = 40,
24 KEY_RIGHT_PARENTHESIS = 41,
25 KEY_ASTERISK = 42,
26 KEY_PLUS = 43,
27 KEY_COMMA = 44,
28 KEY_MINUS = 45,
29 KEY_PERIOD = 46,
30 KEY_SLASH = 47,
31 KEY_0 = 48,
32 KEY_1 = 49,
33 KEY_2 = 50,
34 KEY_3 = 51,
35 KEY_4 = 52,
36 KEY_5 = 53,
37 KEY_6 = 54,
38 KEY_7 = 55,
39 KEY_8 = 56,
40 KEY_9 = 57,
41 KEY_COLON = 58,
42 KEY_SEMICOLON = 59,
43 KEY_LESS_THAN = 60,
44 KEY_EQUALS = 61,
45 KEY_GREATER_THAN = 62,
46 KEY_QUESTION_MARK = 63,
47 KEY_AT_SIGN = 64,
48 KEY_A = 97,
49 KEY_B = 98,
50 KEY_C = 99,
51 KEY_D = 100,
52 KEY_E = 101,
53 KEY_F = 102,
54 KEY_G = 103,
55 KEY_H = 104,
56 KEY_I = 105,
57 KEY_J = 106,
58 KEY_K = 107,
59 KEY_L = 108,
60 KEY_M = 109,
61 KEY_N = 110,
62 KEY_O = 111,
63 KEY_P = 112,
64 KEY_Q = 113,
65 KEY_R = 114,
66 KEY_S = 115,
67 KEY_T = 116,
68 KEY_U = 117,
69 KEY_V = 118,
70 KEY_W = 119,
71 KEY_X = 120,
72 KEY_Y = 121,
73 KEY_Z = 122,
74 KEY_LEFT_BRACKET = 91,
75 KEY_BACKSLASH = 92,
76 KEY_RIGHT_BRACKET = 93,
77 KEY_CARET = 94,
78 KEY_UNDERSCORE = 95,
79 KEY_GRAVE_ACCENT = 96,
80 KEY_LEFT_BRACE = 123,
81 KEY_PIPE = 124,
82 KEY_RIGHT_BRACE = 125,
83 KEY_TILDE = 126,
84 KEY_DELETE = 127,
85 KEY_UP = 128,
86 KEY_DOWN = 129,
87 KEY_LEFT = 130,
88 KEY_RIGHT = 131,
89 KEY_F1 = 132,
90 KEY_F2 = 133,
91 KEY_F3 = 134,
92 KEY_F4 = 135,
93 KEY_F5 = 136,
94 KEY_F6 = 137,
95 KEY_F7 = 138,
96 KEY_F8 = 139,
97 KEY_F9 = 140,
98 KEY_F10 = 141,
99 KEY_F11 = 142,
100 KEY_F12 = 143,
101 KEY_HOME = 144,
102 KEY_END = 145,
103 KEY_PAGE_UP = 146,
104 KEY_PAGE_DOWN = 147,
105 KEY_INSERT = 148,
106 KEY_CAPS_LOCK = 149,
107 KEY_NUM_LOCK = 150,
108 KEY_SCROLL_LOCK = 151,
109 KEY_PRINT_SCREEN = 152,
110 KEY_PAUSE = 153,
111 KEY_MENU = 154,
112 KEY_LEFT_SHIFT = 155,
113 KEY_RIGHT_SHIFT = 156,
114 KEY_LEFT_CTRL = 157,
115 KEY_RIGHT_CTRL = 158,
116 KEY_LEFT_ALT = 159,
117 KEY_RIGHT_ALT = 160,
118 KEY_LEFT_SUPER = 161,
119 KEY_RIGHT_SUPER = 162,
120 KEY_KP_0 = 163,
121 KEY_KP_1 = 164,
122 KEY_KP_2 = 165,
123 KEY_KP_3 = 166,
124 KEY_KP_4 = 167,
125 KEY_KP_5 = 168,
126 KEY_KP_6 = 169,
127 KEY_KP_7 = 170,
128 KEY_KP_8 = 171,
129 KEY_KP_9 = 172,
130 KEY_KP_DECIMAL = 173,
131 KEY_KP_DIVIDE = 174,
132 KEY_KP_MULTIPLY = 175,
133 KEY_KP_SUBTRACT = 176,
134 KEY_KP_ADD = 177,
135 KEY_KP_ENTER = 178,
136 KEY_KP_EQUALS = 179
137 } ta_keyboard_keys;
138
139 static inline bool ta_keyboard_is_down(ta_keyboard_keys key) {
140 return ta_syscall(TA_SYS_KEYBOARD_IS_DOWN, (uint32_t)key, 0, 0, 0, 0, 0) != 0;
141 }
142
143
144 #endif // TA_KEYBOARD_H