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
29struct InodeOperations;
30
31typedef enum
32{
43
70
83
100
127
141
160
164
167
168typedef struct
169{
171
172 union
173 {
174 struct
175 {
176 char IsScanCode : 1;
177 };
178 char Value;
179 };
180 unsigned char Character;
182
183typedef 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;
197
198typedef struct
199{
201
202typedef struct
203{
204 uint16_t X, Y;
205 uint8_t Pressure;
207
208typedef struct
209{
211
212typedef struct
213{
215
216typedef struct
217{
219
220typedef struct
221{
223
224typedef struct
225{
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 };
241
242#ifndef __kernel__
243EXTERNC int ReportInputEvent(InputReport *Report);
244#endif // !__kernel__
245
246#endif // !__FENNIX_API_INPUT_H__
DeviceType
Definition device.h:32
uint8_t LeftButton
Definition input.h:188
uint8_t Absolute
Definition input.h:187
KeyScanCodes Key
Definition input.h:170
uint8_t Pressure
Definition input.h:205
long X
Definition input.h:185
uint8_t RightButton
Definition input.h:189
uint16_t X
Definition input.h:204
uint8_t Button4
Definition input.h:191
unsigned char Character
Definition input.h:180
KeyScanCodes
Definition input.h:32
@ KEY_MULTIMEDIA_WWW_HOME
Definition input.h:150
@ KEY_F4
Definition input.h:74
@ KEY_SPACE
Definition input.h:122
@ KEY_MULTIMEDIA_CALCULATOR
Definition input.h:145
@ KEY_MULTIMEDIA_WWW_REFRESH
Definition input.h:153
@ KEY_LEFT_BRACKET
Definition input.h:112
@ KEY_ACPI_SLEEP
Definition input.h:162
@ KEY_P
Definition input.h:53
@ KEY_M
Definition input.h:69
@ KEY_B
Definition input.h:67
@ KEY_RIGHT_SHIFT
Definition input.h:104
@ KEY_F9
Definition input.h:79
@ KEYPAD_3
Definition input.h:94
@ KEY_MULTIMEDIA_MY_COMPUTER
Definition input.h:157
@ KEY_2
Definition input.h:34
@ KEY_F6
Definition input.h:76
@ KEYPAD_5
Definition input.h:89
@ KEY_INSERT
Definition input.h:136
@ KEY_ACPI_POWER
Definition input.h:161
@ KEY_SEMICOLON
Definition input.h:115
@ KEY_E
Definition input.h:46
@ KEY_I
Definition input.h:51
@ KEY_W
Definition input.h:45
@ KEY_RIGHT_BRACKET
Definition input.h:113
@ KEYPAD_2
Definition input.h:93
@ KEY_D
Definition input.h:56
@ KEY_6
Definition input.h:38
@ KEY_F7
Definition input.h:77
@ KEY_SCROLL_LOCK
Definition input.h:125
@ KEY_1
Definition input.h:33
@ KEY_ACPI_WAKE
Definition input.h:163
@ KEY_ESCAPE
Definition input.h:107
@ KEY_F10
Definition input.h:80
@ KEY_F
Definition input.h:57
@ KEY_PRINT_SCREEN
Definition input.h:126
@ KEYPAD_0
Definition input.h:95
@ KEY_H
Definition input.h:59
@ KEY_MULTIMEDIA_VOL_UP
Definition input.h:149
@ KEY_LEFT_ALT
Definition input.h:105
@ KEY_X
Definition input.h:64
@ KEYPAD_6
Definition input.h:90
@ KEY_G
Definition input.h:58
@ KEY_RIGHT_ALT
Definition input.h:106
@ KEYPAD_9
Definition input.h:86
@ KEY_SLASH
Definition input.h:121
@ KEY_Y
Definition input.h:49
@ KEY_LEFT_SHIFT
Definition input.h:103
@ KEY_APPS
Definition input.h:140
@ KEY_MINUS
Definition input.h:108
@ KEY_9
Definition input.h:41
@ KEY_TAB
Definition input.h:111
@ KEYPAD_7
Definition input.h:84
@ KEY_T
Definition input.h:48
@ KEY_LEFT_ARROW
Definition input.h:130
@ KEY_DOWN_ARROW
Definition input.h:132
@ KEY_LEFT_GUI
Definition input.h:138
@ KEY_F5
Definition input.h:75
@ KEY_K
Definition input.h:61
@ KEY_0
Definition input.h:42
@ KEYPAD_SLASH
Definition input.h:99
@ KEYPAD_8
Definition input.h:85
@ KEY_PERIOD
Definition input.h:120
@ KEY_RIGHT_GUI
Definition input.h:139
@ KEY_F12
Definition input.h:82
@ KEYPAD_PLUS
Definition input.h:91
@ KEY_F2
Definition input.h:72
@ KEY_MULTIMEDIA_WWW_STOP
Definition input.h:154
@ KEY_MULTIMEDIA_NEXT_TRACK
Definition input.h:143
@ KEYPAD_1
Definition input.h:92
@ KEY_RIGHT_ARROW
Definition input.h:131
@ KEY_F3
Definition input.h:73
@ KEY_C
Definition input.h:65
@ KEY_MULTIMEDIA_EMAIL
Definition input.h:158
@ KEY_F8
Definition input.h:78
@ KEY_UP_ARROW
Definition input.h:129
@ KEY_BACKSPACE
Definition input.h:110
@ KEY_R
Definition input.h:47
@ KEY_N
Definition input.h:68
@ KEY_MULTIMEDIA_PREV_TRACK
Definition input.h:142
@ KEY_A
Definition input.h:54
@ KEY_END
Definition input.h:135
@ KEY_8
Definition input.h:40
@ KEY_Z
Definition input.h:63
@ KEY_RETURN
Definition input.h:114
@ KEYPAD_4
Definition input.h:88
@ KEY_S
Definition input.h:55
@ KEY_J
Definition input.h:60
@ KEY_CAPS_LOCK
Definition input.h:123
@ KEY_PRESSED
Definition input.h:165
@ KEY_Q
Definition input.h:44
@ KEY_MULTIMEDIA_MEDIA_SELECT
Definition input.h:159
@ KEY_EQUAL
Definition input.h:109
@ KEY_MULTIMEDIA_WWW_FORWARD
Definition input.h:155
@ KEY_PAGE_UP
Definition input.h:133
@ KEYPAD_RETURN
Definition input.h:97
@ KEY_U
Definition input.h:50
@ KEY_LEFT_CTRL
Definition input.h:101
@ KEY_F11
Definition input.h:81
@ KEY_HOME
Definition input.h:128
@ KEYPAD_PERIOD
Definition input.h:96
@ KEY_NUM_LOCK
Definition input.h:124
@ KEY_PAGE_DOWN
Definition input.h:134
@ KEYPAD_MINUS
Definition input.h:87
@ KEY_MULTIMEDIA_VOL_DOWN
Definition input.h:148
@ KEY_MULTIMEDIA_PLAY
Definition input.h:146
@ KEY_MULTIMEDIA_WWW_BACK
Definition input.h:156
@ KEY_MULTIMEDIA_STOP
Definition input.h:147
@ KEY_7
Definition input.h:39
@ KEY_DELETE
Definition input.h:137
@ KEY_O
Definition input.h:52
@ KEY_4
Definition input.h:36
@ KEY_APOSTROPHE
Definition input.h:116
@ KEY_RIGHT_CTRL
Definition input.h:102
@ KEY_MULTIMEDIA_WWW_FAVORITES
Definition input.h:152
@ KEY_L
Definition input.h:62
@ KEY_5
Definition input.h:37
@ KEY_3
Definition input.h:35
@ KEYPAD_ASTERISK
Definition input.h:98
@ KEY_MULTIMEDIA_MUTE
Definition input.h:144
@ KEY_BACKSLASH
Definition input.h:118
@ KEY_COMMA
Definition input.h:119
@ KEY_V
Definition input.h:66
@ KEY_MULTIMEDIA_WWW_SEARCH
Definition input.h:151
@ KEY_F1
Definition input.h:71
@ KEY_BACK_TICK
Definition input.h:117
uint8_t Button6
Definition input.h:193
uint8_t MiddleButton
Definition input.h:190
uint8_t Button5
Definition input.h:192
uint8_t Button7
Definition input.h:194
int8_t Z
Definition input.h:186
EXTERNC int ReportInputEvent(InputReport *Report)
uint8_t Button8
Definition input.h:195
dev_t Device
Definition input.h:227
DeviceType Type
Definition input.h:226