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 , NumMouseButtons = 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 , Num1 = SDL_SCANCODE_1 ,
  Num2 = SDL_SCANCODE_2 , Num3 = SDL_SCANCODE_3 , Num4 = SDL_SCANCODE_4 , Num5 = SDL_SCANCODE_5 ,
  Num6 = SDL_SCANCODE_6 , Num7 = SDL_SCANCODE_7 , Num8 = SDL_SCANCODE_8 , Num9 = SDL_SCANCODE_9 ,
  Num0 = SDL_SCANCODE_0 , Return = SDL_SCANCODE_RETURN , Escape = SDL_SCANCODE_ESCAPE , Backspace = SDL_SCANCODE_BACKSPACE ,
  Tab = SDL_SCANCODE_TAB , Space = SDL_SCANCODE_SPACE , Minux = SDL_SCANCODE_MINUS , Equals = SDL_SCANCODE_EQUALS ,
  LeftBracket = SDL_SCANCODE_LEFTBRACKET , RightBracket = SDL_SCANCODE_RIGHTBRACKET , Backslash = SDL_SCANCODE_BACKSLASH , Nonoshash = 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 , PrintScreen = SDL_SCANCODE_PRINTSCREEN ,
  ScrollLock = SDL_SCANCODE_SCROLLLOCK , Pause = SDL_SCANCODE_PAUSE , Insert = SDL_SCANCODE_INSERT , Home = SDL_SCANCODE_HOME ,
  PageUp = SDL_SCANCODE_PAGEUP , Delete = SDL_SCANCODE_DELETE , End = SDL_SCANCODE_END , PageDown = SDL_SCANCODE_PAGEDOWN ,
  Right = SDL_SCANCODE_RIGHT , Left = SDL_SCANCODE_LEFT , Down = SDL_SCANCODE_DOWN , Up = SDL_SCANCODE_UP ,
  NumLockClear = SDL_SCANCODE_NUMLOCKCLEAR , KpDivide = SDL_SCANCODE_KP_DIVIDE , KpMultiply = SDL_SCANCODE_KP_MULTIPLY , KpMinus = SDL_SCANCODE_KP_MINUS ,
  KpPlus = SDL_SCANCODE_KP_PLUS , KpEnter = SDL_SCANCODE_KP_ENTER , Kp1 = SDL_SCANCODE_KP_1 , Kp2 = SDL_SCANCODE_KP_2 ,
  Kp3 = SDL_SCANCODE_KP_3 , Kp4 = SDL_SCANCODE_KP_4 , Kp5 = SDL_SCANCODE_KP_5 , Kp6 = SDL_SCANCODE_KP_6 ,
  Kp7 = SDL_SCANCODE_KP_7 , Kp8 = SDL_SCANCODE_KP_8 , Kp9 = SDL_SCANCODE_KP_9 , Kp0 = SDL_SCANCODE_KP_0 ,
  KpPeriod = SDL_SCANCODE_KP_PERIOD , NonusBackslash = SDL_SCANCODE_NONUSBACKSLASH , Application = SDL_SCANCODE_APPLICATION , Power = SDL_SCANCODE_POWER ,
  KpEquals = 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 , VolumeUp = SDL_SCANCODE_VOLUMEUP , VolumeDown = SDL_SCANCODE_VOLUMEDOWN , KpComma = SDL_SCANCODE_KP_COMMA ,
  KpEqualsSas400 = SDL_SCANCODE_KP_EQUALSAS400 , International1 = SDL_SCANCODE_INTERNATIONAL1 , International2 = SDL_SCANCODE_INTERNATIONAL2 , International3 = SDL_SCANCODE_INTERNATIONAL3 ,
  International4 = SDL_SCANCODE_INTERNATIONAL4 , International5 = SDL_SCANCODE_INTERNATIONAL5 , International6 = SDL_SCANCODE_INTERNATIONAL6 , International7 = SDL_SCANCODE_INTERNATIONAL7 ,
  International8 = SDL_SCANCODE_INTERNATIONAL8 , International9 = SDL_SCANCODE_INTERNATIONAL9 , Lang1 = SDL_SCANCODE_LANG1 , Lang2 = SDL_SCANCODE_LANG2 ,
  Lang3 = SDL_SCANCODE_LANG3 , Lang4 = SDL_SCANCODE_LANG4 , Lang5 = SDL_SCANCODE_LANG5 , Lang6 = SDL_SCANCODE_LANG6 ,
  Lang7 = SDL_SCANCODE_LANG7 , Lang8 = SDL_SCANCODE_LANG8 , Lang9 = SDL_SCANCODE_LANG9 , AltErase = SDL_SCANCODE_ALTERASE ,
  SysReq = SDL_SCANCODE_SYSREQ , Cancel = SDL_SCANCODE_CANCEL , Clear = SDL_SCANCODE_CLEAR , Prior = SDL_SCANCODE_PRIOR ,
  Return2 = SDL_SCANCODE_RETURN2 , Separator = SDL_SCANCODE_SEPARATOR , Out = SDL_SCANCODE_OUT , Oper = SDL_SCANCODE_OPER ,
  ClearAgain = SDL_SCANCODE_CLEARAGAIN , Crsel = SDL_SCANCODE_CRSEL , Exsel = SDL_SCANCODE_EXSEL , Kp00 = SDL_SCANCODE_KP_00 ,
  Kp000 = SDL_SCANCODE_KP_000 , ThousandsSeparator = SDL_SCANCODE_THOUSANDSSEPARATOR , DecimalSeparator = SDL_SCANCODE_DECIMALSEPARATOR , CurrencyUnit = SDL_SCANCODE_CURRENCYUNIT ,
  CurrencySubunit = SDL_SCANCODE_CURRENCYSUBUNIT , KpLeftParen = SDL_SCANCODE_KP_LEFTPAREN , KpRightParan = SDL_SCANCODE_KP_RIGHTPAREN , KpLeftBrace = SDL_SCANCODE_KP_LEFTBRACE ,
  KpRightBrace = SDL_SCANCODE_KP_RIGHTBRACE , KpTab = SDL_SCANCODE_KP_TAB , KpBackspace = SDL_SCANCODE_KP_BACKSPACE , KpA = SDL_SCANCODE_KP_A ,
  KpB = SDL_SCANCODE_KP_B , KpC = SDL_SCANCODE_KP_C , KpD = SDL_SCANCODE_KP_D , KpE = SDL_SCANCODE_KP_E ,
  KpF = SDL_SCANCODE_KP_F , KpXor = SDL_SCANCODE_KP_XOR , KpPower = SDL_SCANCODE_KP_POWER , KpPercent = SDL_SCANCODE_KP_PERCENT ,
  KpLess = SDL_SCANCODE_KP_LESS , KpGreater = SDL_SCANCODE_KP_GREATER , KpAmpersand = SDL_SCANCODE_KP_AMPERSAND , KpDoubleAmpersand = SDL_SCANCODE_KP_DBLAMPERSAND ,
  KpVerticalBar = SDL_SCANCODE_KP_VERTICALBAR , KpDoubleVerticalBar = SDL_SCANCODE_KP_DBLVERTICALBAR , KpColon = SDL_SCANCODE_KP_COLON , KpHash = SDL_SCANCODE_KP_HASH ,
  KpSpace = SDL_SCANCODE_KP_SPACE , KpAt = SDL_SCANCODE_KP_AT , KpExclam = SDL_SCANCODE_KP_EXCLAM , KpMemStore = SDL_SCANCODE_KP_MEMSTORE ,
  KpMemRecall = SDL_SCANCODE_KP_MEMRECALL , KpMemClear = SDL_SCANCODE_KP_MEMCLEAR , KpMemAdd = SDL_SCANCODE_KP_MEMADD , KpMemSubtract = SDL_SCANCODE_KP_MEMSUBTRACT ,
  KpMemMultiply = SDL_SCANCODE_KP_MEMMULTIPLY , KpMemDivide = SDL_SCANCODE_KP_MEMDIVIDE , KpPlusMinus = SDL_SCANCODE_KP_PLUSMINUS , KpClear = SDL_SCANCODE_KP_CLEAR ,
  KpClearEntry = SDL_SCANCODE_KP_CLEARENTRY , KpBinary = SDL_SCANCODE_KP_BINARY , KpOctal = SDL_SCANCODE_KP_OCTAL , KpDecimal = SDL_SCANCODE_KP_DECIMAL ,
  KpHexadecimal = 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 , MediaNextTrack = SDL_SCANCODE_MEDIA_NEXT_TRACK , MediaPreviousTrack = SDL_SCANCODE_MEDIA_PREVIOUS_TRACK ,
  MediaStop = SDL_SCANCODE_MEDIA_STOP , MediaPlay = SDL_SCANCODE_MEDIA_PLAY , MediaSelect = SDL_SCANCODE_MEDIA_SELECT , AcSearch = SDL_SCANCODE_AC_SEARCH ,
  AcHome = SDL_SCANCODE_AC_HOME , AcBack = SDL_SCANCODE_AC_BACK , AcForward = SDL_SCANCODE_AC_FORWARD , AcStop = SDL_SCANCODE_AC_STOP ,
  AcRefresh = SDL_SCANCODE_AC_REFRESH , AcBookmarks = SDL_SCANCODE_AC_BOOKMARKS , Eject = SDL_SCANCODE_MEDIA_EJECT , Sleep = SDL_SCANCODE_SLEEP ,
  AudioRewind = SDL_SCANCODE_MEDIA_REWIND , AudioFastForward = SDL_SCANCODE_MEDIA_FAST_FORWARD , SoftLeft = SDL_SCANCODE_SOFTLEFT , SoftRight = SDL_SCANCODE_SOFTRIGHT ,
  Call = SDL_SCANCODE_CALL , EndCall = SDL_SCANCODE_ENDCALL , NumKeys = 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 , NwseResize = SDL_SYSTEM_CURSOR_NWSE_RESIZE , NeswResize = SDL_SYSTEM_CURSOR_NESW_RESIZE , EwResize = SDL_SYSTEM_CURSOR_EW_RESIZE ,
  NsResize = SDL_SYSTEM_CURSOR_NS_RESIZE , Move = SDL_SYSTEM_CURSOR_MOVE , NotAllowed = SDL_SYSTEM_CURSOR_NOT_ALLOWED , Pointer = SDL_SYSTEM_CURSOR_POINTER ,
  NwResize = SDL_SYSTEM_CURSOR_NW_RESIZE , NResize = SDL_SYSTEM_CURSOR_N_RESIZE , NeResize = SDL_SYSTEM_CURSOR_NE_RESIZE , EResize = SDL_SYSTEM_CURSOR_E_RESIZE ,
  SEResize = SDL_SYSTEM_CURSOR_SE_RESIZE , SResize = SDL_SYSTEM_CURSOR_S_RESIZE , SWResize = SDL_SYSTEM_CURSOR_SW_RESIZE , WResize = SDL_SYSTEM_CURSOR_W_RESIZE ,
  NumCursors = 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 , LeftStick = SDL_GAMEPAD_BUTTON_LEFT_STICK ,
  RightStick = SDL_GAMEPAD_BUTTON_RIGHT_STICK , LeftShoulder = SDL_GAMEPAD_BUTTON_LEFT_SHOULDER , RightShoulder = SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER , DPadUp = SDL_GAMEPAD_BUTTON_DPAD_UP ,
  DPadDown = SDL_GAMEPAD_BUTTON_DPAD_DOWN , DPadLeft = SDL_GAMEPAD_BUTTON_DPAD_LEFT , DPadRight = SDL_GAMEPAD_BUTTON_DPAD_RIGHT , Misc1 = SDL_GAMEPAD_BUTTON_MISC1 ,
  RightPaddle1 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1 , LeftPaddle1 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE1 , RightPaddle2 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2 , LeftPaddle2 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE2 ,
  TouchPad = SDL_GAMEPAD_BUTTON_TOUCHPAD , NumControllerButtons = NUM_CONTROLLER_BUTTONS
}
 Mappings from SDL game controller buttons to ASW buttons. More...
 
