NDEVR
API Documentation
XBoxController

Provides a ControllerInterface implementation for Xbox controllers using the XInput API. More...

Inheritance diagram for XBoxController:
[legend]
Collaboration diagram for XBoxController:
[legend]

Public Member Functions

 XBoxController (uint04 index)
 Constructs an XBoxController for the given XInput device index.
virtual Buffer< Battery * > batteries () const override
 Returns the battery objects associated with this controller.
virtual Buffer< ControlButtoncenterButtons () const override
 Returns the center button states (e.g., start, back, guide).
virtual RGBColor color () const
 Returns the current color of the controller.
Buffer< HapticFeedbackhapticFeedback () const override
 Returns haptic feedback capabilities.
virtual UUID id () const override
 Returns the unique identifier for this controller.
virtual Buffer< ControlButtonleftButtons () const override
 Returns the left-side button states.
virtual Buffer< ControlStickleftSticks () const override
 Returns the left analog stick state.
virtual Buffer< ControlTriggerleftTriggers () const override
 Returns the left trigger state.
virtual bool requestColor (const RGBColor &color) override
 Requests a color change on the controller (not supported on Xbox controllers).
virtual bool requestVibrating (fltp08 left, fltp08 right) override
 Requests vibration on the controller motors.
virtual Buffer< ControlButtonrightButtons () const override
 Returns the right-side button states.
virtual Buffer< ControlStickrightSticks () const override
 Returns the right analog stick state.
virtual Buffer< ControlTriggerrightTriggers () const override
 Returns the right trigger state.
void updateBattery ()
 Updates the battery status information for this controller.
void updateState () override
 Polls the controller for the latest input state.
virtual Vector< 2, fltp08vibration () const override
 Returns the current vibration intensity for left and right motors.
Public Member Functions inherited from ControllerInterface
void onUpdated ()
 Emitted after the controller state has been updated.
virtual void setWindowInstance (WindowInstance *)
 Associates a window instance with this controller for input routing.

Protected Attributes

uint04 failure_count = 0
 Consecutive polling failure count.
Batterym_battery
 The battery associated with this controller.
bool m_has_battery = true
 Whether this controller reports battery information.
UUID m_id
 The unique identifier for this controller instance.
uint04 m_index
 The XInput device index (0-3).
XINPUT_STATE m_input_state
 The current input state from XInput.
bool m_needs_input_update = false
 Whether the input state needs to be refreshed.
XINPUT_VIBRATION m_output_state
 The current vibration output state.

Detailed Description

Provides a ControllerInterface implementation for Xbox controllers using the XInput API.


Definition at line 15 of file XInputFactory.h.

Constructor & Destructor Documentation

◆ XBoxController()

XBoxController::XBoxController ( uint04 index)

Constructs an XBoxController for the given XInput device index.

Parameters
[in]indexThe XInput controller index (0-3).

Member Function Documentation

◆ batteries()

virtual Buffer< Battery * > XBoxController::batteries ( ) const
overridevirtual

Returns the battery objects associated with this controller.

Returns
A buffer of Battery pointers.

Implements ControllerInterface.

◆ centerButtons()

virtual Buffer< ControlButton > XBoxController::centerButtons ( ) const
overridevirtual

Returns the center button states (e.g., start, back, guide).

Returns
A buffer containing center button data.

Implements ControllerInterface.

◆ color()

virtual RGBColor XBoxController::color ( ) const
virtual

Returns the current color of the controller.

Returns
The controller RGB color.

Implements ControllerInterface.

Referenced by requestColor().

◆ hapticFeedback()

Buffer< HapticFeedback > XBoxController::hapticFeedback ( ) const
overridevirtual

Returns haptic feedback capabilities.

Returns
A buffer of available HapticFeedback options.

Implements ControllerInterface.

◆ id()

virtual UUID XBoxController::id ( ) const
overridevirtual

Returns the unique identifier for this controller.

Returns
The controller UUID.

Implements ControllerInterface.

◆ leftButtons()

virtual Buffer< ControlButton > XBoxController::leftButtons ( ) const
overridevirtual

Returns the left-side button states.

Returns
A buffer containing left button data.

Implements ControllerInterface.

◆ leftSticks()

virtual Buffer< ControlStick > XBoxController::leftSticks ( ) const
overridevirtual

Returns the left analog stick state.

Returns
A buffer containing left stick data.

Implements ControllerInterface.

◆ leftTriggers()

virtual Buffer< ControlTrigger > XBoxController::leftTriggers ( ) const
overridevirtual

Returns the left trigger state.

Returns
A buffer containing left trigger data.

Implements ControllerInterface.

◆ requestColor()

virtual bool XBoxController::requestColor ( const RGBColor & color)
overridevirtual

Requests a color change on the controller (not supported on Xbox controllers).

Parameters
[in]colorThe requested RGB color.
Returns
True if the color request succeeded.

Implements ControllerInterface.

References color().

◆ requestVibrating()

virtual bool XBoxController::requestVibrating ( fltp08 left,
fltp08 right )
overridevirtual

Requests vibration on the controller motors.

Parameters
[in]leftLeft motor intensity, 0 = off, 1 = full vibration.
[in]rightRight motor intensity, 0 = off, 1 = full vibration.
Returns
True if the vibration request succeeded.

Implements ControllerInterface.

◆ rightButtons()

virtual Buffer< ControlButton > XBoxController::rightButtons ( ) const
overridevirtual

Returns the right-side button states.

Returns
A buffer containing right button data.

Implements ControllerInterface.

◆ rightSticks()

virtual Buffer< ControlStick > XBoxController::rightSticks ( ) const
overridevirtual

Returns the right analog stick state.

Returns
A buffer containing right stick data.

Implements ControllerInterface.

◆ rightTriggers()

virtual Buffer< ControlTrigger > XBoxController::rightTriggers ( ) const
overridevirtual

Returns the right trigger state.

Returns
A buffer containing right trigger data.

Implements ControllerInterface.

◆ vibration()

virtual Vector< 2, fltp08 > XBoxController::vibration ( ) const
overridevirtual

Returns the current vibration intensity for left and right motors.

Returns
A 2D vector with left and right motor vibration values.

Implements ControllerInterface.


The documentation for this class was generated from the following file: