Voxia OS
v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
input.h
Go to the documentation of this file.
1
#ifndef __INPUT_H__
2
#define __INPUT_H__
3
4
#include <
type.h
>
5
6
#ifdef __cplusplus
7
extern
"C"
{
8
#endif
9
10
enum
INPUT_KEY
:
uint16_t
{
11
KEY_NONE
= 0,
12
13
// Letters
14
KEY_A
= 0x04,
15
KEY_B
,
16
KEY_C
,
17
KEY_D
,
18
KEY_E
,
19
KEY_F
,
20
KEY_G
,
21
KEY_H
,
22
KEY_I
,
23
KEY_J
,
24
KEY_K
,
25
KEY_L
,
26
KEY_M
,
27
KEY_N
,
28
KEY_O
,
29
KEY_P
,
30
KEY_Q
,
31
KEY_R
,
32
KEY_S
,
33
KEY_T
,
34
KEY_U
,
35
KEY_V
,
36
KEY_W
,
37
KEY_X
,
38
KEY_Y
,
39
KEY_Z
,
40
41
// Numbers
42
KEY_1
= 0x1E,
43
KEY_2
,
44
KEY_3
,
45
KEY_4
,
46
KEY_5
,
47
KEY_6
,
48
KEY_7
,
49
KEY_8
,
50
KEY_9
,
51
KEY_0
,
52
53
// Control & Whitespace
54
KEY_ENTER
= 0x28,
55
KEY_ESC
= 0x29,
56
KEY_BACKSPACE
= 0x2A,
57
KEY_TAB
= 0x2B,
58
KEY_SPACE
= 0x2C,
59
60
// Symbols
61
KEY_MINUS
= 0x2D,
// - and _
62
KEY_EQUAL
= 0x2E,
// = and +
63
KEY_LEFTBRACE
= 0x2F,
// [ and {
64
KEY_RIGHTBRACE
= 0x30,
// ] and }
65
KEY_BACKSLASH
= 0x31,
// \ and |
66
KEY_HASHTILDE
= 0x32,
// # and ~
67
KEY_SEMICOLON
= 0x33,
// ; and :
68
KEY_APOSTROPHE
= 0x34,
// ' and "
69
KEY_GRAVE
= 0x35,
// ` and ~
70
KEY_COMMA
= 0x36,
// , and <
71
KEY_DOT
= 0x37,
// . and >
72
KEY_SLASH
= 0x38,
// / and ?
73
74
// Modifiers (Requested at 0xA0)
75
LEFT_CTRL
= 0xA0,
76
LEFT_SHIFT
,
77
LEFT_ALT
,
78
LEFT_GUI
,
79
RIGHT_CTRL
,
80
RIGHT_SHIFT
,
81
RIGHT_ALT
,
82
RIGHT_GUI
,
83
84
// Function Keys
85
KEY_F1
= 0xF1,
86
KEY_F2
,
87
KEY_F3
,
88
KEY_F4
,
89
KEY_F5
,
90
KEY_F6
,
91
KEY_F7
,
92
KEY_F8
,
93
KEY_F9
,
94
KEY_F10
,
95
KEY_F11
,
96
KEY_F12
,
97
98
// Navigation & Control
99
KEY_PRINT_SCREEN
= 0xA10,
100
KEY_SCROLL_LOCK
,
101
KEY_PAUSE
,
102
KEY_INSERT
,
103
KEY_HOME
,
104
KEY_PAGE_UP
,
105
KEY_DELETE
,
106
KEY_END
,
107
KEY_PAGE_DOWN
,
108
KEY_RIGHT
,
109
KEY_LEFT
,
110
KEY_DOWN
,
111
KEY_UP
,
112
113
// Keypad
114
KEY_NUM_LOCK
,
115
KEY_KP_DIVIDE
,
116
KEY_KP_MULTIPLY
,
117
KEY_KP_MINUS
,
118
KEY_KP_PLUS
,
119
KEY_KP_ENTER
,
120
KEY_KP_1
,
121
KEY_KP_2
,
122
KEY_KP_3
,
123
KEY_KP_4
,
124
KEY_KP_5
,
125
KEY_KP_6
,
126
KEY_KP_7
,
127
KEY_KP_8
,
128
KEY_KP_9
,
129
KEY_KP_0
,
130
KEY_KP_DOT
,
131
132
// Other
133
KEY_CAPS_LOCK
,
134
KEY_FN
,
135
136
// International & Special (e.g., ThinkPad, Japanese, Brazilian layouts)
137
KEY_RO
= 0xC0,
// International 1 (Brazilian / or ThinkPad between / and
138
// RShift)
139
KEY_KATAKANAHIRAGANA
,
140
KEY_YEN
,
// International 3 (Japanese Yen or ThinkPad near Backspace)
141
KEY_HENKAN
,
142
KEY_MUHENKAN
,
143
KEY_KPJPCOMMA
,
144
KEY_INTL4
,
145
KEY_INTL5
,
146
KEY_INTL6
,
147
148
// Media & Extra (Standard USB HID Consumer Page mappings often handled
149
// via separate report, but some are in Keyboard Page)
150
KEY_MUTE
,
151
KEY_VOLUMEUP
,
152
KEY_VOLUMEDOWN
,
153
};
154
155
struct
ioforge_device
;
156
void
input_report_key
(
struct
ioforge_device
* dev,
uint16_t
code
,
int
value
);
157
158
struct
input_event_data
{
159
int
input_active
;
160
uint16_t
code
;
161
};
162
163
#ifdef __cplusplus
164
}
165
#endif
166
167
#endif
// __INPUT_H__
input_report_key
void input_report_key(struct ioforge_device *dev, uint16_t code, int value)
Definition
input.c:16
INPUT_KEY
INPUT_KEY
Definition
input.h:10
KEY_KP_0
@ KEY_KP_0
Definition
input.h:129
KEY_F4
@ KEY_F4
Definition
input.h:88
KEY_SPACE
@ KEY_SPACE
Definition
input.h:58
KEY_YEN
@ KEY_YEN
Definition
input.h:140
KEY_UP
@ KEY_UP
Definition
input.h:111
KEY_P
@ KEY_P
Definition
input.h:29
KEY_M
@ KEY_M
Definition
input.h:26
KEY_B
@ KEY_B
Definition
input.h:15
KEY_RO
@ KEY_RO
Definition
input.h:137
KEY_F9
@ KEY_F9
Definition
input.h:93
KEY_2
@ KEY_2
Definition
input.h:43
KEY_F6
@ KEY_F6
Definition
input.h:90
KEY_INSERT
@ KEY_INSERT
Definition
input.h:102
KEY_KP_5
@ KEY_KP_5
Definition
input.h:124
KEY_KP_DIVIDE
@ KEY_KP_DIVIDE
Definition
input.h:115
KEY_SEMICOLON
@ KEY_SEMICOLON
Definition
input.h:67
KEY_ENTER
@ KEY_ENTER
Definition
input.h:54
KEY_E
@ KEY_E
Definition
input.h:18
KEY_KP_7
@ KEY_KP_7
Definition
input.h:126
KEY_I
@ KEY_I
Definition
input.h:22
KEY_W
@ KEY_W
Definition
input.h:36
KEY_D
@ KEY_D
Definition
input.h:17
KEY_6
@ KEY_6
Definition
input.h:47
KEY_F7
@ KEY_F7
Definition
input.h:91
KEY_SCROLL_LOCK
@ KEY_SCROLL_LOCK
Definition
input.h:100
KEY_1
@ KEY_1
Definition
input.h:42
KEY_GRAVE
@ KEY_GRAVE
Definition
input.h:69
RIGHT_ALT
@ RIGHT_ALT
Definition
input.h:81
KEY_F10
@ KEY_F10
Definition
input.h:94
KEY_F
@ KEY_F
Definition
input.h:19
KEY_PRINT_SCREEN
@ KEY_PRINT_SCREEN
Definition
input.h:99
KEY_VOLUMEDOWN
@ KEY_VOLUMEDOWN
Definition
input.h:152
KEY_H
@ KEY_H
Definition
input.h:21
KEY_X
@ KEY_X
Definition
input.h:37
KEY_KP_4
@ KEY_KP_4
Definition
input.h:123
KEY_G
@ KEY_G
Definition
input.h:20
KEY_SLASH
@ KEY_SLASH
Definition
input.h:72
KEY_KP_1
@ KEY_KP_1
Definition
input.h:120
KEY_Y
@ KEY_Y
Definition
input.h:38
KEY_MINUS
@ KEY_MINUS
Definition
input.h:61
KEY_9
@ KEY_9
Definition
input.h:50
KEY_TAB
@ KEY_TAB
Definition
input.h:57
KEY_LEFT
@ KEY_LEFT
Definition
input.h:109
KEY_T
@ KEY_T
Definition
input.h:33
KEY_RIGHT
@ KEY_RIGHT
Definition
input.h:108
KEY_F5
@ KEY_F5
Definition
input.h:89
KEY_K
@ KEY_K
Definition
input.h:24
KEY_0
@ KEY_0
Definition
input.h:51
KEY_FN
@ KEY_FN
Definition
input.h:134
KEY_HASHTILDE
@ KEY_HASHTILDE
Definition
input.h:66
KEY_KP_ENTER
@ KEY_KP_ENTER
Definition
input.h:119
KEY_KATAKANAHIRAGANA
@ KEY_KATAKANAHIRAGANA
Definition
input.h:139
KEY_F12
@ KEY_F12
Definition
input.h:96
KEY_KP_9
@ KEY_KP_9
Definition
input.h:128
KEY_F2
@ KEY_F2
Definition
input.h:86
KEY_KP_3
@ KEY_KP_3
Definition
input.h:122
KEY_NONE
@ KEY_NONE
Definition
input.h:11
KEY_INTL5
@ KEY_INTL5
Definition
input.h:145
LEFT_ALT
@ LEFT_ALT
Definition
input.h:77
KEY_F3
@ KEY_F3
Definition
input.h:87
KEY_KP_PLUS
@ KEY_KP_PLUS
Definition
input.h:118
KEY_KP_MINUS
@ KEY_KP_MINUS
Definition
input.h:117
KEY_C
@ KEY_C
Definition
input.h:16
RIGHT_CTRL
@ RIGHT_CTRL
Definition
input.h:79
KEY_F8
@ KEY_F8
Definition
input.h:92
LEFT_GUI
@ LEFT_GUI
Definition
input.h:78
KEY_BACKSPACE
@ KEY_BACKSPACE
Definition
input.h:56
KEY_R
@ KEY_R
Definition
input.h:31
KEY_N
@ KEY_N
Definition
input.h:27
LEFT_SHIFT
@ LEFT_SHIFT
Definition
input.h:76
LEFT_CTRL
@ LEFT_CTRL
Definition
input.h:75
KEY_A
@ KEY_A
Definition
input.h:14
KEY_END
@ KEY_END
Definition
input.h:106
KEY_DOWN
@ KEY_DOWN
Definition
input.h:110
KEY_8
@ KEY_8
Definition
input.h:49
KEY_LEFTBRACE
@ KEY_LEFTBRACE
Definition
input.h:63
KEY_Z
@ KEY_Z
Definition
input.h:39
KEY_MUTE
@ KEY_MUTE
Definition
input.h:150
KEY_DOT
@ KEY_DOT
Definition
input.h:71
KEY_KP_DOT
@ KEY_KP_DOT
Definition
input.h:130
KEY_INTL4
@ KEY_INTL4
Definition
input.h:144
KEY_S
@ KEY_S
Definition
input.h:32
KEY_J
@ KEY_J
Definition
input.h:23
KEY_CAPS_LOCK
@ KEY_CAPS_LOCK
Definition
input.h:133
KEY_INTL6
@ KEY_INTL6
Definition
input.h:146
KEY_Q
@ KEY_Q
Definition
input.h:30
KEY_HENKAN
@ KEY_HENKAN
Definition
input.h:141
KEY_KP_MULTIPLY
@ KEY_KP_MULTIPLY
Definition
input.h:116
KEY_EQUAL
@ KEY_EQUAL
Definition
input.h:62
KEY_VOLUMEUP
@ KEY_VOLUMEUP
Definition
input.h:151
KEY_PAUSE
@ KEY_PAUSE
Definition
input.h:101
KEY_PAGE_UP
@ KEY_PAGE_UP
Definition
input.h:104
KEY_U
@ KEY_U
Definition
input.h:34
KEY_F11
@ KEY_F11
Definition
input.h:95
KEY_HOME
@ KEY_HOME
Definition
input.h:103
KEY_KP_6
@ KEY_KP_6
Definition
input.h:125
KEY_NUM_LOCK
@ KEY_NUM_LOCK
Definition
input.h:114
RIGHT_SHIFT
@ RIGHT_SHIFT
Definition
input.h:80
KEY_PAGE_DOWN
@ KEY_PAGE_DOWN
Definition
input.h:107
KEY_KPJPCOMMA
@ KEY_KPJPCOMMA
Definition
input.h:143
KEY_MUHENKAN
@ KEY_MUHENKAN
Definition
input.h:142
KEY_KP_8
@ KEY_KP_8
Definition
input.h:127
KEY_ESC
@ KEY_ESC
Definition
input.h:55
KEY_7
@ KEY_7
Definition
input.h:48
KEY_DELETE
@ KEY_DELETE
Definition
input.h:105
KEY_O
@ KEY_O
Definition
input.h:28
KEY_RIGHTBRACE
@ KEY_RIGHTBRACE
Definition
input.h:64
KEY_4
@ KEY_4
Definition
input.h:45
KEY_APOSTROPHE
@ KEY_APOSTROPHE
Definition
input.h:68
KEY_L
@ KEY_L
Definition
input.h:25
KEY_5
@ KEY_5
Definition
input.h:46
KEY_3
@ KEY_3
Definition
input.h:44
RIGHT_GUI
@ RIGHT_GUI
Definition
input.h:82
KEY_BACKSLASH
@ KEY_BACKSLASH
Definition
input.h:65
KEY_COMMA
@ KEY_COMMA
Definition
input.h:70
KEY_V
@ KEY_V
Definition
input.h:35
KEY_KP_2
@ KEY_KP_2
Definition
input.h:121
KEY_F1
@ KEY_F1
Definition
input.h:85
code
uint8_t code
Definition
icmp.h:1
value
return value
Definition
oct2bin.h:22
input_event_data
Definition
input.h:158
input_event_data::code
uint16_t code
Definition
input.h:160
input_event_data::input_active
int input_active
Definition
input.h:159
ioforge_device
Definition
ioforge.h:29
type.h
uint16_t
unsigned short uint16_t
Definition
type.h:13
include
input.h
Generated on Sat May 30 2026 11:09:57 for Voxia OS by
1.13.2