enum class  ControllerAxis {
  LeftX = SDL_GAMEPAD_AXIS_LEFTX , LeftY = SDL_GAMEPAD_AXIS_LEFTY , RightX = SDL_GAMEPAD_AXIS_RIGHTX , RightY = SDL_GAMEPAD_AXIS_RIGHTY ,
  LeftTrigger = SDL_GAMEPAD_AXIS_LEFT_TRIGGER , RightTrigger = SDL_GAMEPAD_AXIS_RIGHT_TRIGGER , NumControllerAxes = NUM_CONTROLLER_AXES
}
 Mappings from SDL game controller axes to ASW axes. More...
 

Functions

bool getMouseButton (asw::input::MouseButton button)
 Check if a mouse button is down.
 
bool getMouseButtonDown (asw::input::MouseButton button)
 Check if a mouse button was pressed since the last update.
 
bool getMouseButtonUp (asw::input::MouseButton button)
 Check if a mouse button was released since the last update.
 
bool getKey (asw::input::Key key)
 Check if a key is down.
 
bool getKeyDown (asw::input::Key key)
 Check if a key was pressed since the last update.
 
bool getKeyUp (asw::input::Key key)
 Check if a key was released since the last update.
 
void setCursor (asw::input::CursorId cursor)
 Change cursor.
 
