Input API for Lily2D

Input abstraction for Gamepad, Keyboard and Mouse. Will support Steam Input in the future.

Distinct Types

DeviceId

type DeviceId = Int

Enums

DeviceType

enum DeviceType {

Generic

    Unknown
    KeyboardAndMouse
    GenericGamepad

Valve

    SteamController
    SteamDeckController

Sony / Playstation

    Ps4
    Ps5

Microsoft / Xbox

    Xbox360
    XboxOne
    Xinput

Nintendo / Switch

    SwitchJoyConPair
    SwitchJoyConSingle
    SwitchPro
}

The DeviceType is not 100% reliable, so you can not rely on getting the exact information about the device

ActionSource

enum ActionSource {

Generic

    GenericButton
    GenericA
    GenericB
    GenericX
    GenericY
    GenericCross
    GenericCircle
    GenericTriangle
    GenericSquare
    GenericLeftStickMove
    GenericLeftStickClick
    GenericRightStickMove
    GenericRightStickClick
    GenericLeftTriggerPull
    GenericLeftTriggerClick
    GenericRightTriggerPull
    GenericRightTriggerClick
    GenericLeftBumper
    GenericRightBumper
    GenericLeftDPadNorth
    GenericLeftDPadSouth
    GenericLeftDPadWest
    GenericLeftDPadEast
    GenericRightDPadNorth
    GenericRightDPadSouth
    GenericRightDPadWest
    GenericRightDPadEast

Keyboard & Mouse

    Key
    MouseLeft
    MouseRight
    MouseWheel
    CursorPosition

Valve

    SteamControllerA
    SteamControllerB
    SteamControllerX
    SteamControllerY
    SteamControllerLeftBumper
    SteamControllerRightBumper
    SteamControllerLeftGrip
    SteamControllerRightGrip
    SteamControllerStart
    SteamControllerBack
    SteamControllerLeftPadTouch
    SteamControllerLeftPadSwipe
    SteamControllerLeftPadClick
    SteamControllerLeftPadDPadNorth
    SteamControllerLeftPadDPadSouth
    SteamControllerLeftPadDPadWest
    SteamControllerLeftPadDPadEast
    SteamControllerRightPadTouch
    SteamControllerRightPadSwipe
    SteamControllerRightPadClick
    SteamControllerRightPadDPadNorth
    SteamControllerRightPadDPadSouth
    SteamControllerRightPadDPadWest
    SteamControllerRightPadDPadEast
    SteamControllerLeftTriggerPull
    SteamControllerLeftTriggerClick
    SteamControllerRightTriggerPull
    SteamControllerRightTriggerClick
    SteamControllerLeftStickMove
    SteamControllerLeftStickClick
    SteamControllerLeftStickDPadNorth
    SteamControllerLeftStickDPadSouth
    SteamControllerLeftStickDPadWest
    SteamControllerLeftStickDPadEast
    SteamControllerGyroMove
    SteamControllerGyroPitch
    SteamControllerGyroYaw
    SteamControllerGyroRoll
    SteamDeckA
    SteamDeckB
    SteamDeckX
    SteamDeckY
    SteamDeckL1
    SteamDeckR1
    SteamDeckMenu
    SteamDeckView
    SteamDeckLeftPadTouch
    SteamDeckLeftPadSwipe
    SteamDeckLeftPadClick
    SteamDeckLeftPadDPadNorth
    SteamDeckLeftPadDPadSouth
    SteamDeckLeftPadDPadWest
    SteamDeckLeftPadDPadEast
    SteamDeckRightPadTouch
    SteamDeckRightPadSwipe
    SteamDeckRightPadClick
    SteamDeckRightPadDPadNorth
    SteamDeckRightPadDPadSouth
    SteamDeckRightPadDPadWest
    SteamDeckRightPadDPadEast
    SteamDeckL2SoftPull
    SteamDeckL2
    SteamDeckR2SoftPull
    SteamDeckR2
    SteamDeckLeftStickMove
    SteamDeckL3
    SteamDeckLeftStickDPadNorth
    SteamDeckLeftStickDPadSouth
    SteamDeckLeftStickDPadWest
    SteamDeckLeftStickDPadEast
    SteamDeckLeftStickTouch
    SteamDeckRightStickMove
    SteamDeckR3
    SteamDeckRightStickDPadNorth
    SteamDeckRightStickDPadSouth
    SteamDeckRightStickDPadWest
    SteamDeckRightStickDPadEast
    SteamDeckRightStickTouch
    SteamDeckL4
    SteamDeckR4
    SteamDeckL5
    SteamDeckR5
    SteamDeckDPadMove
    SteamDeckDPadNorth
    SteamDeckDPadSouth
    SteamDeckDPadWest
    SteamDeckDPadEast
    SteamDeckGyroMove
    SteamDeckGyroPitch
    SteamDeckGyroYaw
    SteamDeckGyroRoll

Sony

