/****************************************************************************** Copyright (C) 2013 by Hugh Bailey This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ******************************************************************************/ #ifndef INPUT_H #define INPUT_H /* TODO: incomplete/may not be necessary */ #ifdef __cplusplus extern "C" { #endif #define KBC_ESCAPE 0x0 #define KBC_1 0x1 #define KBC_2 0x2 #define KBC_3 0x3 #define KBC_4 0x4 #define KBC_5 0x5 #define KBC_6 0x6 #define KBC_7 0x7 #define KBC_8 0x8 #define KBC_9 0x9 #define KBC_0 0xA #define KBC_MINUS 0xB #define KBC_EQUALS 0xC #define KBC_BACK 0xD #define KBC_TAB 0xE #define KBC_Q 0xF #define KBC_W 0x10 #define KBC_E 0x11 #define KBC_R 0x12 #define KBC_T 0x13 #define KBC_Y 0x14 #define KBC_U 0x15 #define KBC_I 0x16 #define KBC_O 0x17 #define KBC_P 0x18 #define KBC_LBRACKET 0x19 #define KBC_RBRACKET 0x1A #define KBC_RETURN 0x1B #define KBC_LCONTROL 0x1C #define KBC_A 0x1D #define KBC_S 0x1E #define KBC_D 0x1F #define KBC_F 0x20 #define KBC_G 0x21 #define KBC_H 0x22 #define KBC_J 0x23 #define KBC_K 0x24 #define KBC_L 0x25 #define KBC_SEMICOLON 0x26 #define KBC_APOSTROPHE 0x27 #define KBC_TILDE 0x28 #define KBC_LSHIFT 0x29 #define KBC_BACKSLASH 0x2A #define KBC_Z 0x2B #define KBC_X 0x2C #define KBC_C 0x2D #define KBC_V 0x2E #define KBC_B 0x2F #define KBC_N 0x30 #define KBC_M 0x31 #define KBC_COMMA 0x32 #define KBC_PERIOD 0x33 #define KBC_SLASH 0x34 #define KBC_RSHIFT 0x35 #define KBC_MULTIPLY 0x36 #define KBC_LALT 0x37 #define KBC_SPACE 0x38 #define KBC_CAPSLOCK 0x39 #define KBC_F1 0x3A #define KBC_F2 0x3B #define KBC_F3 0x3C #define KBC_F4 0x3D #define KBC_F5 0x3E #define KBC_F6 0x3F #define KBC_F7 0x40 #define KBC_F8 0x41 #define KBC_F9 0x42 #define KBC_F10 0x43 #define KBC_NUMLOCK 0x44 #define KBC_SCROLLLOCK 0x45 #define KBC_NUMPAD7 0x46 #define KBC_NUMPAD8 0x47 #define KBC_NUMPAD9 0x48 #define KBC_SUBTRACT 0x49 #define KBC_NUMPAD4 0x4A #define KBC_NUMPAD5 0x4B #define KBC_NUMPAD6 0x4C #define KBC_ADD 0x4D #define KBC_NUMPAD1 0x4E #define KBC_NUMPAD2 0x4F #define KBC_NUMPAD3 0x50 #define KBC_NUMPAD0 0x51 #define KBC_DECIMAL 0x52 #define KBC_F11 0x53 #define KBC_F12 0x54 #define KBC_NUMPADENTER 0x55 #define KBC_RCONTROL 0x56 #define KBC_DIVIDE 0x57 #define KBC_SYSRQ 0x58 #define KBC_RALT 0x59 #define KBC_PAUSE 0x5A #define KBC_HOME 0x5B #define KBC_UP 0x5C #define KBC_PAGEDOWN 0x5D #define KBC_LEFT 0x5E #define KBC_RIGHT 0x5F #define KBC_END 0x60 #define KBC_DOWN 0x61 #define KBC_PAGEUP 0x62 #define KBC_INSERT 0x63 #define KBC_DELETE 0x64 #define MOUSE_LEFTBUTTON 0x65 #define MOUSE_MIDDLEBUTTON 0x66 #define MOUSE_RIGHTBUTTON 0x67 #define MOUSE_WHEEL 0x68 #define MOUSE_MOVE 0x69 #define KBC_CONTROL 0xFFFFFFFE #define KBC_ALT 0xFFFFFFFD #define KBC_SHIFT 0xFFFFFFFC #define STATE_LBUTTONDOWN (1<<0) #define STATE_RBUTTONDOWN (1<<1) #define STATE_MBUTTONDOWN (1<<2) #define STATE_X4BUTTONDOWN (1<<3) #define STATE_X5BUTTONDOWN (1<<4) /* wrapped opaque data types */ struct input_subsystem; typedef struct input_subsystem* input_t; EXPORT int input_getbuttonstate(input_t input, uint32_t button); #ifdef __cplusplus } #endif #endif