//
typedef enum keynum_e
{
+ K_TEXT = 1, // used only for unicode character input
K_TAB = 9,
K_ENTER = 13,
K_ESCAPE = 27,
K_KP_ENTER,
K_KP_EQUALS,
+ K_PRINTSCREEN,
+
// mouse buttons generate virtual keys
K_MOUSE1 = 512,
K_AUX31,
K_AUX32,
+ // Microsoft Xbox 360 Controller For Windows
+ K_X360_DPAD_UP,
+ K_X360_DPAD_DOWN,
+ K_X360_DPAD_LEFT,
+ K_X360_DPAD_RIGHT,
+ K_X360_START,
+ K_X360_BACK,
+ K_X360_LEFT_THUMB,
+ K_X360_RIGHT_THUMB,
+ K_X360_LEFT_SHOULDER,
+ K_X360_RIGHT_SHOULDER,
+ K_X360_A,
+ K_X360_B,
+ K_X360_X,
+ K_X360_Y,
+ K_X360_LEFT_TRIGGER,
+ K_X360_RIGHT_TRIGGER,
+ K_X360_LEFT_THUMB_UP,
+ K_X360_LEFT_THUMB_DOWN,
+ K_X360_LEFT_THUMB_LEFT,
+ K_X360_LEFT_THUMB_RIGHT,
+ K_X360_RIGHT_THUMB_UP,
+ K_X360_RIGHT_THUMB_DOWN,
+ K_X360_RIGHT_THUMB_LEFT,
+ K_X360_RIGHT_THUMB_RIGHT,
+
+ // generic joystick emulation for menu
+ K_JOY_UP,
+ K_JOY_DOWN,
+ K_JOY_LEFT,
+ K_JOY_RIGHT,
+
K_MIDINOTE0 = 896, // to this, the note number is added
K_MIDINOTE1,
K_MIDINOTE2,
K_MIDINOTE125,
K_MIDINOTE126,
K_MIDINOTE127,
+
+ MAX_KEYS
}
keynum_t;
typedef enum keydest_e { key_game, key_message, key_menu, key_menu_grabbed, key_console, key_void } keydest_t;
-#define MAX_BINDMAPS 8
-#define MAX_KEYS 1024
extern char key_line[MAX_INPUTLINE];
extern int key_linepos;
extern qboolean key_insert; // insert key toggle (for editing)
extern int key_consoleactive;
extern char *keybindings[MAX_BINDMAPS][MAX_KEYS];
-extern void Key_ClearEditLine(int edit_line);
extern int chat_mode; // 0 for say, 1 for say_team, -1 for command
extern char chat_buffer[MAX_INPUTLINE];
extern unsigned int chat_bufferlen;
+void Key_ClearEditLine(int edit_line);
void Key_WriteBindings(qfile_t *f);
void Key_Init(void);
void Key_Shutdown(void);
void Key_Init_Cvars(void);
void Key_Event(int key, int ascii, qboolean down);
-void Key_ClearStates (void);
-void Key_SetBinding (int keynum, int bindmap, const char *binding);
+void Key_ReleaseAll (void);
+void Key_ClearStates (void); // FIXME: should this function still exist? Or should Key_ReleaseAll be used instead when shutting down a vid driver?
+void Key_EventQueue_Block(void);
+void Key_EventQueue_Unblock(void);
+
+qboolean Key_SetBinding (int keynum, int bindmap, const char *binding);
+const char *Key_GetBind (int key, int bindmap);
+void Key_FindKeysForCommand (const char *command, int *keys, int numkeys, int bindmap);
+qboolean Key_SetBindMap(int fg, int bg);
+void Key_GetBindMap(int *fg, int *bg);
#endif // __KEYS_H