ASW Lib
A.D.S. Games SDL Wrapper Library. A library targeted at Allegro4 users who want to switch to SDL3 and use modern c++.
Loading...
Searching...
No Matches
asw::input Namespace Reference

Namespaces

namespace  anonymous_namespace{input.h}
 

Typedefs

using MouseState
 Mouse state stores the current state of the mouse. It is updated by the core.
 
using KeyState
 Keyboard state stores the current state of the keyboard. It is updated by the core.
 
using ControllerState
 Controller state stores the current state of a controller. It is updated by the core.
 

Enumerations

enum class  MouseButton {
  LEFT = SDL_BUTTON_LEFT , MIDDLE = SDL_BUTTON_MIDDLE , RIGHT = SDL_BUTTON_RIGHT , X1 = SDL_BUTTON_X1 ,
  X2 = SDL_BUTTON_X2 , MAX = NUM_MOUSE_BUTTONS
}
 Enumeration of mouse buttons in the ASW library. More...
 
enum class  Key {
  UNKNOWN = SDL_SCANCODE_UNKNOWN , A = SDL_SCANCODE_A , B = SDL_SCANCODE_B , C = SDL_SCANCODE_C ,
  D = SDL_SCANCODE_D , E = SDL_SCANCODE_E , F = SDL_SCANCODE_F , G = SDL_SCANCODE_G ,
  H = SDL_SCANCODE_H , I = SDL_SCANCODE_I , J = SDL_SCANCODE_J , K = SDL_SCANCODE_K ,
  L = SDL_SCANCODE_L , M = SDL_SCANCODE_M , N = SDL_SCANCODE_N , O = SDL_SCANCODE_O ,
  P = SDL_SCANCODE_P , Q = SDL_SCANCODE_Q , R = SDL_SCANCODE_R , S = SDL_SCANCODE_S ,
  T = SDL_SCANCODE_T , U = SDL_SCANCODE_U , V = SDL_SCANCODE_V , W = SDL_SCANCODE_W ,
  X = SDL_SCANCODE_X , Y = SDL_SCANCODE_Y , Z = SDL_SCANCODE_Z , NUM_1 = SDL_SCANCODE_1 ,
  NUM_2 = SDL_SCANCODE_2 , NUM_3 = SDL_SCANCODE_3 , NUM_4 = SDL_SCANCODE_4 , NUM_5 = SDL_SCANCODE_5 ,
  NUM_6 = SDL_SCANCODE_6 , NUM_7 = SDL_SCANCODE_7 , NUM_8 = SDL_SCANCODE_8 , NUM_9 = SDL_SCANCODE_9 ,
  NUM_0 = SDL_SCANCODE_0 , RETURN = SDL_SCANCODE_RETURN , ESCAPE = SDL_SCANCODE_ESCAPE , BACKSPACE = SDL_SCANCODE_BACKSPACE ,
  TAB = SDL_SCANCODE_TAB , SPACE = SDL_SCANCODE_SPACE , MINUS = SDL_SCANCODE_MINUS , EQUALS = SDL_SCANCODE_EQUALS ,
  LEFT_BRACKET = SDL_SCANCODE_LEFTBRACKET , RIGHT_BRACKET = SDL_SCANCODE_RIGHTBRACKET , BACKSLASH = SDL_SCANCODE_BACKSLASH , NONUSHASH = SDL_SCANCODE_NONUSHASH ,
  SEMICOLON = SDL_SCANCODE_SEMICOLON , APOSTROPHE = SDL_SCANCODE_APOSTROPHE , GRAVE = SDL_SCANCODE_GRAVE , COMMA = SDL_SCANCODE_COMMA ,
  PERIOD = SDL_SCANCODE_PERIOD , SLASH = SDL_SCANCODE_SLASH , CAPSLOCK = SDL_SCANCODE_CAPSLOCK , F1 = SDL_SCANCODE_F1 ,
  F2 = SDL_SCANCODE_F2 , F3 = SDL_SCANCODE_F3 , F4 = SDL_SCANCODE_F4 , F5 = SDL_SCANCODE_F5 ,
  F6 = SDL_SCANCODE_F6 , F7 = SDL_SCANCODE_F7 , F8 = SDL_SCANCODE_F8 , F9 = SDL_SCANCODE_F9 ,
  F10 = SDL_SCANCODE_F10 , F11 = SDL_SCANCODE_F11 , F12 = SDL_SCANCODE_F12 , PRINT_SCREEN = SDL_SCANCODE_PRINTSCREEN ,
  SCROL_LLOCK = SDL_SCANCODE_SCROLLLOCK , PAUSE = SDL_SCANCODE_PAUSE , INSERT = SDL_SCANCODE_INSERT , HOME = SDL_SCANCODE_HOME ,
  PAGE_UP = SDL_SCANCODE_PAGEUP , DELETE = SDL_SCANCODE_DELETE , END = SDL_SCANCODE_END , PAGE_DOWN = SDL_SCANCODE_PAGEDOWN ,
  RIGHT = SDL_SCANCODE_RIGHT , LEFT = SDL_SCANCODE_LEFT , DOWN = SDL_SCANCODE_DOWN , UP = SDL_SCANCODE_UP ,
  NUM_LOCK_CLEAR = SDL_SCANCODE_NUMLOCKCLEAR , KP_DIVIDE = SDL_SCANCODE_KP_DIVIDE , KP_MULTIPLY = SDL_SCANCODE_KP_MULTIPLY , KP_MINUS = SDL_SCANCODE_KP_MINUS ,
  KP_PLUS = SDL_SCANCODE_KP_PLUS , KP_ENTER = SDL_SCANCODE_KP_ENTER , KP_1 = SDL_SCANCODE_KP_1 , KP_2 = SDL_SCANCODE_KP_2 ,
  KP_3 = SDL_SCANCODE_KP_3 , KP_4 = SDL_SCANCODE_KP_4 , KP_5 = SDL_SCANCODE_KP_5 , KP_6 = SDL_SCANCODE_KP_6 ,
  KP_7 = SDL_SCANCODE_KP_7 , KP_8 = SDL_SCANCODE_KP_8 , KP_9 = SDL_SCANCODE_KP_9 , KP_0 = SDL_SCANCODE_KP_0 ,
  KP_PERIOD = SDL_SCANCODE_KP_PERIOD , NONUS_BACKSLASH = SDL_SCANCODE_NONUSBACKSLASH , APPLICATION = SDL_SCANCODE_APPLICATION , POWER = SDL_SCANCODE_POWER ,
  KP_EQUALS = SDL_SCANCODE_KP_EQUALS , F13 = SDL_SCANCODE_F13 , F14 = SDL_SCANCODE_F14 , F15 = SDL_SCANCODE_F15 ,
  F16 = SDL_SCANCODE_F16 , F17 = SDL_SCANCODE_F17 , F18 = SDL_SCANCODE_F18 , F19 = SDL_SCANCODE_F19 ,
  F20 = SDL_SCANCODE_F20 , F21 = SDL_SCANCODE_F21 , F22 = SDL_SCANCODE_F22 , F23 = SDL_SCANCODE_F23 ,
  F24 = SDL_SCANCODE_F24 , EXECUTE = SDL_SCANCODE_EXECUTE , HELP = SDL_SCANCODE_HELP , MENU = SDL_SCANCODE_MENU ,
  SELECT = SDL_SCANCODE_SELECT , STOP = SDL_SCANCODE_STOP , AGAIN = SDL_SCANCODE_AGAIN , UNDO = SDL_SCANCODE_UNDO ,
  CUT = SDL_SCANCODE_CUT , COPY = SDL_SCANCODE_COPY , PASTE = SDL_SCANCODE_PASTE , FIND = SDL_SCANCODE_FIND ,
  MUTE = SDL_SCANCODE_MUTE , VOLUME_UP = SDL_SCANCODE_VOLUMEUP , VOLUME_DOWN = SDL_SCANCODE_VOLUMEDOWN , KP_COMMA = SDL_SCANCODE_KP_COMMA ,
  KP_EQUALSAS_400 = SDL_SCANCODE_KP_EQUALSAS400 , INTERNATIONAL_1 = SDL_SCANCODE_INTERNATIONAL1 , INTERNATIONAL_2 = SDL_SCANCODE_INTERNATIONAL2 , INTERNATIONAL_3 = SDL_SCANCODE_INTERNATIONAL3 ,
  INTERNATIONAL_4 = SDL_SCANCODE_INTERNATIONAL4 , INTERNATIONAL_5 = SDL_SCANCODE_INTERNATIONAL5 , INTERNATIONAL_6 = SDL_SCANCODE_INTERNATIONAL6 , INTERNATIONAL_7 = SDL_SCANCODE_INTERNATIONAL7 ,
  INTERNATIONAL_8 = SDL_SCANCODE_INTERNATIONAL8 , INTERNATIONAL_9 = SDL_SCANCODE_INTERNATIONAL9 , LANG_1 = SDL_SCANCODE_LANG1 , LANG_2 = SDL_SCANCODE_LANG2 ,
  LANG_3 = SDL_SCANCODE_LANG3 , LANG_4 = SDL_SCANCODE_LANG4 , LANG_5 = SDL_SCANCODE_LANG5 , LANG_6 = SDL_SCANCODE_LANG6 ,
  LANG_7 = SDL_SCANCODE_LANG7 , LANG_8 = SDL_SCANCODE_LANG8 , LANG_9 = SDL_SCANCODE_LANG9 , ALT_ERASE = SDL_SCANCODE_ALTERASE ,
  SYS_REQ = SDL_SCANCODE_SYSREQ , CANCEL = SDL_SCANCODE_CANCEL , CLEAR = SDL_SCANCODE_CLEAR , PRIOR = SDL_SCANCODE_PRIOR ,
  RETURN_2 = SDL_SCANCODE_RETURN2 , SEPARATOR = SDL_SCANCODE_SEPARATOR , OUT = SDL_SCANCODE_OUT , OPER = SDL_SCANCODE_OPER ,
  CLEAR_AGAIN = SDL_SCANCODE_CLEARAGAIN , CRSEL = SDL_SCANCODE_CRSEL , EXSEL = SDL_SCANCODE_EXSEL , KP_00 = SDL_SCANCODE_KP_00 ,
  KP_000 = SDL_SCANCODE_KP_000 , THOUSANDS_SEPARATOR = SDL_SCANCODE_THOUSANDSSEPARATOR , DECIMAL_SEPARATOR = SDL_SCANCODE_DECIMALSEPARATOR , CURRENCY_UNIT = SDL_SCANCODE_CURRENCYUNIT ,
  CURRENCY_SUBUNIT = SDL_SCANCODE_CURRENCYSUBUNIT , KP_LEFT_PAREN = SDL_SCANCODE_KP_LEFTPAREN , KP_RIGHT_PAREN = SDL_SCANCODE_KP_RIGHTPAREN , KP_LEFT_BRACE = SDL_SCANCODE_KP_LEFTBRACE ,
  KP_RIGHT_BRACE = SDL_SCANCODE_KP_RIGHTBRACE , KP_TAB = SDL_SCANCODE_KP_TAB , KP_BACKSPACE = SDL_SCANCODE_KP_BACKSPACE , KP_A = SDL_SCANCODE_KP_A ,
  KP_B = SDL_SCANCODE_KP_B , KP_C = SDL_SCANCODE_KP_C , KP_D = SDL_SCANCODE_KP_D , KP_E = SDL_SCANCODE_KP_E ,
  KP_F = SDL_SCANCODE_KP_F , KP_XOR = SDL_SCANCODE_KP_XOR , KP_POWER = SDL_SCANCODE_KP_POWER , KP_PERCENT = SDL_SCANCODE_KP_PERCENT ,
  KP_LESS = SDL_SCANCODE_KP_LESS , KP_GREATER = SDL_SCANCODE_KP_GREATER , KP_AMPERSAND = SDL_SCANCODE_KP_AMPERSAND , KP_DOUBLE_AMPERSAND = SDL_SCANCODE_KP_DBLAMPERSAND ,
  KP_VERTICAL_BAR = SDL_SCANCODE_KP_VERTICALBAR , KP_DOUBLE_VERTICAL_BAR = SDL_SCANCODE_KP_DBLVERTICALBAR , KP_COLON = SDL_SCANCODE_KP_COLON , KP_HASH = SDL_SCANCODE_KP_HASH ,
  KP_SPACE = SDL_SCANCODE_KP_SPACE , KP_AT = SDL_SCANCODE_KP_AT , KP_EXCLAMATION = SDL_SCANCODE_KP_EXCLAM , KP_MEM_STORE = SDL_SCANCODE_KP_MEMSTORE ,
  KP_MEM_RECALL = SDL_SCANCODE_KP_MEMRECALL , KP_MEM_CLEAR = SDL_SCANCODE_KP_MEMCLEAR , KP_MEM_ADD = SDL_SCANCODE_KP_MEMADD , KP_MEM_SUBTRACT = SDL_SCANCODE_KP_MEMSUBTRACT ,
  KP_MEM_MULTIPLY = SDL_SCANCODE_KP_MEMMULTIPLY , KP_MEM_DIVIDE = SDL_SCANCODE_KP_MEMDIVIDE , KP_PLUS_MINUS = SDL_SCANCODE_KP_PLUSMINUS , KP_CLEAR = SDL_SCANCODE_KP_CLEAR ,
  KP_CLEAR_ENTRY = SDL_SCANCODE_KP_CLEARENTRY , KP_BINARY = SDL_SCANCODE_KP_BINARY , KP_OCTAL = SDL_SCANCODE_KP_OCTAL , KP_DECIMAL = SDL_SCANCODE_KP_DECIMAL ,
  KP_HEXADECIMAL = SDL_SCANCODE_KP_HEXADECIMAL , LCTRL = SDL_SCANCODE_LCTRL , LSHIFT = SDL_SCANCODE_LSHIFT , LALT = SDL_SCANCODE_LALT ,
  LGUI = SDL_SCANCODE_LGUI , RCTRL = SDL_SCANCODE_RCTRL , RSHIFT = SDL_SCANCODE_RSHIFT , RALT = SDL_SCANCODE_RALT ,
  RGUI = SDL_SCANCODE_RGUI , MODE = SDL_SCANCODE_MODE , AUDIO_NEXT = SDL_SCANCODE_MEDIA_NEXT_TRACK , AUDIO_PREV = SDL_SCANCODE_MEDIA_PREVIOUS_TRACK ,
  AUDIO_STOP = SDL_SCANCODE_MEDIA_STOP , AUDIO_PLAY = SDL_SCANCODE_MEDIA_PLAY , MEDIA_SELECT = SDL_SCANCODE_MEDIA_SELECT , AC_SEARCH = SDL_SCANCODE_AC_SEARCH ,
  AC_HOME = SDL_SCANCODE_AC_HOME , AC_BACK = SDL_SCANCODE_AC_BACK , AC_FORWARD = SDL_SCANCODE_AC_FORWARD , AC_STOP = SDL_SCANCODE_AC_STOP ,
  AC_REFRESH = SDL_SCANCODE_AC_REFRESH , AC_BOOKMARKS = SDL_SCANCODE_AC_BOOKMARKS , EJECT = SDL_SCANCODE_MEDIA_EJECT , SLEEP = SDL_SCANCODE_SLEEP ,
  AUDIO_REWIND = SDL_SCANCODE_MEDIA_REWIND , AUDIO_FAST_FORWARD = SDL_SCANCODE_MEDIA_FAST_FORWARD , SOFT_LEFT = SDL_SCANCODE_SOFTLEFT , SOFT_RIGHT = SDL_SCANCODE_SOFTRIGHT ,
  CALL = SDL_SCANCODE_CALL , ENDCALL = SDL_SCANCODE_ENDCALL , NUM_SCANCODES = NUM_KEYS
}
 Enumeration of keys in the ASW library. More...
 
enum class  CursorId {
  DEFAULT = SDL_SYSTEM_CURSOR_DEFAULT , TEXT = SDL_SYSTEM_CURSOR_TEXT , WAIT = SDL_SYSTEM_CURSOR_WAIT , CROSSHAIR = SDL_SYSTEM_CURSOR_CROSSHAIR ,
  PROGRESS = SDL_SYSTEM_CURSOR_PROGRESS , NWSE_RESIZE = SDL_SYSTEM_CURSOR_NWSE_RESIZE , NESW_RESIZE = SDL_SYSTEM_CURSOR_NESW_RESIZE , EW_RESIZE = SDL_SYSTEM_CURSOR_EW_RESIZE ,
  NS_RESIZE = SDL_SYSTEM_CURSOR_NS_RESIZE , MOVE = SDL_SYSTEM_CURSOR_MOVE , NOT_ALLOWED = SDL_SYSTEM_CURSOR_NOT_ALLOWED , POINTER = SDL_SYSTEM_CURSOR_POINTER ,
  NW_RESIZE = SDL_SYSTEM_CURSOR_NW_RESIZE , N_RESIZE = SDL_SYSTEM_CURSOR_N_RESIZE , NE_RESIZE = SDL_SYSTEM_CURSOR_NE_RESIZE , E_RESIZE = SDL_SYSTEM_CURSOR_E_RESIZE ,
  SE_RESIZE = SDL_SYSTEM_CURSOR_SE_RESIZE , S_RESIZE = SDL_SYSTEM_CURSOR_S_RESIZE , SW_RESIZE = SDL_SYSTEM_CURSOR_SW_RESIZE , W_RESIZE = SDL_SYSTEM_CURSOR_W_RESIZE ,
  COUNT = NUM_CURSORS
}
 System cursor Ids. More...
 
