1 |
#ifndef ONI_H |
2 |
#error Do not include this file directly, include Oni/Oni.h instead! |
3 |
#endif |
4 |
|
5 |
#ifndef ONI_INPUT_H |
6 |
#define ONI_INPUT_H |
7 |
|
8 |
enum { |
9 |
LIcKey_MouseButton1 = 0x01, |
10 |
LIcKey_MouseButton2 = 0x02, |
11 |
LIcKey_MouseButton3 = 0x03, |
12 |
LIcKey_MouseButton4 = 0x04, |
13 |
LIcKey_MouseXAxis = 0x05, |
14 |
LIcKey_MouseYAxis = 0x06, |
15 |
LIcKey_MouseZAxis = 0x07, |
16 |
LIcKey_Backspace = 0x08, |
17 |
LIcKey_Tab = 0x09, |
18 |
LIcKey_Enter = 0x0d, |
19 |
LIcKey_Escape = 0x1b, /* Not in LIgInputNames */ |
20 |
/* Printable ASCII characters are in here */ |
21 |
LIcKey_FKey1 = 0x81, |
22 |
LIcKey_FKey2 = 0x82, |
23 |
LIcKey_FKey3 = 0x83, |
24 |
LIcKey_FKey4 = 0x84, |
25 |
LIcKey_FKey5 = 0x85, |
26 |
LIcKey_FKey6 = 0x86, |
27 |
LIcKey_FKey7 = 0x87, |
28 |
LIcKey_FKey8 = 0x88, |
29 |
LIcKey_FKey9 = 0x89, |
30 |
LIcKey_FKey10 = 0x8a, |
31 |
LIcKey_FKey11 = 0x8b, |
32 |
LIcKey_FKey12 = 0x8c, |
33 |
LIcKey_PrintScreen = 0x8d, |
34 |
LIcKey_FKey13 = 0x8d, /* Alias of LIcKey_PrintScreen */ |
35 |
LIcKey_ScrollLock = 0x8e, |
36 |
LIcKey_FKey14 = 0x8e, /* Alias of LIcKey_ScrollLock */ |
37 |
LIcKey_Pause = 0x8f, |
38 |
LIcKey_FKey15 = 0x8f, /* Alias of LIcKey_Pause */ |
39 |
LIcKey_CapsLock = 0x90, |
40 |
LIcKey_LeftShift = 0x91, |
41 |
LIcKey_RightShift = 0x92, |
42 |
LIcKey_LeftControl = 0x93, |
43 |
/* LIgInputNames has both "leftwindows" and "leftoption" for key 0x94, but |
44 |
nothing is mapped to 0x94 in the DirectInput and Win32 keymaps. In both |
45 |
of them, the left Windows key is mapped to 0xc7 instead. */ |
46 |
LIcKey_LeftAlt = 0x95, |
47 |
LIcKey_RightAlt = 0x96, |
48 |
/* LIgInputNames has both "rightoption" and "rightwindows" for key 0x97, but |
49 |
nothing is mapped to 0x97 in the DirectInput and Win32 keymaps. In both |
50 |
of them, the right Windows key is mapped to 0xc9 instead. */ |
51 |
LIcKey_Apps = 0x98, |
52 |
LIcKey_RightControl = 0x99, |
53 |
LIcKey_Insert = 0xaa, |
54 |
LIcKey_Home = 0xab, |
55 |
LIcKey_PageUp = 0xac, |
56 |
LIcKey_Delete = 0xad, |
57 |
LIcKey_End = 0xae, |
58 |
LIcKey_PageDown = 0xaf, |
59 |
LIcKey_UpArrow = 0xb0, |
60 |
LIcKey_LeftArrow = 0xb1, |
61 |
LIcKey_DownArrow = 0xb2, |
62 |
LIcKey_RightArrow = 0xb3, |
63 |
LIcKey_NumLock = 0xb4, |
64 |
LIcKey_Divide = 0xb5, |
65 |
LIcKey_Multiply = 0xb6, |
66 |
LIcKey_Subtract = 0xb7, |
67 |
LIcKey_Add = 0xb8, |
68 |
LIcKey_Decimal = 0xb9, |
69 |
LIcKey_NumpadEnter = 0xba, |
70 |
LIcKey_NumpadComma = 0xbb, |
71 |
LIcKey_NumpadEquals = 0xbc, |
72 |
LIcKey_Numpad0 = 0xbd, |
73 |
LIcKey_Numpad1 = 0xbe, |
74 |
LIcKey_Numpad2 = 0xbf, |
75 |
LIcKey_Numpad3 = 0xc0, |
76 |
LIcKey_Numpad4 = 0xc1, |
77 |
LIcKey_Numpad5 = 0xc2, |
78 |
LIcKey_Numpad6 = 0xc3, |
79 |
LIcKey_Numpad7 = 0xc4, |
80 |
LIcKey_Numpad8 = 0xc5, |
81 |
LIcKey_Numpad9 = 0xc6, |
82 |
LIcKey_LeftWindows = 0xc7, /* Mapped to 0x94 in LIgInputNames */ |
83 |
LIcKey_RightWindows = 0xc9, /* Mapped to 0x97 in LIgInputNames */ |
84 |
LIcKey_Max, |
85 |
}; |
86 |
|
87 |
enum { |
88 |
LIcActionType_None = 0, |
89 |
LIcActionType_Digital = 1, |
90 |
LIcActionType_Unknown = 2, // Unused in LIgActionDescriptions |
91 |
LIcActionType_Accumulate = 3, |
92 |
LIcActionType_Increment = 4, |
93 |
LIcActionType_Decrement = 5, |
94 |
}; |
95 |
|
96 |
typedef struct { |
97 |
uint32_t input; |
98 |
float analog; |
99 |
} LItDeviceInput; |
100 |
|
101 |
typedef struct { |
102 |
uint64_t button_flags; |
103 |
float analogs[10]; |
104 |
} LItActionBuffer; |
105 |
|
106 |
typedef struct { |
107 |
short type; |
108 |
short index; |
109 |
char name[32]; |
110 |
} LItActionDescription; |
111 |
|
112 |
typedef struct { |
113 |
int key; |
114 |
LItActionDescription *descr; |
115 |
} LItBinding; |
116 |
|
117 |
typedef struct { |
118 |
int event; |
119 |
IMtPoint mouse_pos; |
120 |
short ch; |
121 |
/* short padding; */ |
122 |
int modifiers; |
123 |
} LItInputEvent; |
124 |
|
125 |
typedef struct { |
126 |
char name[32]; |
127 |
int key; |
128 |
} LItInputName; |
129 |
|
130 |
#endif |