Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Input.h File Reference

Go to the source code of this file.

Classes

struct  Divide::Input::JoystickData
 
struct  Divide::Input::JoystickElement
 
struct  Divide::Input::MouseAxis
 
struct  Divide::Input::MouseState
 

Namespaces

namespace  Divide
 Handle console commands that start with a forward slash.
 
namespace  Divide::Input
 

Macros

#define DVD_INPUT_H_
 

Enumerations

enum class  Divide::Input::Joystick : U8 {
  Divide::Input::JOYSTICK_1 = 0 , Divide::Input::JOYSTICK_2 = 1 , Divide::Input::JOYSTICK_3 = 2 , Divide::Input::JOYSTICK_4 = 3 ,
  Divide::Input::JOYSTICK_5 = 4 , Divide::Input::JOYSTICK_6 = 5 , Divide::Input::JOYSTICK_7 = 6 , Divide::Input::JOYSTICK_8 = 7 ,
  Divide::Input::JOYSTICK_9 = 8 , Divide::Input::JOYSTICK_10 = 9 , Divide::Input::COUNT
}
 Points to the position of said joystick in the vector. More...
 
enum class  Divide::Input::JoystickElementType : U8 {
  Divide::Input::POV_MOVE = 0 , Divide::Input::AXIS_MOVE , Divide::Input::BALL_MOVE , Divide::Input::BUTTON_PRESS ,
  Divide::Input::JOY_ADD_REMOVE , Divide::Input::JOY_REMAP , Divide::Input::COUNT
}
 
enum class  Divide::Input::JoystickPovDirection : U8 {
  Divide::Input::UP = toBit(1) , Divide::Input::DOWN = toBit(2) , Divide::Input::LEFT = toBit(3) , Divide::Input::RIGHT = toBit(4) ,
  Divide::Input::CENTERED = toBit(5)
}
 
enum class  Divide::Input::MouseButton : U8 {
  Divide::Input::MB_Left = 0 , Divide::Input::MB_Right , Divide::Input::MB_Middle , Divide::Input::MB_Button3 ,
  Divide::Input::MB_Button4 , Divide::Input::MB_Button5 , Divide::Input::MB_Button6 , Divide::Input::MB_Button7 ,
  Divide::Input::COUNT
}
 
enum class  Divide::Input::KeyModifier : U16 {
  Divide::Input::LSHIFT = toBit(1) , Divide::Input::RSHIFT = toBit(2) , Divide::Input::LCTRL = toBit(3) , Divide::Input::RCTRL = toBit(4) ,
  Divide::Input::LALT = toBit(5) , Divide::Input::RALT = toBit(6) , Divide::Input::LGUI = toBit(7) , Divide::Input::RGUI = toBit(8) ,
  Divide::Input::NUM = toBit(9) , Divide::Input::CAPS = toBit(10) , Divide::Input::MODE = toBit(11)
}
 
