ReXGlue SDK
Loading...
Searching...
No Matches
input_keys.h File Reference
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
#include <rex/bit.h>
#include <rex/platform.h>
#include <rex/result.h>
#include <rex/types.h>

Go to the source code of this file.

Classes

struct  rex::PointerState
struct  rex::PointerDelta
struct  rex::InputEvent
struct  rex::InputSource
struct  rex::KeyChord

Namespaces

namespace  rex

Enumerations

enum class  rex::VirtualKey : u16 {
  rex::kNone , kLButton = 0x01 , kRButton = 0x02 , rex::kCancel = 0x03 ,
  kMButton = 0x04 , rex::kXButton1 = 0x05 , rex::kXButton2 = 0x06 , kBack = 0x08 ,
  kTab = 0x09 , kClear = 0x0C , kReturn = 0x0D , kWheelUp = 0x0E ,
  kWheelDown = 0x0F , rex::kShift = 0x10 , kControl = 0x11 , rex::kMenu = 0x12 ,
  kPause = 0x13 , rex::kCapital = 0x14 , rex::kKana = 0x15 , rex::kHangeul = 0x15 ,
  rex::kHangul = 0x15 , kIMEOn = 0x16 , kJunja = 0x17 , kFinal = 0x18 ,
  rex::kHanja = 0x19 , rex::kKanji = 0x19 , kIMEOff = 0x1A , kEscape = 0x1B ,
  kConvert = 0x1C , kNonConvert = 0x1D , kAccept = 0x1E , rex::kModeChange = 0x1F ,
  kSpace = 0x20 , rex::kPrior = 0x21 , rex::kNext = 0x22 , kEnd = 0x23 ,
  kHome = 0x24 , kLeft = 0x25 , kUp = 0x26 , kRight = 0x27 ,
  kDown = 0x28 , kSelect = 0x29 , kPrint = 0x2A , kExecute = 0x2B ,
  rex::kSnapshot = 0x2C , kInsert = 0x2D , kDelete = 0x2E , kHelp = 0x2F ,
  Digit keys 0 to 9, equal to their ASCII codes 0x30 to 0x39. , k0 = 0x30 , k1 = 0x31 , k2 = 0x32 ,
  k3 = 0x33 , k4 = 0x34 , k5 = 0x35 , k6 = 0x36 ,
  k7 = 0x37 , k8 = 0x38 , k9 = 0x39 , Letter keys A to Z, equal to their uppercase ASCII codes 0x41 to 0x5A. ,
  kA = 0x41 , kB = 0x42 , kC = 0x43 , kD = 0x44 ,
  kE = 0x45 , kF = 0x46 , kG = 0x47 , kH = 0x48 ,
  kI = 0x49 , kJ = 0x4A , kK = 0x4B , kL = 0x4C ,
  kM = 0x4D , kN = 0x4E , kO = 0x4F , kP = 0x50 ,
  kQ = 0x51 , kR = 0x52 , kS = 0x53 , kT = 0x54 ,
  kU = 0x55 , kV = 0x56 , kW = 0x57 , kX = 0x58 ,
  kY = 0x59 , kZ = 0x5A , kLWin = 0x5B , kRWin = 0x5C ,
  rex::kApps = 0x5D , kSleep = 0x5F , kNumpad0 = 0x60 , kNumpad1 = 0x61 ,
  kNumpad2 = 0x62 , kNumpad3 = 0x63 , kNumpad4 = 0x64 , kNumpad5 = 0x65 ,
  kNumpad6 = 0x66 , kNumpad7 = 0x67 , kNumpad8 = 0x68 , kNumpad9 = 0x69 ,
  rex::kMultiply = 0x6A , rex::kAdd = 0x6B , rex::kSeparator = 0x6C , rex::kSubtract = 0x6D ,
  rex::kDecimal = 0x6E , rex::kDivide = 0x6F , kF1 = 0x70 , kF2 = 0x71 ,
  kF3 = 0x72 , kF4 = 0x73 , kF5 = 0x74 , kF6 = 0x75 ,
  kF7 = 0x76 , kF8 = 0x77 , kF9 = 0x78 , kF10 = 0x79 ,
  kF11 = 0x7A , kF12 = 0x7B , kF13 = 0x7C , kF14 = 0x7D ,
  kF15 = 0x7E , kF16 = 0x7F , kF17 = 0x80 , kF18 = 0x81 ,
  kF19 = 0x82 , kF20 = 0x83 , kF21 = 0x84 , kF22 = 0x85 ,
  kF23 = 0x86 , kF24 = 0x87 , rex::kNavigationView = 0x88 , kNavigationMenu = 0x89 ,
  kNavigationUp = 0x8A , kNavigationDown = 0x8B , kNavigationLeft = 0x8C , kNavigationRight = 0x8D ,
  kNavigationAccept = 0x8E , kNavigationCancel = 0x8F , kNumLock = 0x90 , rex::kScroll = 0x91 ,
  rex::kOemNecEqual = 0x92 , rex::kOemFjJisho = 0x92 , rex::kOemFjMasshou = 0x93 , rex::kOemFjTouroku = 0x94 ,
  rex::kOemFjLOya = 0x95 , rex::kOemFjROya = 0x96 , rex::kLShift = 0xA0 , kRShift = 0xA1 ,
  kLControl = 0xA2 , kRControl = 0xA3 , kLMenu = 0xA4 , kRMenu = 0xA5 ,
  kBrowserBack = 0xA6 , kBrowserForward = 0xA7 , kBrowserRefresh = 0xA8 , kBrowserStop = 0xA9 ,
  kBrowserSearch = 0xAA , kBrowserFavorites = 0xAB , kBrowserHome = 0xAC , kVolumeMute = 0xAD ,
  kVolumeDown = 0xAE , kVolumeUp = 0xAF , kMediaNextTrack = 0xB0 , kMediaPrevTrack = 0xB1 ,
  kMediaStop = 0xB2 , kMediaPlayPause = 0xB3 , kLaunchMail = 0xB4 , kLaunchMediaSelect = 0xB5 ,
  kLaunchApp1 = 0xB6 , kLaunchApp2 = 0xB7 , rex::kOem1 = 0xBA , rex::kOemPlus = 0xBB ,
  rex::kOemComma = 0xBC , rex::kOemMinus = 0xBD , rex::kOemPeriod = 0xBE , rex::kOem2 = 0xBF ,
  rex::kOem3 = 0xC0 , rex::kXboxOneGamepadA = 0xC3 , kXboxOneGamepadB = 0xC4 , kXboxOneGamepadX = 0xC5 ,
  kXboxOneGamepadY = 0xC6 , kXboxOneGamepadRightShoulder = 0xC7 , kXboxOneGamepadLeftShoulder = 0xC8 , kXboxOneGamepadLeftTrigger = 0xC9 ,
  kXboxOneGamepadRightTrigger = 0xCA , kXboxOneGamepadDpadUp = 0xCB , kXboxOneGamepadDpadDown = 0xCC , kXboxOneGamepadDpadLeft = 0xCD ,
  kXboxOneGamepadDpadRight = 0xCE , kXboxOneGamepadMenu = 0xCF , kXboxOneGamepadView = 0xD0 , kXboxOneGamepadLeftThumbstickButton = 0xD1 ,
  kXboxOneGamepadRightThumbstickButton = 0xD2 , kXboxOneGamepadLeftThumbstickUp = 0xD3 , kXboxOneGamepadLeftThumbstickDown = 0xD4 , kXboxOneGamepadLeftThumbstickRight = 0xD5 ,
  kXboxOneGamepadLeftThumbstickLeft = 0xD6 , kXboxOneGamepadRightThumbstickUp = 0xD7 , kXboxOneGamepadRightThumbstickDown = 0xD8 , kXboxOneGamepadRightThumbstickRight = 0xD9 ,
  kXboxOneGamepadRightThumbstickLeft = 0xDA , rex::kOem4 = 0xDB , rex::kOem5 = 0xDC , rex::kOem6 = 0xDD ,
  rex::kOem7 = 0xDE , rex::kOem8 = 0xDF , rex::kOemAx = 0xE1 , rex::kOem102 = 0xE2 ,
  rex::kIcoHelp = 0xE3 , rex::kIco00 = 0xE4 , kProcessKey = 0xE5 , rex::kIcoClear = 0xE6 ,
  rex::kPacket = 0xE7 , rex::kOemReset = 0xE9 , kOemJump = 0xEA , kOemPa1 = 0xEB ,
  kOemPa2 = 0xEC , kOemPa3 = 0xED , kOemWsCtrl = 0xEE , kOemCuSel = 0xEF ,
  kOemAttn = 0xF0 , kOemFinish = 0xF1 , kOemCopy = 0xF2 , kOemAuto = 0xF3 ,
  rex::kOemEnlW = 0xF4 , kOemBackTab = 0xF5 , kAttn = 0xF6 , kCrSel = 0xF7 ,
  kExSel = 0xF8 , kErEof = 0xF9 , kPlay = 0xFA , kZoom = 0xFB ,
  rex::kNoName = 0xFC , kPa1 = 0xFD , rex::kOemClear = 0xFE , rex::kXInputPadA = 0x5800 ,
  kXInputPadB = 0x5801 , kXInputPadX = 0x5802 , kXInputPadY = 0x5803 , kXInputPadRShoulder = 0x5804 ,
  kXInputPadLShoulder = 0x5805 , kXInputPadLTrigger = 0x5806 , kXInputPadRTrigger = 0x5807 , kXInputPadDPadUp = 0x5810 ,
  kXInputPadDPadDown = 0x5811 , kXInputPadDPadLeft = 0x5812 , kXInputPadDPadRight = 0x5813 , kXInputPadStart = 0x5814 ,
  kXInputPadBack = 0x5815 , kXInputPadLThumbPress = 0x5816 , kXInputPadRThumbPress = 0x5817 , kXInputPadLThumbUp = 0x5820 ,
  kXInputPadLThumbDown = 0x5821 , kXInputPadLThumbRight = 0x5822 , kXInputPadLThumbLeft = 0x5823 , kXInputPadLThumbUpLeft = 0x5824 ,
  kXInputPadLThumbUpRight = 0x5825 , kXInputPadLThumbDownRight = 0x5826 , kXInputPadLThumbDownLeft = 0x5827 , kXInputPadRThumbUp = 0x5830 ,
  kXInputPadRThumbDown = 0x5831 , kXInputPadRThumbRight = 0x5832 , kXInputPadRThumbLeft = 0x5833 , kXInputPadRThumbUpLeft = 0x5834 ,
  kXInputPadRThumbUpRight = 0x5835 , kXInputPadRThumbDownRight = 0x5836 , kXInputPadRThumbDownLeft = 0x5837
}
enum class  rex::PointerMode : u8 { rex::kFree , rex::kHidden , rex::kLocked }
enum class  rex::MouseButton : u8 {
  kLeft , kRight , kMiddle , kX1 ,
  kX2 , rex::kNone
}
enum class  KeyModifiers : u8 { kNone = 0 , kShift = 1 , kCtrl = 2 , kAlt = 4 }
enum class  rex::InputSourceType : u8 { rex::kKey , rex::kMouseWheel , rex::kPadButton , rex::kPadAxes }
enum class  rex::PadInput : u8 {
  kDpadUp , kDpadDown , kDpadLeft , kDpadRight ,
  kStart , kBack , kLeftStickPress , kRightStickPress ,
  kA , kB , kX , kY ,
  kLeftTrigger , kRightTrigger , kLeftShoulder , kRightShoulder ,
  kLeftStickUp , kLeftStickDown , kLeftStickRight , kLeftStickLeft ,
  kRightStickUp , kRightStickDown , kRightStickRight , kRightStickLeft
}
enum class  PadAxes : u8 { kNone , kLeft , kRight }

Functions

VirtualKey rex::ParseVirtualKey (std::string_view name)
std::string rex::VirtualKeyToString (VirtualKey key)
constexpr bool rex::IsSameInput (const InputSource &left, const InputSource &right)
std::string_view rex::GetPadButtonName (PadInput button)
Result< InputSource > rex::ParseInputSource (std::string_view text)
std::string rex::InputSourceToString (const InputSource &source)
Result< KeyChord > rex::ParseKeyChord (std::string_view text)
Result< std::vector< KeyChord > > rex::ParseKeyChordList (std::string_view text)
std::string rex::KeyChordToString (KeyChord chord)

Variables

template<>
constexpr bool rex::is_flags_enum< KeyModifiers > = true
constexpr u8 rex::kPadButtonCount = 24

Detailed Description

Xenia : Xbox 360 Emulator Research Project *

Copyright 2021 Ben Vanik. All rights reserved. * Released under the BSD license - see LICENSE in the root for more details. *

Modified
Tom Clay, 2026 - Adapted for ReXGlue runtime
License
BSD 3-Clause License See LICENSE file in the project root for full license text.