    Ps4X
    Ps4Circle
    Ps4Triangle
    Ps4Square
    Ps4LeftBumper
    Ps4RightBumper
    Ps4Options
    Ps4Share
    Ps4LeftPadTouch
    Ps4LeftPadSwipe
    Ps4LeftPadClick
    Ps4LeftPadDPadNorth
    Ps4LeftPadDPadSouth
    Ps4LeftPadDPadWest
    Ps4LeftPadDPadEast
    Ps4RightPadTouch
    Ps4RightPadSwipe
    Ps4RightPadClick
    Ps4RightPadDPadNorth
    Ps4RightPadDPadSouth
    Ps4RightPadDPadWest
    Ps4RightPadDPadEast
    Ps4CenterPadTouch
    Ps4CenterPadSwipe
    Ps4CenterPadClick
    Ps4CenterPadDPadNorth
    Ps4CenterPadDPadSouth
    Ps4CenterPadDPadWest
    Ps4CenterPadDPadEast
    Ps4LeftTriggerPull
    Ps4LeftTriggerClick
    Ps4RightTriggerPull
    Ps4RightTriggerClick
    Ps4LeftStickMove
    Ps4LeftStickClick
    Ps4LeftStickDPadNorth
    Ps4LeftStickDPadSouth
    Ps4LeftStickDPadWest
    Ps4LeftStickDPadEast
    Ps4RightStickMove
    Ps4RightStickClick
    Ps4RightStickDPadNorth
    Ps4RightStickDPadSouth
    Ps4RightStickDPadWest
    Ps4RightStickDPadEast
    Ps4DPadNorth
    Ps4DPadSouth
    Ps4DPadWest
    Ps4DPadEast
    Ps4GyroMove
    Ps4GyroPitch
    Ps4GyroYaw
    Ps4GyroRoll
    Ps4DPadMove
    Ps5X
    Ps5Circle
    Ps5Triangle
    Ps5Square
    Ps5LeftBumper
    Ps5RightBumper
    Ps5Option
    Ps5Create
    Ps5Mute
    Ps5LeftPadTouch
    Ps5LeftPadSwipe
    Ps5LeftPadClick
    Ps5LeftPadDPadNorth
    Ps5LeftPadDPadSouth
    Ps5LeftPadDPadWest
    Ps5LeftPadDPadEast
    Ps5RightPadTouch
    Ps5RightPadSwipe
    Ps5RightPadClick
    Ps5RightPadDPadNorth
    Ps5RightPadDPadSouth
    Ps5RightPadDPadWest
    Ps5RightPadDPadEast
    Ps5CenterPadTouch
    Ps5CenterPadSwipe
    Ps5CenterPadClick
    Ps5CenterPadDPadNorth
    Ps5CenterPadDPadSouth
    Ps5CenterPadDPadWest
    Ps5CenterPadDPadEast
    Ps5LeftTriggerPull
    Ps5LeftTriggerClick
    Ps5RightTriggerPull
    Ps5RightTriggerClick
    Ps5LeftStickMove
    Ps5LeftStickClick
    Ps5LeftStickDPadNorth
    Ps5LeftStickDPadSouth
    Ps5LeftStickDPadWest
    Ps5LeftStickDPadEast
    Ps5RightStickMove
    Ps5RightStickClick
    Ps5RightStickDPadNorth
    Ps5RightStickDPadSouth
    Ps5RightStickDPadWest
    Ps5RightStickDPadEast
    Ps5DPadNorth
    Ps5DPadSouth
    Ps5DPadWest
    Ps5DPadEast
    Ps5GyroMove
    Ps5GyroPitch
    Ps5GyroYaw
    Ps5GyroRoll
    Ps5DPadMove
    Ps5LeftGrip
    Ps5RightGrip
    Ps5LeftFn
    Ps5RightFn

Microsoft