enum class  ControllerButton {
  A = SDL_GAMEPAD_BUTTON_SOUTH , B = SDL_GAMEPAD_BUTTON_EAST , X = SDL_GAMEPAD_BUTTON_WEST , Y = SDL_GAMEPAD_BUTTON_NORTH ,
  BACK = SDL_GAMEPAD_BUTTON_BACK , GUIDE = SDL_GAMEPAD_BUTTON_GUIDE , START = SDL_GAMEPAD_BUTTON_START , LEFT_STICK = SDL_GAMEPAD_BUTTON_LEFT_STICK ,
  RIGHT_STICK = SDL_GAMEPAD_BUTTON_RIGHT_STICK , LEFT_SHOULDER = SDL_GAMEPAD_BUTTON_LEFT_SHOULDER , RIGHT_SHOULDER = SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER , DPAD_UP = SDL_GAMEPAD_BUTTON_DPAD_UP ,
  DPAD_DOWN = SDL_GAMEPAD_BUTTON_DPAD_DOWN , DPAD_LEFT = SDL_GAMEPAD_BUTTON_DPAD_LEFT , DPAD_RIGHT = SDL_GAMEPAD_BUTTON_DPAD_RIGHT , MISC_1 = SDL_GAMEPAD_BUTTON_MISC1 ,
  RIGHT_PADDLE_1 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1 , LEFT_PADDLE_2 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE1 , RIGHT_PADDLE_3 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2 , LEFT_PADDLE_4 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE2 ,
  TOUCH_PAD = SDL_GAMEPAD_BUTTON_TOUCHPAD , MAX = NUM_CONTROLLER_BUTTONS
}
 Mappings from SDL game controller buttons to ASW buttons. More...
 
enum class  ControllerAxis {
  LEFT_X = SDL_GAMEPAD_AXIS_LEFTX , LEFT_Y = SDL_GAMEPAD_AXIS_LEFTY , RIGHT_X = SDL_GAMEPAD_AXIS_RIGHTX , RIGHT_Y = SDL_GAMEPAD_AXIS_RIGHTY ,
  LEFT_TRIGGER = SDL_GAMEPAD_AXIS_LEFT_TRIGGER , RIGHT_TRIGGER = SDL_GAMEPAD_AXIS_RIGHT_TRIGGER , MAX = NUM_CONTROLLER_AXES
}
 Mappings from SDL game controller axes to ASW axes. More...
 

Functions

bool isButtonDown (asw::input::MouseButton button)
 Check if a button is down.
 
bool wasButtonPressed (asw::input::MouseButton button)
 Check if a button was pressed since the last update.
 
bool wasButtonReleased (asw::input::MouseButton button)
 Check if a button was released since the last update.
 
bool isKeyDown (asw::input::Key key)
 Check if a key is down.
 
bool wasKeyPressed (asw::input::Key key)
 Check if a key was pressed since the last update.
 
bool wasKeyReleased (asw::input::Key key)
 Check if a key was released since the last update.
 
void setCursor (asw::input::CursorId cursor)
 Change cursor.
 
