# CategoryJoystick

Include file for SDL joystick event handling

The term "device_index" identifies currently plugged in joystick devices
between 0 and [SDL_NumJoysticks](SDL_NumJoysticks)(), with the exact
joystick behind a device_index changing as joysticks are plugged and
unplugged.

The term "instance_id" is the current instantiation of a joystick device in
the system, if the joystick is removed and then re-inserted then it will
get a new instance_id, instance_id's are monotonically increasing
identifiers of a joystick plugged in.

The term "player_index" is the number assigned to a player on a specific
controller. For XInput controllers this returns the XInput user index. Many
joysticks will not be able to supply this information.

The term JoystickGUID is a stable 128-bit identifier for a joystick device
that does not change over time, it identifies class of the device (a X360
wired controller for example). This identifier is platform dependent.

<!-- END CATEGORY DOCUMENTATION -->

## Functions

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryJoystick, CategoryAPIFunction -->
- [SDL_GetJoystickGUIDInfo](SDL_GetJoystickGUIDInfo)
- [SDL_JoystickAttachVirtual](SDL_JoystickAttachVirtual)
- [SDL_JoystickAttachVirtualEx](SDL_JoystickAttachVirtualEx)
- [SDL_JoystickClose](SDL_JoystickClose)
- [SDL_JoystickCurrentPowerLevel](SDL_JoystickCurrentPowerLevel)
- [SDL_JoystickDetachVirtual](SDL_JoystickDetachVirtual)
- [SDL_JoystickEventState](SDL_JoystickEventState)
- [SDL_JoystickFromInstanceID](SDL_JoystickFromInstanceID)
- [SDL_JoystickFromPlayerIndex](SDL_JoystickFromPlayerIndex)
- [SDL_JoystickGetAttached](SDL_JoystickGetAttached)
- [SDL_JoystickGetAxis](SDL_JoystickGetAxis)
- [SDL_JoystickGetAxisInitialState](SDL_JoystickGetAxisInitialState)
- [SDL_JoystickGetBall](SDL_JoystickGetBall)
- [SDL_JoystickGetButton](SDL_JoystickGetButton)
- [SDL_JoystickGetDeviceGUID](SDL_JoystickGetDeviceGUID)
- [SDL_JoystickGetDeviceInstanceID](SDL_JoystickGetDeviceInstanceID)
- [SDL_JoystickGetDevicePlayerIndex](SDL_JoystickGetDevicePlayerIndex)
- [SDL_JoystickGetDeviceProduct](SDL_JoystickGetDeviceProduct)
- [SDL_JoystickGetDeviceProductVersion](SDL_JoystickGetDeviceProductVersion)
- [SDL_JoystickGetDeviceType](SDL_JoystickGetDeviceType)
- [SDL_JoystickGetDeviceVendor](SDL_JoystickGetDeviceVendor)
- [SDL_JoystickGetFirmwareVersion](SDL_JoystickGetFirmwareVersion)
- [SDL_JoystickGetGUID](SDL_JoystickGetGUID)
- [SDL_JoystickGetGUIDFromString](SDL_JoystickGetGUIDFromString)
- [SDL_JoystickGetGUIDString](SDL_JoystickGetGUIDString)
- [SDL_JoystickGetHat](SDL_JoystickGetHat)
- [SDL_JoystickGetPlayerIndex](SDL_JoystickGetPlayerIndex)
- [SDL_JoystickGetProduct](SDL_JoystickGetProduct)
- [SDL_JoystickGetProductVersion](SDL_JoystickGetProductVersion)
- [SDL_JoystickGetSerial](SDL_JoystickGetSerial)
- [SDL_JoystickGetType](SDL_JoystickGetType)
- [SDL_JoystickGetVendor](SDL_JoystickGetVendor)
- [SDL_JoystickHasLED](SDL_JoystickHasLED)
- [SDL_JoystickHasRumble](SDL_JoystickHasRumble)
- [SDL_JoystickHasRumbleTriggers](SDL_JoystickHasRumbleTriggers)
- [SDL_JoystickInstanceID](SDL_JoystickInstanceID)
- [SDL_JoystickIsVirtual](SDL_JoystickIsVirtual)
- [SDL_JoystickName](SDL_JoystickName)
- [SDL_JoystickNameForIndex](SDL_JoystickNameForIndex)
- [SDL_JoystickNumAxes](SDL_JoystickNumAxes)
- [SDL_JoystickNumBalls](SDL_JoystickNumBalls)
- [SDL_JoystickNumButtons](SDL_JoystickNumButtons)
- [SDL_JoystickNumHats](SDL_JoystickNumHats)
- [SDL_JoystickOpen](SDL_JoystickOpen)
- [SDL_JoystickPath](SDL_JoystickPath)
- [SDL_JoystickPathForIndex](SDL_JoystickPathForIndex)
- [SDL_JoystickRumble](SDL_JoystickRumble)
- [SDL_JoystickRumbleTriggers](SDL_JoystickRumbleTriggers)
- [SDL_JoystickSendEffect](SDL_JoystickSendEffect)
- [SDL_JoystickSetLED](SDL_JoystickSetLED)
- [SDL_JoystickSetPlayerIndex](SDL_JoystickSetPlayerIndex)
- [SDL_JoystickSetVirtualAxis](SDL_JoystickSetVirtualAxis)
- [SDL_JoystickSetVirtualButton](SDL_JoystickSetVirtualButton)
- [SDL_JoystickSetVirtualHat](SDL_JoystickSetVirtualHat)
- [SDL_JoystickUpdate](SDL_JoystickUpdate)
- [SDL_LockJoysticks](SDL_LockJoysticks)
- [SDL_NumJoysticks](SDL_NumJoysticks)
- [SDL_UnlockJoysticks](SDL_UnlockJoysticks)
<!-- END CATEGORY LIST -->

## Datatypes

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryJoystick, CategoryAPIDatatype -->
- [SDL_JoystickGUID](SDL_JoystickGUID)
- [SDL_JoystickID](SDL_JoystickID)
<!-- END CATEGORY LIST -->

## Structs

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryJoystick, CategoryAPIStruct -->
- [SDL_VirtualJoystickDesc](SDL_VirtualJoystickDesc)
<!-- END CATEGORY LIST -->

## Enums

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryJoystick, CategoryAPIEnum -->
- [SDL_JoystickPowerLevel](SDL_JoystickPowerLevel)
<!-- END CATEGORY LIST -->

## Macros

<!-- DO NOT HAND-EDIT CATEGORY LISTS, THEY ARE AUTOGENERATED AND WILL BE OVERWRITTEN, BASED ON TAGS IN INDIVIDUAL PAGE FOOTERS. EDIT THOSE INSTEAD. -->
<!-- BEGIN CATEGORY LIST: CategoryJoystick, CategoryAPIMacro -->
- [SDL_VIRTUAL_JOYSTICK_DESC_VERSION](SDL_VIRTUAL_JOYSTICK_DESC_VERSION)
<!-- END CATEGORY LIST -->