| 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 |