bool isControllerButtonDown (int index, asw::input::ControllerButton button)
 Check if a controller button is down.
 
bool wasControllerButtonPressed (int index, asw::input::ControllerButton button)
 Check if a controller button was pressed since the last update.
 
bool wasControllerButtonReleased (int index, asw::input::ControllerButton button)
 Check if a controller button was released since the last update.
 
float getControllerAxis (int index, asw::input::ControllerAxis axis)
 Get the value of a controller axis.
 
void setControllerDeadZone (int index, float deadZone)
 
int getControllerCount ()
 
std::string getControllerName (int index)
 
void reset ()
 Reset all input states. Called by the core.
 

Variables

constexpr int NUM_MOUSE_BUTTONS = 5
 Number of mouse buttons in the ASW library.
 
constexpr int NUM_KEYS = SDL_SCANCODE_COUNT
 Number of keys in the ASW library.
 
constexpr int NUM_CURSORS = SDL_SYSTEM_CURSOR_COUNT
 Cursor count.
 
MouseState mouse {}
 Global mouse state.
 
KeyState keyboard {}
 Global keyboard state.
 
constexpr int NUM_CONTROLLER_BUTTONS = SDL_GAMEPAD_BUTTON_COUNT
 Number of buttons on a game controller.
 
constexpr int NUM_CONTROLLER_AXES = SDL_GAMEPAD_AXIS_COUNT
 
constexpr int MAX_CONTROLLERS = 8
 Maximum number of controllers supported.
 
std::array< ControllerState, MAX_CONTROLLERScontroller {}
 Global controller state.
 

Typedef Documentation

◆ ControllerState

Initial value:
struct ControllerState {
std::array<bool, NUM_CONTROLLER_BUTTONS> pressed{false};
std::array<bool, NUM_CONTROLLER_BUTTONS> released{false};
std::array<bool, NUM_CONTROLLER_BUTTONS> down{false};
bool anyPressed{false};
int lastPressed{-1};
float deadZone{0.25F};
std::array<float, NUM_CONTROLLER_AXES> axis{0};
}
struct ControllerState { std::array< bool, NUM_CONTROLLER_BUTTONS > pressed{false}; std::array< bool, NUM_CONTROLLER_BUTTONS > released{false}; std::array< bool, NUM_CONTROLLER_BUTTONS > down{false}; bool anyPressed{false}; int lastPressed{-1}; float deadZone{0.25F}; std::array< float, NUM_CONTROLLER_AXES > axis{0}; } ControllerState
Controller state stores the current state of a controller. It is updated by the core.
Definition input.h:456