bool getControllerButton (int index, asw::input::ControllerButton button)
 Check if a controller button is down.
 
bool getControllerButtonDown (int index, asw::input::ControllerButton button)
 Check if a controller button was pressed since the last update.
 
bool getControllerButtonUp (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 = 6
 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:457

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

Definition at line 457 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:356

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

Definition at line 356 of file input.h.

◆ MouseState

Initial value:
struct MouseState {
bool anyPressed{false};
int lastPressed{-1};
float xChange{0.0F};
float yChange{0.0F};
Vec2<float> position{0.0F, 0.0F};
float z{0.0F};
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.0F}; float yChange{0.0F}; Vec2< float > position{0.0F, 0.0F}; float z{0.0F}; 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:311

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

Definition at line 311 of file input.h.

Enumeration Type Documentation

◆ ControllerAxis

enum class asw::input::ControllerAxis
strong

Mappings from SDL game controller axes to ASW axes.

Enumerator
LeftX 
LeftY 
RightX 
RightY 
LeftTrigger 
RightTrigger 
NumControllerAxes 

Definition at line 443 of file input.h.

◆ ControllerButton

enum class asw::input::ControllerButton
strong

Mappings from SDL game controller buttons to ASW buttons.

Enumerator
Back 
Guide 
Start 
LeftStick 
RightStick 
LeftShoulder 
RightShoulder 
DPadUp 
DPadDown 
DPadLeft 
DPadRight 
Misc1 
RightPaddle1 
LeftPaddle1 
RightPaddle2 
LeftPaddle2 
TouchPad 
NumControllerButtons 

Definition at line 410 of file input.h.

◆ CursorId

enum class asw::input::CursorId
strong

System cursor Ids.

Enumerator
Default 
Text 
Wait 
Crosshair 
Progress 
NwseResize 
NeswResize 
EwResize 
NsResize 
Move 
NotAllowed 
Pointer 
NwResize 
NResize 
NeResize 
EResize 
SEResize 
SResize 
SWResize 
WResize 
NumCursors 

Definition at line 279 of file input.h.

◆ Key

enum class asw::input::Key
strong

Enumeration of keys in the ASW library.

Enumerator
Unknown 
Num1 
Num2 
Num3 
Num4 
Num5 
Num6 
Num7 
Num8 
Num9 
Num0 
Return 
Escape 
Backspace 
Tab 
Space 
Minux 
Equals 
LeftBracket 
RightBracket 
Backslash 
Nonoshash 
Semicolon 
Apostrophe 
Grave 
Comma 
Period 
Slash 
Capslock 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
PrintScreen 
ScrollLock 
Pause 
Insert 
Home 
PageUp 
Delete 
End 
PageDown 
Right 
Left 
Down 
Up 
NumLockClear 
KpDivide 
KpMultiply 
KpMinus 
KpPlus 
KpEnter 
Kp1 
Kp2 
Kp3 
Kp4 
Kp5 
Kp6 
Kp7 
Kp8 
Kp9 
Kp0 
KpPeriod 
NonusBackslash 
Application 
Power 
KpEquals 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
Execute 
Help 
Menu 
Select 
Stop 
Again 
Undo 
Cut 
Copy 
Paste 
Find 
Mute 
VolumeUp 
VolumeDown 
KpComma 
KpEqualsSas400 
International1 
International2 
International3 
International4 
International5 
International6 
International7 
International8 
International9 
Lang1 
Lang2 
Lang3 
Lang4 
Lang5 
Lang6 
Lang7 
Lang8 
Lang9 
AltErase 
SysReq 
Cancel 
Clear 
Prior 
Return2 
Separator 
Out 
Oper 
ClearAgain 
Crsel 
Exsel 
Kp00 
Kp000 
ThousandsSeparator 
DecimalSeparator 
CurrencyUnit 
CurrencySubunit 
KpLeftParen 
KpRightParan 
KpLeftBrace 
KpRightBrace 
KpTab 
KpBackspace 
KpA 
KpB 
KpC 
KpD 
KpE 
KpF 
KpXor 
KpPower 
KpPercent 
KpLess 
KpGreater 
KpAmpersand 
KpDoubleAmpersand 
KpVerticalBar 
KpDoubleVerticalBar 
KpColon 
KpHash 
KpSpace 
KpAt 
KpExclam 
KpMemStore 
KpMemRecall 
KpMemClear 
KpMemAdd 
KpMemSubtract 
KpMemMultiply 
KpMemDivide 
KpPlusMinus 
KpClear 
KpClearEntry 
KpBinary 
KpOctal 
KpDecimal 
KpHexadecimal 
LCtrl 
LShift 
LAlt 
LGui 
RCtrl 
RShift 
RAlt 
RGui 
Mode 
MediaNextTrack 
MediaPreviousTrack 
MediaStop 
MediaPlay 
MediaSelect 
AcSearch 
AcHome 
AcBack 
AcForward 
AcStop 
AcRefresh 
AcBookmarks 
Eject 
Sleep 
AudioRewind 
AudioFastForward 
SoftLeft 
SoftRight 
Call 
EndCall 
NumKeys 

Definition at line 37 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 
NumMouseButtons 

Definition at line 27 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 110 of file input.cpp.

◆ getControllerButton()

bool asw::input::getControllerButton ( 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.

◆ getControllerButtonDown()

bool asw::input::getControllerButtonDown ( 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.

◆ getControllerButtonUp()

bool asw::input::getControllerButtonUp ( 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 105 of file input.cpp.

◆ getControllerCount()

int asw::input::getControllerCount ( )

@breif Get the number of controllers connected.

Definition at line 119 of file input.cpp.

◆ getControllerName()

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

@breif Get the name of a controller.

Definition at line 129 of file input.cpp.

◆ getKey()

bool asw::input::getKey ( 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.

◆ getKeyDown()

bool asw::input::getKeyDown ( 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.

◆ getKeyUp()

bool asw::input::getKeyUp ( 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.

◆ getMouseButton()

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

Check if a mouse 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.

◆ getMouseButtonDown()

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

Check if a mouse 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.

◆ getMouseButtonUp()

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

Check if a mouse 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.

◆ 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 115 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.

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 472 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 438 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 405 of file input.h.

◆ NUM_CURSORS

int asw::input::NUM_CURSORS = SDL_SYSTEM_CURSOR_COUNT
constexpr

Cursor count.

Definition at line 276 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 24 of file input.h.

◆ NUM_MOUSE_BUTTONS

int asw::input::NUM_MOUSE_BUTTONS = 6
constexpr

Number of mouse buttons in the ASW library.

Type defs

Definition at line 21 of file input.h.