Getxpad
 
Reads Xbox-style controller state from the graphics library.

Syntax

Declare Function Getxpad ( ByVal id As Long, ByRef buttons As Integer = 0, ByRef leftx As Single = 0, ByRef lefty As Single = 0, ByRef rightx As Single = 0, ByRef righty As Single = 0, ByRef lefttrigger As Single = 0, ByRef righttrigger As Single = 0, ByRef dpad As Integer = 0 ) As Long

Usage

status = Getxpad( id[, buttons[, leftx[, lefty[, rightx[, righty[, lefttrigger[, righttrigger[, dpad]]]]]]]] )

Parameters

id
The controller number to query. The valid range is platform dependent.
buttons
A bit mask of XPAD_BUTTON_* values.
leftx, lefty, rightx, righty
Analog stick positions in the range -1.0 to 1.0.
lefttrigger, righttrigger
Trigger positions in the range 0.0 to 1.0.
dpad
A bit mask of XPAD_DPAD_* values.

Return Value

Returns one of the XPAD_STATUS_* constants from fbgfx.bi:
    • XPAD_STATUS_MISSING (0)
    • XPAD_STATUS_CONNECTED (1)
    • XPAD_STATUS_DISCONNECTED (2)

Description

Getxpad provides a stable Xbox-style controller layout across supported backends. It is separate from GetJoystick because modern gamepads have a conventional button, trigger, stick, and d-pad shape that maps poorly to a generic axis list.

The named XPAD_BUTTON_*, XPAD_DPAD_*, and XPAD_STATUS_* constants are declared in fbgfx.bi under the FB namespace. The function itself is an intrinsic and does not require an include file to call.

Example

See examples/xpad/first-pad.bas, examples/xpad/active-state.bas, and examples/xpad/stick-view.bas.

Dialect Differences

  • Not available in the -lang qb dialect unless referenced with the alias __Getxpad.

Differences from QB

  • New to FreeBASIC.

See also