Controller state stores the current state of a controller. It is updated by the core.

Definition at line 456 of file input.h.

◆ KeyState

Initial value:
struct KeyState {
std::array<bool, NUM_KEYS> pressed{false};
std::array<bool, NUM_KEYS> released{false};
std::array<bool, NUM_KEYS> down{false};
bool anyPressed{false};
int lastPressed{-1};
}
struct KeyState { std::array< bool, NUM_KEYS > pressed{false}; std::array< bool, NUM_KEYS > released{false}; std::array< bool, NUM_KEYS > down{false}; bool anyPressed{false}; int lastPressed{-1}; } KeyState
Keyboard state stores the current state of the keyboard. It is updated by the core.
Definition input.h:355

Keyboard state stores the current state of the keyboard. It is updated by the core.

Definition at line 355 of file input.h.

◆ MouseState

Initial value:
struct MouseState {
bool anyPressed{false};
int lastPressed{-1};
float xChange{0};
float yChange{0};
float x{0};
float y{0};
float z{0};
std::array<bool, NUM_MOUSE_BUTTONS> pressed{false};
std::array<bool, NUM_MOUSE_BUTTONS> released{false};
std::array<bool, NUM_MOUSE_BUTTONS> down{false};
}
struct MouseState { bool anyPressed{false}; int lastPressed{-1}; float xChange{0}; float yChange{0}; float x{0}; float y{0}; float z{0}; std::array< bool, NUM_MOUSE_BUTTONS > pressed{false}; std::array< bool, NUM_MOUSE_BUTTONS > released{false}; std::array< bool, NUM_MOUSE_BUTTONS > down{false}; } MouseState
Mouse state stores the current state of the mouse. It is updated by the core.
Definition input.h:309

Mouse state stores the current state of the mouse. It is updated by the core.

Definition at line 309 of file input.h.

Enumeration Type Documentation

◆ ControllerAxis

enum class asw::input::ControllerAxis
strong

Mappings from SDL game controller axes to ASW axes.

Enumerator
LEFT_X 
LEFT_Y 
RIGHT_X 
RIGHT_Y 
LEFT_TRIGGER 
RIGHT_TRIGGER 
MAX 

Definition at line 442 of file input.h.

◆ ControllerButton

enum class asw::input::ControllerButton
strong

Mappings from SDL game controller buttons to ASW buttons.

Enumerator
BACK 
GUIDE 
START 
LEFT_STICK 
RIGHT_STICK 
LEFT_SHOULDER 
RIGHT_SHOULDER 
DPAD_UP 
DPAD_DOWN 
DPAD_LEFT 
DPAD_RIGHT 
MISC_1 
RIGHT_PADDLE_1 
LEFT_PADDLE_2 
RIGHT_PADDLE_3 
LEFT_PADDLE_4 
TOUCH_PAD 
MAX 

Definition at line 409 of file input.h.

◆ CursorId

enum class asw::input::CursorId
strong

System cursor Ids.

Enumerator
DEFAULT 
TEXT 
WAIT 
CROSSHAIR 
PROGRESS 
NWSE_RESIZE 
NESW_RESIZE 
EW_RESIZE 
NS_RESIZE 
MOVE 
NOT_ALLOWED 
POINTER 
NW_RESIZE 
N_RESIZE 
NE_RESIZE 
E_RESIZE 
SE_RESIZE 
S_RESIZE 
SW_RESIZE 
W_RESIZE 
COUNT 

Definition at line 277 of file input.h.

◆ Key

enum class asw::input::Key
strong

Enumeration of keys in the ASW library.

