Fennix
1.0.0
Full Documentation
Loading...
Searching...
No Matches
input.h
Go to the documentation of this file.
1
/*
2
This file is part of Fennix Kernel.
3
4
Fennix Kernel is free software: you can redistribute it and/or
5
modify it under the terms of the GNU General Public License as
6
published by the Free Software Foundation, either version 3 of
7
the License, or (at your option) any later version.
8
9
Fennix Kernel is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef __FENNIX_API_INPUT_H__
19
#define __FENNIX_API_INPUT_H__
20
21
#include <types.h>
22
23
#if __has_include(<interface/device.h>)
24
#include <
interface/device.h
>
25
#else
26
#include <
device.h
>
27
#endif
28
29
struct
InodeOperations
;
30
31
typedef
enum
32
{
33
KEY_1
,
34
KEY_2
,
35
KEY_3
,
36
KEY_4
,
37
KEY_5
,
38
KEY_6
,
39
KEY_7
,
40
KEY_8
,
41
KEY_9
,
42
KEY_0
,
43
44
KEY_Q
,
45
KEY_W
,
46
KEY_E
,
47
KEY_R
,
48
KEY_T
,
49
KEY_Y
,
50
KEY_U
,
51
KEY_I
,
52
KEY_O
,
53
KEY_P
,
54
KEY_A
,
55
KEY_S
,
56
KEY_D
,
57
KEY_F
,
58
KEY_G
,
59
KEY_H
,
60
KEY_J
,
61
KEY_K
,
62
KEY_L
,
63
KEY_Z
,
64
KEY_X
,
65
KEY_C
,
66
KEY_V
,
67
KEY_B
,
68
KEY_N
,
69
KEY_M
,
70
71
KEY_F1
,
72
KEY_F2
,
73
KEY_F3
,
74
KEY_F4
,
75
KEY_F5
,
76
KEY_F6
,
77
KEY_F7
,
78
KEY_F8
,
79
KEY_F9
,
80
KEY_F10
,
81
KEY_F11
,
82
KEY_F12
,
83
84
KEYPAD_7
,
85
KEYPAD_8
,
86
KEYPAD_9
,
87
KEYPAD_MINUS
,
88
KEYPAD_4
,
89
KEYPAD_5
,
90
KEYPAD_6
,
91
KEYPAD_PLUS
,
92
KEYPAD_1
,
93
KEYPAD_2
,
94
KEYPAD_3
,
95
KEYPAD_0
,
96
KEYPAD_PERIOD
,
97
KEYPAD_RETURN
,
98
KEYPAD_ASTERISK
,
99
KEYPAD_SLASH
,
100
101
KEY_LEFT_CTRL
,
102
KEY_RIGHT_CTRL
,
103
KEY_LEFT_SHIFT
,
104
KEY_RIGHT_SHIFT
,
105
KEY_LEFT_ALT
,
106
KEY_RIGHT_ALT
,
107
KEY_ESCAPE
,
108
KEY_MINUS
,
109
KEY_EQUAL
,
110
KEY_BACKSPACE
,
111
KEY_TAB
,
112
KEY_LEFT_BRACKET
,
113
KEY_RIGHT_BRACKET
,
114
KEY_RETURN
,
115
KEY_SEMICOLON
,
116
KEY_APOSTROPHE
,
117
KEY_BACK_TICK
,
118
KEY_BACKSLASH
,
119
KEY_COMMA
,
120
KEY_PERIOD
,
121
KEY_SLASH
,
122
KEY_SPACE
,
123
KEY_CAPS_LOCK
,
124
KEY_NUM_LOCK
,
125
KEY_SCROLL_LOCK
,
126
KEY_PRINT_SCREEN
,
127
128
KEY_HOME
,
129
KEY_UP_ARROW
,
130
KEY_LEFT_ARROW
,
131
KEY_RIGHT_ARROW
,
132
KEY_DOWN_ARROW
,
133
KEY_PAGE_UP
,
134
KEY_PAGE_DOWN
,
135
KEY_END
,
136
KEY_INSERT
,
137
KEY_DELETE
,
138
KEY_LEFT_GUI
,
139
KEY_RIGHT_GUI
,
140
KEY_APPS
,
141
142
KEY_MULTIMEDIA_PREV_TRACK
,
143
KEY_MULTIMEDIA_NEXT_TRACK
,
144
KEY_MULTIMEDIA_MUTE
,
145
KEY_MULTIMEDIA_CALCULATOR
,
146
KEY_MULTIMEDIA_PLAY
,
147
KEY_MULTIMEDIA_STOP
,
148
KEY_MULTIMEDIA_VOL_DOWN
,
149
KEY_MULTIMEDIA_VOL_UP
,
150
KEY_MULTIMEDIA_WWW_HOME
,
151
KEY_MULTIMEDIA_WWW_SEARCH
,
152
KEY_MULTIMEDIA_WWW_FAVORITES
,
153
KEY_MULTIMEDIA_WWW_REFRESH
,
154
KEY_MULTIMEDIA_WWW_STOP
,
155
KEY_MULTIMEDIA_WWW_FORWARD
,
156
KEY_MULTIMEDIA_WWW_BACK
,
157
KEY_MULTIMEDIA_MY_COMPUTER
,
158
KEY_MULTIMEDIA_EMAIL
,
159
KEY_MULTIMEDIA_MEDIA_SELECT
,
160
161
KEY_ACPI_POWER
,
162
KEY_ACPI_SLEEP
,
163
KEY_ACPI_WAKE
,
164
165
KEY_PRESSED
= 0x80,
166
}
KeyScanCodes
;
167
168
typedef
struct
169
{
170
KeyScanCodes
Key
;
171
172
union
173
{
174
struct
175
{
176
char
IsScanCode : 1;
177
};
178
char
Value;
179
};
180
unsigned
char
Character
;
181
}
KeyboardReport
;
182
183
typedef
struct
184
{
185
long
X
, Y;
186
int8_t
Z
;
187
uint8_t
Absolute
: 1;
188
uint8_t
LeftButton
: 1;
189
uint8_t
RightButton
: 1;
190
uint8_t
MiddleButton
: 1;
191
uint8_t
Button4
: 1;
192
uint8_t
Button5
: 1;
193
uint8_t
Button6
: 1;
194
uint8_t
Button7
: 1;
195
uint8_t
Button8
: 1;
196
}
MouseReport
;
197
198
typedef
struct
199
{
200
}
JoystickReport
;
201
202
typedef
struct
203
{
204
uint16_t
X
, Y;
205
uint8_t
Pressure
;
206
}
TouchScreenReport
;
207
208
typedef
struct
209
{
210
}
GamepadReport
;
211
212
typedef
struct
213
{
214
}
AccelerometerReport
;
215
216
typedef
struct
217
{
218
}
GyroscopeReport
;
219
220
typedef
struct
221
{
222
}
MagnetometerReport
;
223
224
typedef
struct
225
{
226
DeviceType
Type
;
227
dev_t
Device
;
228
union
229
{
230
KeyboardReport
Keyboard;
231
MouseReport
Mouse;
232
JoystickReport
Joystick;
233
TouchScreenReport
TouchScreen;
234
GamepadReport
Gamepad;
235
AccelerometerReport
Accelerometer;
236
GyroscopeReport
Gyroscope;
237
MagnetometerReport
Magnetometer;
238
/* ... */
239
};
240
}
InputReport
;
241
242
#ifndef __kernel__
243
EXTERNC
int
ReportInputEvent
(
InputReport
*Report);
244
#endif
// !__kernel__
245
246
#endif
// !__FENNIX_API_INPUT_H__
device.h
DeviceType
DeviceType
Definition
device.h:32
MouseReport::LeftButton
uint8_t LeftButton
Definition
input.h:188
MouseReport::Absolute
uint8_t Absolute
Definition
input.h:187
KeyboardReport::Key
KeyScanCodes Key
Definition
input.h:170
TouchScreenReport::Pressure
uint8_t Pressure
Definition
input.h:205
MouseReport::X
long X
Definition
input.h:185
MouseReport::RightButton
uint8_t RightButton
Definition
input.h:189
TouchScreenReport::X
uint16_t X
Definition
input.h:204
MouseReport::Button4
uint8_t Button4
Definition
input.h:191
KeyboardReport::Character
unsigned char Character
Definition
input.h:180
KeyScanCodes
KeyScanCodes
Definition
input.h:32
KEY_MULTIMEDIA_WWW_HOME
@ KEY_MULTIMEDIA_WWW_HOME
Definition
input.h:150
KEY_F4
@ KEY_F4
Definition
input.h:74
KEY_SPACE
@ KEY_SPACE
Definition
input.h:122
KEY_MULTIMEDIA_CALCULATOR
@ KEY_MULTIMEDIA_CALCULATOR
Definition
input.h:145
KEY_MULTIMEDIA_WWW_REFRESH
@ KEY_MULTIMEDIA_WWW_REFRESH
Definition
input.h:153
KEY_LEFT_BRACKET
@ KEY_LEFT_BRACKET
Definition
input.h:112
KEY_ACPI_SLEEP
@ KEY_ACPI_SLEEP
Definition
input.h:162
KEY_P
@ KEY_P
Definition
input.h:53
KEY_M
@ KEY_M
Definition
input.h:69
KEY_B
@ KEY_B
Definition
input.h:67
KEY_RIGHT_SHIFT
@ KEY_RIGHT_SHIFT
Definition
input.h:104
KEY_F9
@ KEY_F9
Definition
input.h:79
KEYPAD_3
@ KEYPAD_3
Definition
input.h:94
KEY_MULTIMEDIA_MY_COMPUTER
@ KEY_MULTIMEDIA_MY_COMPUTER
Definition
input.h:157
KEY_2
@ KEY_2
Definition
input.h:34
KEY_F6
@ KEY_F6
Definition
input.h:76
KEYPAD_5
@ KEYPAD_5
Definition
input.h:89
KEY_INSERT
@ KEY_INSERT
Definition
input.h:136
KEY_ACPI_POWER
@ KEY_ACPI_POWER
Definition
input.h:161
KEY_SEMICOLON
@ KEY_SEMICOLON
Definition
input.h:115
KEY_E
@ KEY_E
Definition
input.h:46
KEY_I
@ KEY_I
Definition
input.h:51
KEY_W
@ KEY_W
Definition
input.h:45
KEY_RIGHT_BRACKET
@ KEY_RIGHT_BRACKET
Definition
input.h:113
KEYPAD_2
@ KEYPAD_2
Definition
input.h:93
KEY_D
@ KEY_D
Definition
input.h:56
KEY_6
@ KEY_6
Definition
input.h:38
KEY_F7
@ KEY_F7
Definition
input.h:77
KEY_SCROLL_LOCK
@ KEY_SCROLL_LOCK
Definition
input.h:125
KEY_1
@ KEY_1
Definition
input.h:33
KEY_ACPI_WAKE
@ KEY_ACPI_WAKE
Definition
input.h:163
KEY_ESCAPE
@ KEY_ESCAPE
Definition
input.h:107
KEY_F10
@ KEY_F10
Definition
input.h:80
KEY_F
@ KEY_F
Definition
input.h:57
KEY_PRINT_SCREEN
@ KEY_PRINT_SCREEN
Definition
input.h:126
KEYPAD_0
@ KEYPAD_0
Definition
input.h:95
KEY_H
@ KEY_H
Definition
input.h:59
KEY_MULTIMEDIA_VOL_UP
@ KEY_MULTIMEDIA_VOL_UP
Definition
input.h:149
KEY_LEFT_ALT
@ KEY_LEFT_ALT
Definition
input.h:105
KEY_X
@ KEY_X
Definition
input.h:64
KEYPAD_6
@ KEYPAD_6
Definition
input.h:90
KEY_G
@ KEY_G
Definition
input.h:58
KEY_RIGHT_ALT
@ KEY_RIGHT_ALT
Definition
input.h:106
KEYPAD_9
@ KEYPAD_9
Definition
input.h:86
KEY_SLASH
@ KEY_SLASH
Definition
input.h:121
KEY_Y
@ KEY_Y
Definition
input.h:49
KEY_LEFT_SHIFT
@ KEY_LEFT_SHIFT
Definition
input.h:103
KEY_APPS
@ KEY_APPS
Definition
input.h:140
KEY_MINUS
@ KEY_MINUS
Definition
input.h:108
KEY_9
@ KEY_9
Definition
input.h:41
KEY_TAB
@ KEY_TAB
Definition
input.h:111
KEYPAD_7
@ KEYPAD_7
Definition
input.h:84
KEY_T
@ KEY_T
Definition
input.h:48
KEY_LEFT_ARROW
@ KEY_LEFT_ARROW
Definition
input.h:130
KEY_DOWN_ARROW
@ KEY_DOWN_ARROW
Definition
input.h:132
KEY_LEFT_GUI
@ KEY_LEFT_GUI
Definition
input.h:138
KEY_F5
@ KEY_F5
Definition
input.h:75
KEY_K
@ KEY_K
Definition
input.h:61
KEY_0
@ KEY_0
Definition
input.h:42
KEYPAD_SLASH
@ KEYPAD_SLASH
Definition
input.h:99
KEYPAD_8
@ KEYPAD_8
Definition
input.h:85
KEY_PERIOD
@ KEY_PERIOD
Definition
input.h:120
KEY_RIGHT_GUI
@ KEY_RIGHT_GUI
Definition
input.h:139
KEY_F12
@ KEY_F12
Definition
input.h:82
KEYPAD_PLUS
@ KEYPAD_PLUS
Definition
input.h:91
KEY_F2
@ KEY_F2
Definition
input.h:72
KEY_MULTIMEDIA_WWW_STOP
@ KEY_MULTIMEDIA_WWW_STOP
Definition
input.h:154
KEY_MULTIMEDIA_NEXT_TRACK
@ KEY_MULTIMEDIA_NEXT_TRACK
Definition
input.h:143
KEYPAD_1
@ KEYPAD_1
Definition
input.h:92
KEY_RIGHT_ARROW
@ KEY_RIGHT_ARROW
Definition
input.h:131
KEY_F3
@ KEY_F3
Definition
input.h:73
KEY_C
@ KEY_C
Definition
input.h:65
KEY_MULTIMEDIA_EMAIL
@ KEY_MULTIMEDIA_EMAIL
Definition
input.h:158
KEY_F8
@ KEY_F8
Definition
input.h:78
KEY_UP_ARROW
@ KEY_UP_ARROW
Definition
input.h:129
KEY_BACKSPACE
@ KEY_BACKSPACE
Definition
input.h:110
KEY_R
@ KEY_R
Definition
input.h:47
KEY_N
@ KEY_N
Definition
input.h:68
KEY_MULTIMEDIA_PREV_TRACK
@ KEY_MULTIMEDIA_PREV_TRACK
Definition
input.h:142
KEY_A
@ KEY_A
Definition
input.h:54
KEY_END
@ KEY_END
Definition
input.h:135
KEY_8
@ KEY_8
Definition
input.h:40
KEY_Z
@ KEY_Z
Definition
input.h:63
KEY_RETURN
@ KEY_RETURN
Definition
input.h:114
KEYPAD_4
@ KEYPAD_4
Definition
input.h:88
KEY_S
@ KEY_S
Definition
input.h:55
KEY_J
@ KEY_J
Definition
input.h:60
KEY_CAPS_LOCK
@ KEY_CAPS_LOCK
Definition
input.h:123
KEY_PRESSED
@ KEY_PRESSED
Definition
input.h:165
KEY_Q
@ KEY_Q
Definition
input.h:44
KEY_MULTIMEDIA_MEDIA_SELECT
@ KEY_MULTIMEDIA_MEDIA_SELECT
Definition
input.h:159
KEY_EQUAL
@ KEY_EQUAL
Definition
input.h:109
KEY_MULTIMEDIA_WWW_FORWARD
@ KEY_MULTIMEDIA_WWW_FORWARD
Definition
input.h:155
KEY_PAGE_UP
@ KEY_PAGE_UP
Definition
input.h:133
KEYPAD_RETURN
@ KEYPAD_RETURN
Definition
input.h:97
KEY_U
@ KEY_U
Definition
input.h:50
KEY_LEFT_CTRL
@ KEY_LEFT_CTRL
Definition
input.h:101
KEY_F11
@ KEY_F11
Definition
input.h:81
KEY_HOME
@ KEY_HOME
Definition
input.h:128
KEYPAD_PERIOD
@ KEYPAD_PERIOD
Definition
input.h:96
KEY_NUM_LOCK
@ KEY_NUM_LOCK
Definition
input.h:124
KEY_PAGE_DOWN
@ KEY_PAGE_DOWN
Definition
input.h:134
KEYPAD_MINUS
@ KEYPAD_MINUS
Definition
input.h:87
KEY_MULTIMEDIA_VOL_DOWN
@ KEY_MULTIMEDIA_VOL_DOWN
Definition
input.h:148
KEY_MULTIMEDIA_PLAY
@ KEY_MULTIMEDIA_PLAY
Definition
input.h:146
KEY_MULTIMEDIA_WWW_BACK
@ KEY_MULTIMEDIA_WWW_BACK
Definition
input.h:156
KEY_MULTIMEDIA_STOP
@ KEY_MULTIMEDIA_STOP
Definition
input.h:147
KEY_7
@ KEY_7
Definition
input.h:39
KEY_DELETE
@ KEY_DELETE
Definition
input.h:137
KEY_O
@ KEY_O
Definition
input.h:52
KEY_4
@ KEY_4
Definition
input.h:36
KEY_APOSTROPHE
@ KEY_APOSTROPHE
Definition
input.h:116
KEY_RIGHT_CTRL
@ KEY_RIGHT_CTRL
Definition
input.h:102
KEY_MULTIMEDIA_WWW_FAVORITES
@ KEY_MULTIMEDIA_WWW_FAVORITES
Definition
input.h:152
KEY_L
@ KEY_L
Definition
input.h:62
KEY_5
@ KEY_5
Definition
input.h:37
KEY_3
@ KEY_3
Definition
input.h:35
KEYPAD_ASTERISK
@ KEYPAD_ASTERISK
Definition
input.h:98
KEY_MULTIMEDIA_MUTE
@ KEY_MULTIMEDIA_MUTE
Definition
input.h:144
KEY_BACKSLASH
@ KEY_BACKSLASH
Definition
input.h:118
KEY_COMMA
@ KEY_COMMA
Definition
input.h:119
KEY_V
@ KEY_V
Definition
input.h:66
KEY_MULTIMEDIA_WWW_SEARCH
@ KEY_MULTIMEDIA_WWW_SEARCH
Definition
input.h:151
KEY_F1
@ KEY_F1
Definition
input.h:71
KEY_BACK_TICK
@ KEY_BACK_TICK
Definition
input.h:117
MouseReport::Button6
uint8_t Button6
Definition
input.h:193
MouseReport::MiddleButton
uint8_t MiddleButton
Definition
input.h:190
MouseReport::Button5
uint8_t Button5
Definition
input.h:192
MouseReport::Button7
uint8_t Button7
Definition
input.h:194
MouseReport::Z
int8_t Z
Definition
input.h:186
ReportInputEvent
EXTERNC int ReportInputEvent(InputReport *Report)
MouseReport::Button8
uint8_t Button8
Definition
input.h:195
InputReport::Device
dev_t Device
Definition
input.h:227
InputReport::Type
DeviceType Type
Definition
input.h:226
InputReport
Definition
input.h:225
KeyboardReport
Definition
input.h:169
TouchScreenReport
Definition
input.h:203
MagnetometerReport
Definition
input.h:221
GyroscopeReport
Definition
input.h:217
GamepadReport
Definition
input.h:209
AccelerometerReport
Definition
input.h:213
MouseReport
Definition
input.h:184
JoystickReport
Definition
input.h:199
InodeOperations
Definition
fs.h:305
Kernel
include
interface
input.h
Generated on Thu Apr 3 2025 07:14:29 for Fennix by
1.9.8