diff options
Diffstat (limited to 'public/inputsystem/InputEnums.h')
| -rw-r--r-- | public/inputsystem/InputEnums.h | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/public/inputsystem/InputEnums.h b/public/inputsystem/InputEnums.h new file mode 100644 index 0000000..ee460be --- /dev/null +++ b/public/inputsystem/InputEnums.h @@ -0,0 +1,195 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//===========================================================================// + +#ifndef INPUTENUMS_H +#define INPUTENUMS_H +#ifdef _WIN32 +#pragma once +#endif + +// Standard maximum +/- value of a joystick axis +#define MAX_BUTTONSAMPLE 32768 + +#if !defined( _X360 ) +#define INVALID_USER_ID -1 +#else +#define INVALID_USER_ID XBX_INVALID_USER_ID +#endif + +//----------------------------------------------------------------------------- +// Forward declarations: +//----------------------------------------------------------------------------- + +enum +{ + MAX_JOYSTICKS = 1, + MOUSE_BUTTON_COUNT = 5, + MAX_NOVINT_DEVICES = 2, +}; + +#if defined( LINUX ) +// Linux has a slightly different mapping order on the joystick axes +enum JoystickAxis_t +{ + JOY_AXIS_X = 0, + JOY_AXIS_Y, + JOY_AXIS_Z, + JOY_AXIS_U, + JOY_AXIS_R, + JOY_AXIS_V, + MAX_JOYSTICK_AXES, +}; +#else +enum JoystickAxis_t +{ + JOY_AXIS_X = 0, + JOY_AXIS_Y, + JOY_AXIS_Z, + JOY_AXIS_R, + JOY_AXIS_U, + JOY_AXIS_V, + MAX_JOYSTICK_AXES, +}; +#endif + +//----------------------------------------------------------------------------- +// Extra mouse codes +//----------------------------------------------------------------------------- +enum +{ + MS_WM_XBUTTONDOWN = 0x020B, + MS_WM_XBUTTONUP = 0x020C, + MS_WM_XBUTTONDBLCLK = 0x020D, + MS_MK_BUTTON4 = 0x0020, + MS_MK_BUTTON5 = 0x0040, +}; + +//----------------------------------------------------------------------------- +// Events +//----------------------------------------------------------------------------- +enum InputEventType_t +{ + IE_ButtonPressed = 0, // m_nData contains a ButtonCode_t + IE_ButtonReleased, // m_nData contains a ButtonCode_t + IE_ButtonDoubleClicked, // m_nData contains a ButtonCode_t + IE_AnalogValueChanged, // m_nData contains an AnalogCode_t, m_nData2 contains the value + + IE_FirstSystemEvent = 100, + IE_Quit = IE_FirstSystemEvent, + IE_ControllerInserted, // m_nData contains the controller ID + IE_ControllerUnplugged, // m_nData contains the controller ID + + IE_FirstVguiEvent = 1000, // Assign ranges for other systems that post user events here + IE_FirstAppEvent = 2000, +}; + +struct InputEvent_t +{ + int m_nType; // Type of the event (see InputEventType_t) + int m_nTick; // Tick on which the event occurred + int m_nData; // Generic 32-bit data, what it contains depends on the event + int m_nData2; // Generic 32-bit data, what it contains depends on the event + int m_nData3; // Generic 32-bit data, what it contains depends on the event +}; + +//----------------------------------------------------------------------------- +// Steam Controller Enums +//----------------------------------------------------------------------------- + +#define MAX_STEAM_CONTROLLERS 8 + +typedef enum +{ + SK_NULL, + SK_BUTTON_A, + SK_BUTTON_B, + SK_BUTTON_X, + SK_BUTTON_Y, + SK_BUTTON_UP, + SK_BUTTON_RIGHT, + SK_BUTTON_DOWN, + SK_BUTTON_LEFT, + SK_BUTTON_LEFT_BUMPER, + SK_BUTTON_RIGHT_BUMPER, + SK_BUTTON_LEFT_TRIGGER, + SK_BUTTON_RIGHT_TRIGGER, + SK_BUTTON_LEFT_GRIP, + SK_BUTTON_RIGHT_GRIP, + SK_BUTTON_LPAD_TOUCH, + SK_BUTTON_RPAD_TOUCH, + SK_BUTTON_LPAD_CLICK, + SK_BUTTON_RPAD_CLICK, + SK_BUTTON_LPAD_UP, + SK_BUTTON_LPAD_RIGHT, + SK_BUTTON_LPAD_DOWN, + SK_BUTTON_LPAD_LEFT, + SK_BUTTON_RPAD_UP, + SK_BUTTON_RPAD_RIGHT, + SK_BUTTON_RPAD_DOWN, + SK_BUTTON_RPAD_LEFT, + SK_BUTTON_SELECT, + SK_BUTTON_START, + SK_BUTTON_STEAM, + SK_BUTTON_INACTIVE_START, + SK_VBUTTON_F1, // These are "virtual" buttons. Useful if you want to have flow that maps an action to button code to be interpreted by some UI that accepts keystrokes, but you + SK_VBUTTON_F2, // don't want to map to real button (perhaps because it would be interpreted by UI in a way you don't like). + SK_VBUTTON_F3, + SK_VBUTTON_F4, + SK_VBUTTON_F5, + SK_VBUTTON_F6, + SK_VBUTTON_F7, + SK_VBUTTON_F8, + SK_VBUTTON_F9, + SK_VBUTTON_F10, + SK_VBUTTON_F11, + SK_VBUTTON_F12, + SK_MAX_KEYS +} sKey_t; + +enum ESteamPadAxis +{ + LEFTPAD_AXIS_X, + LEFTPAD_AXIS_Y, + RIGHTPAD_AXIS_X, + RIGHTPAD_AXIS_Y, + LEFT_TRIGGER_AXIS, + RIGHT_TRIGGER_AXIS, + GYRO_AXIS_PITCH, + GYRO_AXIS_ROLL, + GYRO_AXIS_YAW, + MAX_STEAMPADAXIS = GYRO_AXIS_YAW +}; + +enum +{ + LASTINPUT_KBMOUSE = 0, + LASTINPUT_CONTROLLER = 1, + LASTINPUT_STEAMCONTROLLER = 2 +}; + +enum GameActionSet_t +{ + GAME_ACTION_SET_NONE = -1, + GAME_ACTION_SET_MENUCONTROLS = 0, + GAME_ACTION_SET_FPSCONTROLS, + GAME_ACTION_SET_IN_GAME_HUD, + GAME_ACTION_SET_SPECTATOR, +}; + +enum GameActionSetFlags_t +{ + GAME_ACTION_SET_FLAGS_NONE = 0, + GAME_ACTION_SET_FLAGS_TAUNTING = (1<<0), +}; + +enum JoystickType_t +{ + INPUT_TYPE_GENERIC_JOYSTICK = 0, + INPUT_TYPE_X360, + INPUT_TYPE_STEAMCONTROLLER, +}; + +#endif // INPUTENUMS_H |