refactor: replace all stdint::uint32_t into short and more manageable u32_t
[lunaix-os.git] / lunaix-os / includes / lunaix / keyboard.h
1 #ifndef __LUNAIX_KEYBOARD_H
2 #define __LUNAIX_KEYBOARD_H
3 #include <lunaix/clock.h>
4
5 //      Lunaix Keycode
6 //       15        7         0
7 // key = |xxxx xxxx|xxxx xxxx|
8 // key[0:7] = sequence
9 // key[8:15] = category
10 //   0x0: ASCII codes
11 //   0x1: keypad keys
12 //   0x2: Function keys
13 //   0x3: Cursor keys (arrow keys)
14 //   0x4: Modifier keys
15 //   0xff: Other keys (Un-categorized)
16
17 typedef unsigned short kbd_keycode_t;
18 typedef unsigned short kbd_kstate_t;
19
20 #define KEYPAD 0x0100
21 #define FN_KEY 0x0200
22 #define CURSOR 0x0300
23 #define MODIFR 0x0400
24 #define OTHERS 0xff00
25
26 #define ON_KEYPAD(x) ((x & 0xff) | KEYPAD)
27
28 // backspace key
29 #define KEY_BS (0x08)
30
31 // enter/return key
32 #define KEY_LF (0x0a)
33
34 #define KEY_HTAB (0x9)
35 #define KEY_SPACE (0x20)
36 #define KEY_ESC (0x1b)
37
38 #define KEY_F1 (0x00 | FN_KEY)
39 #define KEY_F2 (0x01 | FN_KEY)
40 #define KEY_F3 (0x02 | FN_KEY)
41 #define KEY_F4 (0x03 | FN_KEY)
42 #define KEY_F5 (0x04 | FN_KEY)
43 #define KEY_F6 (0x05 | FN_KEY)
44 #define KEY_F7 (0x06 | FN_KEY)
45 #define KEY_F8 (0x07 | FN_KEY)
46 #define KEY_F9 (0x08 | FN_KEY)
47 #define KEY_F10 (0x09 | FN_KEY)
48 #define KEY_F11 (0x0a | FN_KEY)
49 #define KEY_F12 (0x0b | FN_KEY)
50 #define KEY_CAPSLK (0x0c | FN_KEY)
51 #define KEY_NUMSLK (0x0d | FN_KEY)
52 #define KEY_SCRLLK (0x0e | FN_KEY)
53
54 #define KEY_PG_UP (0x0 | OTHERS)
55 #define KEY_PG_DOWN (0x1 | OTHERS)
56 #define KEY_INSERT (0x2 | OTHERS)
57 #define KEY_DELETE (0x3 | OTHERS)
58 #define KEY_HOME (0x4 | OTHERS)
59 #define KEY_END (0x5 | OTHERS)
60 #define KEY_PAUSE (0x6 | OTHERS)
61
62 #define KEY_LEFT (0x0 | CURSOR)
63 #define KEY_RIGHT (0x1 | CURSOR)
64 #define KEY_UP (0x2 | CURSOR)
65 #define KEY_DOWN (0x3 | CURSOR)
66
67 #define KEY_LSHIFT (0x0 | MODIFR)
68 #define KEY_RSHIFT (0x1 | MODIFR)
69 #define KEY_LCTRL (0x2 | MODIFR)
70 #define KEY_RCTRL (0x3 | MODIFR)
71 #define KEY_LALT (0x4 | MODIFR)
72 #define KEY_RALT (0x5 | MODIFR)
73
74 #define KBD_KEY_FRELEASED 0x0
75 #define KBD_KEY_FPRESSED 0x1
76 #define KBD_KEY_FSCRLLKED 0x2
77 #define KBD_KEY_FNUMBLKED 0x4
78 #define KBD_KEY_FCAPSLKED 0x8
79
80 #define KBD_KEY_FLSHIFT_HELD 0x10
81 #define KBD_KEY_FRSHIFT_HELD 0x20
82 #define KBD_KEY_FLCTRL_HELD 0x40
83 #define KBD_KEY_FRCTRL_HELD 0x80
84 #define KBD_KEY_FLALT_HELD 0x100
85 #define KBD_KEY_FRALT_HELD 0x200
86
87 #endif /* __LUNAIX_KEYBOARD_H */