Enumerator
UNKNOWN 
NUM_1 
NUM_2 
NUM_3 
NUM_4 
NUM_5 
NUM_6 
NUM_7 
NUM_8 
NUM_9 
NUM_0 
RETURN 
ESCAPE 
BACKSPACE 
TAB 
SPACE 
MINUS 
EQUALS 
LEFT_BRACKET 
RIGHT_BRACKET 
BACKSLASH 
NONUSHASH 
SEMICOLON 
APOSTROPHE 
GRAVE 
COMMA 
PERIOD 
SLASH 
CAPSLOCK 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
PRINT_SCREEN 
SCROL_LLOCK 
PAUSE 
INSERT 
HOME 
PAGE_UP 
DELETE 
END 
PAGE_DOWN 
RIGHT 
LEFT 
DOWN 
UP 
NUM_LOCK_CLEAR 
KP_DIVIDE 
KP_MULTIPLY 
KP_MINUS 
KP_PLUS 
KP_ENTER 
KP_1 
KP_2 
KP_3 
KP_4 
KP_5 
KP_6 
KP_7 
KP_8 
KP_9 
KP_0 
KP_PERIOD 
NONUS_BACKSLASH 
APPLICATION 
POWER 
KP_EQUALS 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
EXECUTE 
HELP 
MENU 
SELECT 
STOP 
AGAIN 
UNDO 
CUT 
COPY 
PASTE 
FIND 
MUTE 
VOLUME_UP 
VOLUME_DOWN 
KP_COMMA 
KP_EQUALSAS_400 
INTERNATIONAL_1 
INTERNATIONAL_2 
INTERNATIONAL_3 
INTERNATIONAL_4 
INTERNATIONAL_5 
INTERNATIONAL_6 
INTERNATIONAL_7 
INTERNATIONAL_8 
INTERNATIONAL_9 
LANG_1 
LANG_2 
LANG_3 
LANG_4 
LANG_5 
LANG_6 
LANG_7 
LANG_8 
LANG_9 
ALT_ERASE 
SYS_REQ 
CANCEL 
CLEAR 
PRIOR 
RETURN_2 
SEPARATOR 
OUT 
OPER 
CLEAR_AGAIN 
CRSEL 
EXSEL 
KP_00 
KP_000 
THOUSANDS_SEPARATOR 
DECIMAL_SEPARATOR 
CURRENCY_UNIT 
CURRENCY_SUBUNIT 
KP_LEFT_PAREN 
KP_RIGHT_PAREN 
KP_LEFT_BRACE 
KP_RIGHT_BRACE 
KP_TAB 
KP_BACKSPACE 
KP_A 
KP_B 
KP_C 
KP_D 
KP_E 
KP_F 
KP_XOR 
KP_POWER 
KP_PERCENT 
KP_LESS 
KP_GREATER 
KP_AMPERSAND 
KP_DOUBLE_AMPERSAND 
KP_VERTICAL_BAR 
KP_DOUBLE_VERTICAL_BAR 
KP_COLON 
KP_HASH 
KP_SPACE 
KP_AT 
KP_EXCLAMATION 
KP_MEM_STORE 
KP_MEM_RECALL 
KP_MEM_CLEAR 
KP_MEM_ADD 
KP_MEM_SUBTRACT 
KP_MEM_MULTIPLY 
KP_MEM_DIVIDE 
KP_PLUS_MINUS 
KP_CLEAR 
KP_CLEAR_ENTRY 
KP_BINARY 
KP_OCTAL 
KP_DECIMAL 
KP_HEXADECIMAL 
LCTRL 
LSHIFT 
LALT 
LGUI 
RCTRL 
RSHIFT 
RALT 
RGUI 
MODE 
AUDIO_NEXT 
AUDIO_PREV 
AUDIO_STOP 
AUDIO_PLAY 
MEDIA_SELECT 
AC_SEARCH 
AC_HOME 
AC_BACK 
AC_FORWARD 
AC_STOP 
AC_REFRESH 
AC_BOOKMARKS 
EJECT 
SLEEP 
AUDIO_REWIND 
AUDIO_FAST_FORWARD 
SOFT_LEFT 
SOFT_RIGHT 
CALL 
ENDCALL 
NUM_SCANCODES 

Definition at line 35 of file input.h.

◆ MouseButton

enum class asw::input::MouseButton
strong

Enumeration of mouse buttons in the ASW library.

Enumerator
LEFT 
MIDDLE 
RIGHT 
X1 
X2 
MAX 

Definition at line 25 of file input.h.

Function Documentation

◆ getControllerAxis()

float asw::input::getControllerAxis ( int index,
asw::input::ControllerAxis axis )

Get the value of a controller axis.

Parameters
indexThe index of the controller to check.
axisThe axis to check.
Returns
float - The value of the axis between -1.0f and 1.0f.

Definition at line 112 of file input.cpp.

◆ getControllerCount()

int asw::input::getControllerCount ( )

@breif Get the number of controllers connected.

Definition at line 121 of file input.cpp.

◆ getControllerName()

std::string asw::input::getControllerName ( int index)

@breif Get the name of a controller.

Definition at line 131 of file input.cpp.

◆ isButtonDown()

bool asw::input::isButtonDown ( asw::input::MouseButton button)

Check if a button is down.

Parameters
buttonThe button to check.
Returns
true - If the button is down.
false - If the button is not down.

Definition at line 56 of file input.cpp.

◆ isControllerButtonDown()

bool asw::input::isControllerButtonDown ( int index,
asw::input::ControllerButton button )

