1 #ifndef _MINIX_INPUT_H 2 #define _MINIX_INPUT_H 3 4 #include <sys/types.h> 5 6 #ifdef _SYSTEM 7 8 /* Device type. */ 9 #define INPUT_DEV_KBD 0x01 /* keyboard device */ 10 #define INPUT_DEV_MOUSE 0x02 /* mouse device */ 11 12 /* Known-invalid input device ID. */ 13 #define INVALID_INPUT_ID (-1) 14 15 #endif /* _SYSTEM */ 16 17 /* 18 * The input server heavily draws on the USB HID specification for events. 19 * Every driver should convert its event codes into this format. This also 20 * implies that we use the U.S. keyboard layout for key events. The mapping to 21 * localized keyboard layouts will be done at a different place (TTY, Xserver). 22 */ 23 24 /* A single event, as read from one of the input devices. */ 25 struct input_event { 26 uint16_t page; /* event page (INPUT_PAGE_) */ 27 uint16_t code; /* page-specific event code */ 28 int32_t value; /* event value */ 29 uint16_t flags; /* event flags (INPUT_FLAG_) */ 30 uint16_t devid; /* identifier of source device */ 31 uint32_t rsvd[2]; /* reserved for a future timestamp */ 32 }; 33 34 /* Event pages. */ 35 #define INPUT_PAGE_GD 0x0001 /* General Desktop page */ 36 #define INPUT_PAGE_KEY 0x0007 /* Keyboard/Keypad page */ 37 #define INPUT_PAGE_LED 0x0008 /* LED page */ 38 #define INPUT_PAGE_BUTTON 0x0009 /* Button page */ 39 #define INPUT_PAGE_CONS 0x000C /* Consumer page */ 40 41 /* Event values. Not exhaustive. */ 42 #define INPUT_RELEASE 0 43 #define INPUT_PRESS 1 44 45 /* Event flags. */ 46 #define INPUT_FLAG_ABS 0x00 /* absolute value (the default) */ 47 #define INPUT_FLAG_REL 0x04 /* relative value */ 48 49 /* Page-specific event codes. */ 50 enum { 51 INPUT_GD_X = 0x0030, 52 INPUT_GD_Y, 53 54 INPUT_GD_SYSTEM_POWER_DOWN = 0x0081, 55 INPUT_GD_SYSTEM_SLEEP, 56 INPUT_GD_SYSTEM_WAKE_UP 57 }; 58 59 enum { 60 INPUT_KEY_A = 0x0004, 61 INPUT_KEY_B, 62 INPUT_KEY_C, 63 INPUT_KEY_D, 64 INPUT_KEY_E, 65 INPUT_KEY_F, 66 INPUT_KEY_G, 67 INPUT_KEY_H, 68 INPUT_KEY_I, 69 INPUT_KEY_J, 70 INPUT_KEY_K, 71 INPUT_KEY_L, 72 INPUT_KEY_M, 73 INPUT_KEY_N, 74 INPUT_KEY_O, 75 INPUT_KEY_P, 76 INPUT_KEY_Q, 77 INPUT_KEY_R, 78 INPUT_KEY_S, 79 INPUT_KEY_T, 80 INPUT_KEY_U, 81 INPUT_KEY_V, 82 INPUT_KEY_W, 83 INPUT_KEY_X, 84 INPUT_KEY_Y, 85 INPUT_KEY_Z, 86 INPUT_KEY_1, 87 INPUT_KEY_2, 88 INPUT_KEY_3, 89 INPUT_KEY_4, 90 INPUT_KEY_5, 91 INPUT_KEY_6, 92 INPUT_KEY_7, 93 INPUT_KEY_8, 94 INPUT_KEY_9, 95 INPUT_KEY_0, 96 97 INPUT_KEY_ENTER, 98 INPUT_KEY_ESCAPE, 99 INPUT_KEY_BACKSPACE, 100 INPUT_KEY_TAB, 101 INPUT_KEY_SPACEBAR, 102 INPUT_KEY_DASH, 103 INPUT_KEY_EQUAL, 104 INPUT_KEY_OPEN_BRACKET, 105 INPUT_KEY_CLOSE_BRACKET, 106 INPUT_KEY_BACKSLASH, 107 INPUT_KEY_EUROPE_1, 108 INPUT_KEY_SEMICOLON, 109 INPUT_KEY_APOSTROPH, 110 INPUT_KEY_GRAVE_ACCENT, 111 INPUT_KEY_COMMA, 112 INPUT_KEY_PERIOD, 113 INPUT_KEY_SLASH, 114 INPUT_KEY_CAPS_LOCK, 115 116 INPUT_KEY_F1, 117 INPUT_KEY_F2, 118 INPUT_KEY_F3, 119 INPUT_KEY_F4, 120 INPUT_KEY_F5, 121 INPUT_KEY_F6, 122 INPUT_KEY_F7, 123 INPUT_KEY_F8, 124 INPUT_KEY_F9, 125 INPUT_KEY_F10, 126 INPUT_KEY_F11, 127 INPUT_KEY_F12, 128 129 INPUT_KEY_PRINT_SCREEN, 130 INPUT_KEY_SCROLL_LOCK, 131 INPUT_KEY_PAUSE, 132 INPUT_KEY_INSERT, 133 INPUT_KEY_HOME, 134 INPUT_KEY_PAGE_UP, 135 INPUT_KEY_DELETE, 136 INPUT_KEY_END, 137 INPUT_KEY_PAGE_DOWN, 138 INPUT_KEY_RIGHT_ARROW, 139 INPUT_KEY_LEFT_ARROW, 140 INPUT_KEY_DOWN_ARROW, 141 INPUT_KEY_UP_ARROW, 142 INPUT_KEY_NUM_LOCK, 143 144 INPUT_KEY_KP_SLASH, 145 INPUT_KEY_KP_STAR, 146 INPUT_KEY_KP_DASH, 147 INPUT_KEY_KP_PLUS, 148 INPUT_KEY_KP_ENTER, 149 INPUT_KEY_KP_1, 150 INPUT_KEY_KP_2, 151 INPUT_KEY_KP_3, 152 INPUT_KEY_KP_4, 153 INPUT_KEY_KP_5, 154 INPUT_KEY_KP_6, 155 INPUT_KEY_KP_7, 156 INPUT_KEY_KP_8, 157 INPUT_KEY_KP_9, 158 INPUT_KEY_KP_0, 159 INPUT_KEY_KP_PERIOD, 160 161 INPUT_KEY_EUROPE_2, 162 INPUT_KEY_APPLICATION, 163 INPUT_KEY_POWER, 164 INPUT_KEY_KP_EQUAL, 165 166 INPUT_KEY_F13, 167 INPUT_KEY_F14, 168 INPUT_KEY_F15, 169 INPUT_KEY_F16, 170 INPUT_KEY_F17, 171 INPUT_KEY_F18, 172 INPUT_KEY_F19, 173 INPUT_KEY_F20, 174 INPUT_KEY_F21, 175 INPUT_KEY_F22, 176 INPUT_KEY_F23, 177 INPUT_KEY_F24, 178 179 INPUT_KEY_EXECUTE, 180 INPUT_KEY_HELP, 181 INPUT_KEY_MENU, 182 INPUT_KEY_SELECT, 183 INPUT_KEY_STOP, 184 INPUT_KEY_AGAIN, 185 INPUT_KEY_UNDO, 186 INPUT_KEY_CUT, 187 INPUT_KEY_COPY, 188 INPUT_KEY_PASTE, 189 INPUT_KEY_FIND, 190 INPUT_KEY_MUTE, 191 INPUT_KEY_VOLUME_UP, 192 INPUT_KEY_VOLUME_DOWN, 193 INPUT_KEY_LOCKING_CAPS_LOCK, 194 INPUT_KEY_LOCKING_NUM_LOCK, 195 INPUT_KEY_LOCKING_SCROLL_LOCK, 196 INPUT_KEY_KP_COMMA, 197 INPUT_KEY_EQUAL_SIGN, 198 INPUT_KEY_I10L_1, 199 INPUT_KEY_I10L_2, 200 INPUT_KEY_I10L_3, 201 INPUT_KEY_I10L_4, 202 INPUT_KEY_I10L_5, 203 INPUT_KEY_I10L_6, 204 INPUT_KEY_I10L_7, 205 INPUT_KEY_I10L_8, 206 INPUT_KEY_I10L_9, 207 INPUT_KEY_LANG_1, 208 INPUT_KEY_LANG_2, 209 INPUT_KEY_LANG_3, 210 INPUT_KEY_LANG_4, 211 INPUT_KEY_LANG_5, 212 INPUT_KEY_LANG_6, 213 INPUT_KEY_LANG_7, 214 INPUT_KEY_LANG_8, 215 INPUT_KEY_LANG_9, 216 INPUT_KEY_ALT_ERASE, 217 INPUT_KEY_SYSREQ, 218 INPUT_KEY_CANCEL, 219 INPUT_KEY_CLEAR, 220 INPUT_KEY_PRIOR, 221 INPUT_KEY_RETURN, 222 INPUT_KEY_SEPARATOR, 223 INPUT_KEY_OUT, 224 INPUT_KEY_OPER, 225 INPUT_KEY_CLEAR_AGAIN, 226 INPUT_KEY_CR_SEL, 227 INPUT_KEY_EX_SEL, 228 229 /* 0x00A5 -- 0x00AF RESERVED */ 230 231 INPUT_KEY_KP_00 = 0x00B0, 232 INPUT_KEY_KP_000, 233 INPUT_KEY_THOUSANDS_SEP, 234 INPUT_KEY_DECIMAL_SEP, 235 INPUT_KEY_CURRENCY_UNIT, 236 INPUT_KEY_CURRENCY_SUBUNIT, 237 INPUT_KEY_KP_OPEN_PARENTHESIS, 238 INPUT_KEY_KP_CLOSE_PARENTHESIS, 239 INPUT_KEY_KP_OPEN_BRACE, 240 INPUT_KEY_KP_CLOSE_BRACE, 241 INPUT_KEY_KP_TAB, 242 INPUT_KEY_KP_BACKSPACE, 243 INPUT_KEY_KP_A, 244 INPUT_KEY_KP_B, 245 INPUT_KEY_KP_C, 246 INPUT_KEY_KP_D, 247 INPUT_KEY_KP_E, 248 INPUT_KEY_KP_F, 249 INPUT_KEY_KP_XOR, 250 INPUT_KEY_KP_CARET, 251 INPUT_KEY_KP_PERCENT, 252 INPUT_KEY_KP_SMALLER_THEN, 253 INPUT_KEY_KP_GREATER_THEN, 254 INPUT_KEY_KP_AMP, 255 INPUT_KEY_KP_DOUBLE_AMP, 256 INPUT_KEY_KP_PIPE, 257 INPUT_KEY_KP_DOUBLE_PIPE, 258 INPUT_KEY_KP_COLON, 259 INPUT_KEY_KP_NUMBER, 260 INPUT_KEY_KP_SPACE, 261 INPUT_KEY_KP_AT, 262 INPUT_KEY_KP_EXCLAMATION_MARK, 263 INPUT_KEY_KP_MEM_STORE, 264 INPUT_KEY_KP_MEM_RECALL, 265 INPUT_KEY_KP_MEM_CLEAR, 266 INPUT_KEY_KP_MEM_ADD, 267 INPUT_KEY_KP_MEM_SUBTRACT, 268 INPUT_KEY_KP_MEM_MULTIPLY, 269 INPUT_KEY_KP_MEM_DIVIDE, 270 INPUT_KEY_KP_PLUS_MINUS, 271 INPUT_KEY_KP_CLEAR, 272 INPUT_KEY_KP_CLEAR_ENTRY, 273 INPUT_KEY_KP_BIN, 274 INPUT_KEY_KP_OCT, 275 INPUT_KEY_KP_DEC, 276 INPUT_KEY_KP_HEX, 277 278 /* 0x00DE, 0x00DF RESERVED */ 279 280 INPUT_KEY_LEFT_CTRL = 0x00E0, 281 INPUT_KEY_LEFT_SHIFT, 282 INPUT_KEY_LEFT_ALT, 283 INPUT_KEY_LEFT_GUI, 284 INPUT_KEY_RIGHT_CTRL, 285 INPUT_KEY_RIGHT_SHIFT, 286 INPUT_KEY_RIGHT_ALT, 287 INPUT_KEY_RIGHT_GUI 288 289 /* 0x00E8 -- 0xFFFF RESERVED */ 290 }; 291 292 enum { 293 INPUT_LED_NUMLOCK = 0x0001, 294 INPUT_LED_CAPSLOCK, 295 INPUT_LED_SCROLLLOCK 296 }; 297 298 enum { 299 INPUT_BUTTON_1 = 0x0001, 300 }; 301 302 enum { 303 INPUT_CONS_SCAN_NEXT_TRACK = 0x00B5, 304 INPUT_CONS_SCAN_PREVIOUS_TRACK, 305 INPUT_CONS_STOP, 306 307 INPUT_CONS_PLAY_PAUSE = 0x00CD, 308 309 INPUT_CONS_MUTE = 0x00E2, 310 311 INPUT_CONS_VOLUME_UP = 0x00E9, 312 INPUT_CONS_VOLUME_DOWN, 313 314 INPUT_CONS_AL_MEDIA_SELECT = 0x0183, 315 316 INPUT_CONS_AL_EMAIL_READER = 0x018A, 317 318 INPUT_CONS_AL_CALCULATOR = 0x0192, 319 320 INPUT_CONS_AL_LOCAL_BROWSER = 0x0194, 321 322 INPUT_CONS_AC_SEARCH = 0x0221, 323 INPUT_CONS_AC_GO_TO, 324 INPUT_CONS_AC_HOME, 325 INPUT_CONS_AC_BACK, 326 INPUT_CONS_AC_FORWARD, 327 INPUT_CONS_AC_STOP, 328 INPUT_CONS_AC_REFRESH, 329 330 INPUT_CONS_AC_BOOKMARKS = 0x022A 331 }; 332 333 #endif 334