enum class  Divide::Input::KeyCode : U8 {
  Divide::Input::KC_UNASSIGNED = 0x00 , Divide::Input::KC_ESCAPE = 0x01 , Divide::Input::KC_1 = 0x02 , Divide::Input::KC_2 = 0x03 ,
  Divide::Input::KC_3 = 0x04 , Divide::Input::KC_4 = 0x05 , Divide::Input::KC_5 = 0x06 , Divide::Input::KC_6 = 0x07 ,
  Divide::Input::KC_7 = 0x08 , Divide::Input::KC_8 = 0x09 , Divide::Input::KC_9 = 0x0A , Divide::Input::KC_0 = 0x0B ,
  Divide::Input::KC_MINUS = 0x0C , Divide::Input::KC_EQUALS = 0x0D , Divide::Input::KC_BACK = 0x0E , Divide::Input::KC_TAB = 0x0F ,
  Divide::Input::KC_Q = 0x10 , Divide::Input::KC_W = 0x11 , Divide::Input::KC_E = 0x12 , Divide::Input::KC_R = 0x13 ,
  Divide::Input::KC_T = 0x14 , Divide::Input::KC_Y = 0x15 , Divide::Input::KC_U = 0x16 , Divide::Input::KC_I = 0x17 ,
  Divide::Input::KC_O = 0x18 , Divide::Input::KC_P = 0x19 , Divide::Input::KC_LBRACKET = 0x1A , Divide::Input::KC_RBRACKET = 0x1B ,
  Divide::Input::KC_RETURN = 0x1C , Divide::Input::KC_LCONTROL = 0x1D , Divide::Input::KC_A = 0x1E , Divide::Input::KC_S = 0x1F ,
  Divide::Input::KC_D = 0x20 , Divide::Input::KC_F = 0x21 , Divide::Input::KC_G = 0x22 , Divide::Input::KC_H = 0x23 ,
  Divide::Input::KC_J = 0x24 , Divide::Input::KC_K = 0x25 , Divide::Input::KC_L = 0x26 , Divide::Input::KC_SEMICOLON = 0x27 ,
  Divide::Input::KC_APOSTROPHE = 0x28 , Divide::Input::KC_GRAVE = 0x29 , Divide::Input::KC_LSHIFT = 0x2A , Divide::Input::KC_BACKSLASH = 0x2B ,
  Divide::Input::KC_Z = 0x2C , Divide::Input::KC_X = 0x2D , Divide::Input::KC_C = 0x2E , Divide::Input::KC_V = 0x2F ,
  Divide::Input::KC_B = 0x30 , Divide::Input::KC_N = 0x31 , Divide::Input::KC_M = 0x32 , Divide::Input::KC_COMMA = 0x33 ,
  Divide::Input::KC_PERIOD = 0x34 , Divide::Input::KC_SLASH = 0x35 , Divide::Input::KC_RSHIFT = 0x36 , Divide::Input::KC_MULTIPLY = 0x37 ,
  Divide::Input::KC_LMENU = 0x38 , Divide::Input::KC_SPACE = 0x39 , Divide::Input::KC_CAPITAL = 0x3A , Divide::Input::KC_F1 = 0x3B ,
  Divide::Input::KC_F2 = 0x3C , Divide::Input::KC_F3 = 0x3D , Divide::Input::KC_F4 = 0x3E , Divide::Input::KC_F5 = 0x3F ,
  Divide::Input::KC_F6 = 0x40 , Divide::Input::KC_F7 = 0x41 , Divide::Input::KC_F8 = 0x42 , Divide::Input::KC_F9 = 0x43 ,
  Divide::Input::KC_F10 = 0x44 , Divide::Input::KC_NUMLOCK = 0x45 , Divide::Input::KC_SCROLL = 0x46 , Divide::Input::KC_NUMPAD7 = 0x47 ,
  Divide::Input::KC_NUMPAD8 = 0x48 , Divide::Input::KC_NUMPAD9 = 0x49 , Divide::Input::KC_SUBTRACT = 0x4A , Divide::Input::KC_NUMPAD4 = 0x4B ,
  Divide::Input::KC_NUMPAD5 = 0x4C , Divide::Input::KC_NUMPAD6 = 0x4D , Divide::Input::KC_ADD = 0x4E , Divide::Input::KC_NUMPAD1 = 0x4F ,
  Divide::Input::KC_NUMPAD2 = 0x50 , Divide::Input::KC_NUMPAD3 = 0x51 , Divide::Input::KC_NUMPAD0 = 0x52 , Divide::Input::KC_DECIMAL = 0x53 ,
  Divide::Input::KC_OEM_102 = 0x56 , Divide::Input::KC_F11 = 0x57 , Divide::Input::KC_F12 = 0x58 , Divide::Input::KC_F13 = 0x64 ,
  Divide::Input::KC_F14 = 0x65 , Divide::Input::KC_F15 = 0x66 , Divide::Input::KC_KANA = 0x70 , Divide::Input::KC_ABNT_C1 = 0x73 ,
  Divide::Input::KC_CONVERT = 0x79 , Divide::Input::KC_NOCONVERT = 0x7B , Divide::Input::KC_YEN = 0x7D , Divide::Input::KC_ABNT_C2 = 0x7E ,
  Divide::Input::KC_NUMPADEQUALS = 0x8D , Divide::Input::KC_PREVTRACK = 0x90 , Divide::Input::KC_AT = 0x91 , Divide::Input::KC_COLON = 0x92 ,
  Divide::Input::KC_UNDERLINE = 0x93 , Divide::Input::KC_KANJI = 0x94 , Divide::Input::KC_STOP = 0x95 , Divide::Input::KC_AX = 0x96 ,
  Divide::Input::KC_UNLABELED = 0x97 , Divide::Input::KC_NEXTTRACK = 0x99 , Divide::Input::KC_NUMPADENTER = 0x9C , Divide::Input::KC_RCONTROL = 0x9D ,
  Divide::Input::KC_MUTE = 0xA0 , Divide::Input::KC_CALCULATOR = 0xA1 , Divide::Input::KC_PLAYPAUSE = 0xA2 , Divide::Input::KC_MEDIASTOP = 0xA4 ,
  Divide::Input::KC_TWOSUPERIOR = 0xAA , Divide::Input::KC_VOLUMEDOWN = 0xAE , Divide::Input::KC_VOLUMEUP = 0xB0 , Divide::Input::KC_WEBHOME = 0xB2 ,
  Divide::Input::KC_NUMPADCOMMA = 0xB3 , Divide::Input::KC_DIVIDE = 0xB5 , Divide::Input::KC_SYSRQ = 0xB7 , Divide::Input::KC_RMENU = 0xB8 ,
  Divide::Input::KC_PAUSE = 0xC5 , Divide::Input::KC_HOME = 0xC7 , Divide::Input::KC_UP = 0xC8 , Divide::Input::KC_PGUP = 0xC9 ,
  Divide::Input::KC_LEFT = 0xCB , Divide::Input::KC_RIGHT = 0xCD , Divide::Input::KC_END = 0xCF , Divide::Input::KC_DOWN = 0xD0 ,
  Divide::Input::KC_PGDOWN = 0xD1 , Divide::Input::KC_INSERT = 0xD2 , Divide::Input::KC_DELETE = 0xD3 , Divide::Input::KC_LWIN = 0xDB ,
  Divide::Input::KC_RWIN = 0xDC , Divide::Input::KC_APPS = 0xDD , Divide::Input::KC_POWER = 0xDE , Divide::Input::KC_SLEEP = 0xDF ,
  Divide::Input::KC_WAKE = 0xE3 , Divide::Input::KC_WEBSEARCH = 0xE5 , Divide::Input::KC_WEBFAVORITES = 0xE6 , Divide::Input::KC_WEBREFRESH = 0xE7 ,
  Divide::Input::KC_WEBSTOP = 0xE8 , Divide::Input::KC_WEBFORWARD = 0xE9 , Divide::Input::KC_WEBBACK = 0xEA , Divide::Input::KC_MYCOMPUTER = 0xEB ,
  Divide::Input::KC_MAIL = 0xEC , Divide::Input::KC_MEDIASELECT = 0xED , Divide::Input::KC_PRINTSCREEN = 0xEE
}
 
enum class  Divide::Input::InputState : U8 { Divide::Input::PRESSED = 0 , Divide::Input::RELEASED , Divide::Input::COUNT }
 

Functions

SDL_Keycode Divide::Input::SDLKeyCodeFromKey (KeyCode code) noexcept
 
KeyCode Divide::Input::KeyCodeFromSDLKey (SDL_Keycode code) noexcept
 
KeyCode Divide::Input::KeyCodeByName (const char *keyName) noexcept
 
MouseButton Divide::Input::mouseButtonByName (const string &buttonName)
 
JoystickElement Divide::Input::joystickElementByName (const string &elementName)
 
InputState Divide::Input::GetKeyState (U8 deviceIndex, KeyCode key) noexcept
 
InputState Divide::Input::GetMouseButtonState (U8 deviceIndex, MouseButton button) noexcept
 
InputState Divide::Input::GetJoystickElementState (Joystick deviceIndex, JoystickElement element) noexcept
 

Macro Definition Documentation

◆ DVD_INPUT_H_

#define DVD_INPUT_H_

Definition at line 34 of file Input.h.