    XboxOneA
    XboxOneB
    XboxOneX
    XboxOneY
    XboxOneLeftBumper
    XboxOneRightBumper
    XboxOneMenu
    XboxOneView
    XboxOneLeftTriggerPull
    XboxOneLeftTriggerClick
    XboxOneRightTriggerPull
    XboxOneRightTriggerClick
    XboxOneLeftStickMove
    XboxOneLeftStickClick
    XboxOneLeftStickDPadNorth
    XboxOneLeftStickDPadSouth
    XboxOneLeftStickDPadWest
    XboxOneLeftStickDPadEast
    XboxOneRightStickMove
    XboxOneRightStickClick
    XboxOneRightStickDPadNorth
    XboxOneRightStickDPadSouth
    XboxOneRightStickDPadWest
    XboxOneRightStickDPadEast
    XboxOneDPadNorth
    XboxOneDPadSouth
    XboxOneDPadWest
    XboxOneDPadEast
    XboxOneDPadMove
    XboxOneLeftGripLower
    XboxOneLeftGripUpper
    XboxOneRightGripLower
    XboxOneRightGripUpper
    Xbox360A
    Xbox360B
    Xbox360X
    Xbox360Y
    Xbox360LeftBumper
    Xbox360RightBumper
    Xbox360Start
    Xbox360Back
    Xbox360LeftTriggerPull
    Xbox360LeftTriggerClick
    Xbox360RightTriggerPull
    Xbox360RightTriggerClick
    Xbox360LeftStickMove
    Xbox360LeftStickClick
    Xbox360LeftStickDPadNorth
    Xbox360LeftStickDPadSouth
    Xbox360LeftStickDPadWest
    Xbox360LeftStickDPadEast
    Xbox360RightStickMove
    Xbox360RightStickClick
    Xbox360RightStickDPadNorth
    Xbox360RightStickDPadSouth
    Xbox360RightStickDPadWest
    Xbox360RightStickDPadEast
    Xbox360DPadNorth
    Xbox360DPadSouth
    Xbox360DPadWest
    Xbox360DPadEast
    Xbox360DPadMove

Nintendo

    SwitchA
    SwitchB
    SwitchX
    SwitchY
    SwitchLeftBumper
    SwitchRightBumper
    SwitchPlus
    SwitchMinus
    SwitchCapture
    SwitchLeftTriggerPull
    SwitchLeftTriggerClick
    SwitchRightTriggerPull
    SwitchRightTriggerClick
    SwitchLeftStickMove
    SwitchLeftStickClick
    SwitchLeftStickDPadNorth
    SwitchLeftStickDPadSouth
    SwitchLeftStickDPadWest
    SwitchLeftStickDPadEast
    SwitchRightStickMove
    SwitchRightStickClick
    SwitchRightStickDPadNorth
    SwitchRightStickDPadSouth
    SwitchRightStickDPadWest
    SwitchRightStickDPadEast
    SwitchDPadNorth
    SwitchDPadSouth
    SwitchDPadWest
    SwitchDPadEast
    SwitchProGyroMove
    SwitchProGyroPitch
    SwitchProGyroYaw
    SwitchProGyroRoll
    SwitchRightGyroMove
    SwitchRightGyroPitch
    SwitchRightGyroYaw
    SwitchRightGyroRoll
    SwitchLeftGyroMove
    SwitchLeftGyroPitch
    SwitchLeftGyroYaw
    SwitchLeftGyroRoll
    SwitchLeftGripLower
    SwitchLeftGripUpper
    SwitchRightGripLower
    SwitchRightGripUpper
    SwitchJoyConButtonN
    SwitchJoyConButtonE
    SwitchJoyConButtonS
    SwitchJoyConButtonW
}

Functions

get_active_devices

fn get_active_devices() -> Vec<DeviceId>

set_active_action_set

fn set_active_action_set(
  action_set_type: TypeId,
  device_id: DeviceId
)

get

fn get(device_id: DeviceId) -> Any

get_device_type

fn get_device_type(device_id: DeviceId) -> DeviceType

get_action_source

fn get_action_source(
  action_set_type: TypeId,
  action_name: String,
  device_id: DeviceId
) -> ActionSource