Check if a controller button is down.

Parameters
indexThe index of the controller to check.
buttonThe button to check.
Returns
true - If the button is down.
false - If the button is not down.

Definition at line 95 of file input.cpp.

◆ isKeyDown()

bool asw::input::isKeyDown ( asw::input::Key key)

Check if a key is down.

Parameters
keyThe key to check.
Returns
true - If the key is down.
false - If the key is not down.

Definition at line 68 of file input.cpp.

◆ reset()

void asw::input::reset ( )

Reset all input states. Called by the core.

Definition at line 10 of file input.cpp.

◆ setControllerDeadZone()

void asw::input::setControllerDeadZone ( int index,
float deadZone )

@breif Set the joystick deadzone for a controller.

Definition at line 117 of file input.cpp.

◆ setCursor()

void asw::input::setCursor ( asw::input::CursorId cursor)

Change cursor.

Parameters
cursorThe cursor to change to.
windowThe window to change the cursor for.
Returns
true - If the cursor was changed.
false - If the cursor was not changed.

Definition at line 80 of file input.cpp.

◆ wasButtonPressed()

bool asw::input::wasButtonPressed ( asw::input::MouseButton button)

Check if a button was pressed since the last update.

Parameters
buttonThe button to check.
Returns
true - If the button was pressed.
false - If the button was not pressed.

Definition at line 60 of file input.cpp.

◆ wasButtonReleased()

bool asw::input::wasButtonReleased ( asw::input::MouseButton button)

Check if a button was released since the last update.

Parameters
buttonThe button to check.
Returns
true - If the button was released.
false - If the button was not released.

Definition at line 64 of file input.cpp.

◆ wasControllerButtonPressed()

bool asw::input::wasControllerButtonPressed ( int index,
asw::input::ControllerButton button )

Check if a controller button was pressed since the last update.

Parameters
indexThe index of the controller to check.
buttonThe button to check.
Returns
true - If the button was pressed.
false - If the button was not pressed.

Definition at line 100 of file input.cpp.

◆ wasControllerButtonReleased()

bool asw::input::wasControllerButtonReleased ( int index,
asw::input::ControllerButton button )

Check if a controller button was released since the last update.

Parameters
indexThe index of the controller to check.
buttonThe button to check.
Returns
true - If the button was released.
false - If the button was not released.

Definition at line 106 of file input.cpp.

◆ wasKeyPressed()

bool asw::input::wasKeyPressed ( asw::input::Key key)

Check if a key was pressed since the last update.

Parameters
keyThe key to check.
Returns
true - If the key was pressed.
false - If the key was not pressed.

Definition at line 72 of file input.cpp.

◆ wasKeyReleased()

bool asw::input::wasKeyReleased ( asw::input::Key key)

Check if a key was released since the last update.

Parameters
keyThe key to check.
Returns
true - If the key was released.
false - If the key was not released.

Definition at line 76 of file input.cpp.

Variable Documentation

◆ controller

std::array< asw::input::ControllerState, asw::input::MAX_CONTROLLERS > asw::input::controller {}
extern

Global controller state.

Definition at line 8 of file input.cpp.

◆ keyboard

asw::input::KeyState asw::input::keyboard {}
extern

Global keyboard state.

Definition at line 3 of file input.cpp.

◆ MAX_CONTROLLERS

int asw::input::MAX_CONTROLLERS = 8
constexpr

Maximum number of controllers supported.

Definition at line 471 of file input.h.

◆ mouse

asw::input::MouseState asw::input::mouse {}
extern

Global mouse state.

Definition at line 5 of file input.cpp.

◆ NUM_CONTROLLER_AXES

int asw::input::NUM_CONTROLLER_AXES = SDL_GAMEPAD_AXIS_COUNT
constexpr

@breif Number of axes on a game controller

Definition at line 437 of file input.h.

◆ NUM_CONTROLLER_BUTTONS

int asw::input::NUM_CONTROLLER_BUTTONS = SDL_GAMEPAD_BUTTON_COUNT
constexpr

Number of buttons on a game controller.

Definition at line 404 of file input.h.

◆ NUM_CURSORS

int asw::input::NUM_CURSORS = SDL_SYSTEM_CURSOR_COUNT
constexpr

Cursor count.

Definition at line 274 of file input.h.

◆ NUM_KEYS

int asw::input::NUM_KEYS = SDL_SCANCODE_COUNT
constexpr

Number of keys in the ASW library.

Definition at line 22 of file input.h.

◆ NUM_MOUSE_BUTTONS

int asw::input::NUM_MOUSE_BUTTONS = 5
constexpr

Number of mouse buttons in the ASW library.

Type defs

Definition at line 19 of file input.h.