|
SDL
2.0
|
#include "../SDL_internal.h"#include "SDL.h"#include "SDL_atomic.h"#include "SDL_events.h"#include "SDL_sysjoystick.h"#include "SDL_hints.h"#include "../events/SDL_events_c.h"#include "../video/SDL_sysvideo.h"#include "hidapi/SDL_hidapijoystick_c.h"#include "controller_type.h"#include "../core/windows/SDL_windows.h"#include <tlhelp32.h>#include "./virtual/SDL_virtualjoystick_c.h"
Include dependency graph for SDL_joystick.c:Go to the source code of this file.
Variables | |
| static SDL_JoystickDriver * | SDL_joystick_drivers [] |
| static SDL_bool | SDL_joystick_allows_background_events = SDL_FALSE |
| static SDL_Joystick * | SDL_joysticks = NULL |
| static SDL_bool | SDL_updating_joystick = SDL_FALSE |
| static SDL_mutex * | SDL_joystick_lock = NULL |
| static SDL_atomic_t | SDL_next_joystick_instance_id |
| static int | SDL_joystick_player_count = 0 |
| static SDL_JoystickID * | SDL_joystick_players = NULL |
|
static |
Definition at line 2445 of file SDL_joystick.c.
Referenced by LAW_Decode(), and SDL_JoystickGetGUIDFromString().
|
static |
Definition at line 1635 of file SDL_joystick.c.
References SDL_tolower.
Referenced by SDL_CreateJoystickName().
| char* SDL_CreateJoystickName | ( | Uint16 | vendor, |
| Uint16 | product, | ||
| const char * | vendor_name, | ||
| const char * | product_name | ||
| ) |
Definition at line 1649 of file SDL_joystick.c.
References GuessControllerName(), i, NULL, PrefixMatch(), SDL_arraysize, SDL_malloc, SDL_memcpy, SDL_memmove, SDL_snprintf, SDL_strdup, SDL_strlen, and SDL_strncasecmp.
|
static |
Definition at line 118 of file SDL_joystick.c.
References SDL_joystick_player_count, and SDL_joystick_players.
Referenced by SDL_PrivateJoystickAdded(), and SDL_SetJoystickIDForPlayerIndex().
| SDL_bool SDL_GetDriverAndJoystickIndex | ( | int | device_index, |
| SDL_JoystickDriver ** | driver, | ||
| int * | driver_index | ||
| ) |
Definition at line 272 of file SDL_joystick.c.
References SDL_JoystickDriver::GetCount, i, SDL_arraysize, SDL_FALSE, SDL_joystick_drivers, SDL_SetError, and SDL_TRUE.
Referenced by SDL_JoystickDetachVirtual(), SDL_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickIsVirtual(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_PrivateJoystickAdded(), SDL_PrivateJoystickGetAutoGamepadMapping(), and SDL_SetJoystickIDForPlayerIndex().
| SDL_GameControllerType SDL_GetJoystickGameControllerType | ( | const char * | name, |
| Uint16 | vendor, | ||
| Uint16 | product, | ||
| int | interface_number, | ||
| int | interface_class, | ||
| int | interface_subclass, | ||
| int | interface_protocol | ||
| ) |
Definition at line 1771 of file SDL_joystick.c.
References GuessControllerType(), i, k_eControllerType_PS3Controller, k_eControllerType_PS4Controller, k_eControllerType_PS5Controller, k_eControllerType_SwitchInputOnlyController, k_eControllerType_SwitchProController, k_eControllerType_XBox360Controller, k_eControllerType_XBoxOneController, SDL_arraysize, SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO, SDL_CONTROLLER_TYPE_PS3, SDL_CONTROLLER_TYPE_PS4, SDL_CONTROLLER_TYPE_PS5, SDL_CONTROLLER_TYPE_UNKNOWN, SDL_CONTROLLER_TYPE_VIRTUAL, SDL_CONTROLLER_TYPE_XBOX360, SDL_CONTROLLER_TYPE_XBOXONE, and SDL_strcmp.
Referenced by SDL_GetJoystickGameControllerTypeFromGUID(), SDL_GetJoystickGameControllerTypeFromVIDPID(), and SDL_ShouldIgnoreJoystick().
| SDL_GameControllerType SDL_GetJoystickGameControllerTypeFromGUID | ( | SDL_JoystickGUID | guid, |
| const char * | name | ||
| ) |
Definition at line 1754 of file SDL_joystick.c.
References NULL, SDL_CONTROLLER_TYPE_UNKNOWN, SDL_CONTROLLER_TYPE_XBOXONE, SDL_GetJoystickGameControllerType(), SDL_GetJoystickGUIDInfo(), and SDL_IsJoystickXInput().
Referenced by SDL_CreateMappingForHIDAPIController(), SDL_GameControllerGetType(), and SDL_GameControllerTypeForIndex().
| SDL_GameControllerType SDL_GetJoystickGameControllerTypeFromVIDPID | ( | Uint16 | vendor, |
| Uint16 | product | ||
| ) |
Definition at line 1748 of file SDL_joystick.c.
References NULL, and SDL_GetJoystickGameControllerType().
| void SDL_GetJoystickGUIDInfo | ( | SDL_JoystickGUID | guid, |
| Uint16 * | vendor, | ||
| Uint16 * | product, | ||
| Uint16 * | version | ||
| ) |
Definition at line 1599 of file SDL_joystick.c.
References SDL_JoystickGUID::data, and if.
Referenced by SDL_CreateMappingForHIDAPIController(), SDL_GetJoystickGameControllerTypeFromGUID(), SDL_GetJoystickGUIDType(), SDL_JoystickGetDeviceProduct(), SDL_JoystickGetDeviceProductVersion(), SDL_JoystickGetDeviceVendor(), SDL_JoystickGetProduct(), SDL_JoystickGetProductVersion(), SDL_JoystickGetVendor(), SDL_ShouldIgnoreGameController(), and SDL_ShouldIgnoreJoystick().
|
static |
Definition at line 2045 of file SDL_joystick.c.
References SDL_JoystickGUID::data, GuessControllerType(), k_eControllerType_UnknownNonSteamController, MAKE_VIDPID, NULL, SDL_GetJoystickGUIDInfo(), SDL_IsJoystickProductFlightStick(), SDL_IsJoystickProductThrottle(), SDL_IsJoystickProductWheel(), SDL_IsJoystickVirtual(), SDL_IsJoystickWGI(), SDL_IsJoystickXInput(), SDL_JOYSTICK_TYPE_ARCADE_PAD, SDL_JOYSTICK_TYPE_ARCADE_STICK, SDL_JOYSTICK_TYPE_DANCE_PAD, SDL_JOYSTICK_TYPE_DRUM_KIT, SDL_JOYSTICK_TYPE_FLIGHT_STICK, SDL_JOYSTICK_TYPE_GAMECONTROLLER, SDL_JOYSTICK_TYPE_GUITAR, SDL_JOYSTICK_TYPE_THROTTLE, SDL_JOYSTICK_TYPE_UNKNOWN, and SDL_JOYSTICK_TYPE_WHEEL.
Referenced by SDL_JoystickGetDeviceType(), and SDL_JoystickGetType().
|
static |
Definition at line 147 of file SDL_joystick.c.
References SDL_joystick_player_count, and SDL_joystick_players.
Referenced by SDL_JoystickFromPlayerIndex(), and SDL_SetJoystickIDForPlayerIndex().
| SDL_JoystickID SDL_GetNextJoystickInstanceID | ( | void | ) |
Definition at line 262 of file SDL_joystick.c.
References SDL_AtomicIncRef, and SDL_next_joystick_instance_id.
|
static |
Definition at line 131 of file SDL_joystick.c.
References SDL_joystick_player_count, and SDL_joystick_players.
Referenced by SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_PrivateJoystickRemoved(), and SDL_SetJoystickIDForPlayerIndex().
| SDL_bool SDL_IsJoystickHIDAPI | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1968 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_PrivateGetControllerMappingForGUID().
Definition at line 1933 of file SDL_joystick.c.
References GuessControllerType(), k_eControllerType_SwitchInputOnlyController, and k_eControllerType_SwitchProController.
Referenced by SDL_CreateMappingForHIDAPIController().
Definition at line 1941 of file SDL_joystick.c.
References GuessControllerType(), and k_eControllerType_SwitchInputOnlyController.
Definition at line 2013 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 2029 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 1985 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 1919 of file SDL_joystick.c.
References GuessControllerType(), and k_eControllerType_PS4Controller.
Definition at line 1926 of file SDL_joystick.c.
References GuessControllerType(), and k_eControllerType_PS5Controller.
| SDL_bool SDL_IsJoystickRAWINPUT | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1974 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_PrivateGetControllerMappingForGUID().
Definition at line 1948 of file SDL_joystick.c.
References GuessControllerType(), k_eControllerType_SteamController, and k_eControllerType_SteamControllerV2.
Referenced by SDL_CreateMappingForHIDAPIController().
| SDL_bool SDL_IsJoystickVirtual | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1980 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
| SDL_bool SDL_IsJoystickWGI | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1962 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType(), and SDL_PrivateGetControllerMappingForNameAndGUID().
Definition at line 1894 of file SDL_joystick.c.
References SDL_FALSE, SDL_TRUE, USB_PRODUCT_XBOX_ONE_ELITE_SERIES_1, USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2, USB_PRODUCT_XBOX_ONE_ELITE_SERIES_2_BLUETOOTH, and USB_VENDOR_MICROSOFT.
Referenced by SDL_CreateMappingForHIDAPIController().
Definition at line 1907 of file SDL_joystick.c.
References SDL_FALSE, SDL_TRUE, USB_PRODUCT_XBOX_ONE_SERIES_X, USB_PRODUCT_XBOX_ONE_SERIES_X_BLUETOOTH, and USB_VENDOR_MICROSOFT.
Referenced by SDL_CreateMappingForHIDAPIController().
| SDL_bool SDL_IsJoystickXInput | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1956 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGameControllerTypeFromGUID(), SDL_GetJoystickGUIDType(), and SDL_PrivateGetControllerMappingForGUID().
Definition at line 2107 of file SDL_joystick.c.
References i, SDL_arraysize, SDL_FALSE, SDL_strcasecmp, and SDL_TRUE.
Referenced by SDL_ShouldIgnoreJoystick().
|
static |
Definition at line 203 of file SDL_joystick.c.
References SDL_FALSE, SDL_joystick_allows_background_events, and SDL_TRUE.
Referenced by SDL_JoystickInit(), and SDL_JoystickQuit().
| int SDL_JoystickAttachVirtual | ( | SDL_JoystickType | type, |
| int | naxes, | ||
| int | nbuttons, | ||
| int | nhats | ||
| ) |
Attaches a new virtual joystick. Returns the joystick's device index, or -1 if an error occurred.
Definition at line 471 of file SDL_joystick.c.
References SDL_SetError.
|
static |
Definition at line 333 of file SDL_joystick.c.
References i, joystick, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, SDL_JoystickGetProduct(), SDL_JoystickGetVendor(), and SDL_TRUE.
Referenced by SDL_JoystickOpen().
| void SDL_JoystickClose | ( | SDL_Joystick * | joystick | ) |
Close a joystick previously opened with SDL_JoystickOpen().
Definition at line 976 of file SDL_joystick.c.
References SDL_JoystickTouchpadInfo::fingers, i, joystick, NULL, SDL_free, SDL_JoystickRumble(), SDL_JoystickRumbleTriggers(), SDL_joysticks, SDL_LockJoysticks(), SDL_PrivateJoystickValid(), SDL_UnlockJoysticks(), and SDL_updating_joystick.
Referenced by SDL_JoystickOpen(), SDL_JoystickQuit(), and SDL_JoystickUpdate().
| SDL_JoystickPowerLevel SDL_JoystickCurrentPowerLevel | ( | SDL_Joystick * | joystick | ) |
Return the battery level of this joystick
Definition at line 2493 of file SDL_joystick.c.
References joystick, SDL_JOYSTICK_POWER_UNKNOWN, and SDL_PrivateJoystickValid().
Detaches a virtual joystick Returns 0 on success, or -1 if an error occurred.
Definition at line 482 of file SDL_joystick.c.
References SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), SDL_SetError, SDL_UnlockJoysticks(), and SDL_VIRTUAL_JoystickDriver.
Enable/disable joystick event polling.
If joystick events are disabled, you must call SDL_JoystickUpdate() yourself and check the state of the joystick when you want joystick information.
The state can be one of SDL_QUERY, SDL_ENABLE or SDL_IGNORE.
Definition at line 1568 of file SDL_joystick.c.
References i, SDL_arraysize, SDL_DISABLE, SDL_ENABLE, SDL_EventState, SDL_JOYAXISMOTION, SDL_JOYBALLMOTION, SDL_JOYBUTTONDOWN, SDL_JOYBUTTONUP, SDL_JOYDEVICEADDED, SDL_JOYDEVICEREMOVED, SDL_JOYHATMOTION, SDL_QUERY, and state.
| SDL_Joystick* SDL_JoystickFromInstanceID | ( | SDL_JoystickID | instance_id | ) |
Return the SDL_Joystick associated with an instance id.
Definition at line 774 of file SDL_joystick.c.
References joystick, SDL_joysticks, SDL_LockJoysticks(), and SDL_UnlockJoysticks().
| SDL_Joystick* SDL_JoystickFromPlayerIndex | ( | int | player_index | ) |
Return the SDL_Joystick associated with a player index.
Definition at line 792 of file SDL_joystick.c.
References joystick, SDL_GetJoystickIDForPlayerIndex(), SDL_joysticks, SDL_LockJoysticks(), and SDL_UnlockJoysticks().
| SDL_bool SDL_JoystickGetAttached | ( | SDL_Joystick * | joystick | ) |
Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not.
Definition at line 748 of file SDL_joystick.c.
References joystick, SDL_FALSE, and SDL_PrivateJoystickValid().
Get the current state of an axis control on a joystick.
The state is a value ranging from -32768 to 32767.
The axis indices start at index 0.
Definition at line 640 of file SDL_joystick.c.
References axis, joystick, SDL_PrivateJoystickValid(), SDL_SetError, and state.
Get the initial state of an axis control on a joystick.
The state is a value ranging from -32768 to 32767.
The axis indices start at index 0.
Definition at line 660 of file SDL_joystick.c.
References axis, joystick, SDL_FALSE, SDL_PrivateJoystickValid(), SDL_SetError, and state.
Get the ball axis change since the last poll.
The ball indices start at index 0.
Definition at line 699 of file SDL_joystick.c.
References joystick, retval, SDL_PrivateJoystickValid(), and SDL_SetError.
Get the current state of a button on a joystick.
The button indices start at index 0.
Definition at line 727 of file SDL_joystick.c.
References button, joystick, SDL_PrivateJoystickValid(), SDL_SetError, and state.
| SDL_JoystickGUID SDL_JoystickGetDeviceGUID | ( | int | device_index | ) |
Return the GUID for the joystick at this index This can be called before any joysticks are opened.
Definition at line 2272 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceGUID, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), SDL_UnlockJoysticks(), and SDL_zero.
Referenced by SDL_JoystickGetDeviceProduct(), SDL_JoystickGetDeviceProductVersion(), SDL_JoystickGetDeviceType(), and SDL_JoystickGetDeviceVendor().
| int SDL_JoystickGetDeviceIndexFromInstanceID | ( | SDL_JoystickID | instance_id | ) |
Definition at line 2343 of file SDL_joystick.c.
References i, SDL_JoystickGetDeviceInstanceID(), SDL_LockJoysticks(), SDL_NumJoysticks(), and SDL_UnlockJoysticks().
Referenced by SDL_PrivateJoystickAdded(), and SDL_SetJoystickIDForPlayerIndex().
| SDL_JoystickID SDL_JoystickGetDeviceInstanceID | ( | int | device_index | ) |
Get the instance ID of a joystick. This can be called before any joysticks are opened. If the index is out of range, this function will return -1.
Definition at line 2329 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceInstanceID, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickGetDeviceIndexFromInstanceID(), and SDL_JoystickGetDevicePlayerIndex().
Get the player index of a joystick, or -1 if it's not available This can be called before any joysticks are opened.
Definition at line 316 of file SDL_joystick.c.
References SDL_GetPlayerIndexForJoystickID(), SDL_JoystickGetDeviceInstanceID(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Get the USB product ID of a joystick, if available. This can be called before any joysticks are opened. If the product ID isn't available this function returns 0.
Definition at line 2297 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetDeviceGUID().
Get the product version of a joystick, if available. This can be called before any joysticks are opened. If the product version isn't available this function returns 0.
Definition at line 2306 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetDeviceGUID().
| SDL_JoystickType SDL_JoystickGetDeviceType | ( | int | device_index | ) |
Get the type of a joystick, if available. This can be called before any joysticks are opened.
Definition at line 2315 of file SDL_joystick.c.
References SDL_GetJoystickGUIDType(), SDL_IsGameController, SDL_JOYSTICK_TYPE_GAMECONTROLLER, SDL_JOYSTICK_TYPE_UNKNOWN, and SDL_JoystickGetDeviceGUID().
Get the USB vendor ID of a joystick, if available. This can be called before any joysticks are opened. If the vendor ID isn't available this function returns 0.
Definition at line 2288 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetDeviceGUID().
| SDL_JoystickGUID SDL_JoystickGetGUID | ( | SDL_Joystick * | joystick | ) |
Return the GUID for this opened joystick
Definition at line 2360 of file SDL_joystick.c.
References joystick, SDL_PrivateJoystickValid(), and SDL_zero.
Referenced by SDL_JoystickGetProduct(), SDL_JoystickGetProductVersion(), SDL_JoystickGetType(), and SDL_JoystickGetVendor().
| SDL_JoystickGUID SDL_JoystickGetGUIDFromString | ( | const char * | pchGUID | ) |
Convert a string into a joystick guid
Definition at line 2465 of file SDL_joystick.c.
References i, nibble(), SDL_memset, and SDL_strlen.
| void SDL_JoystickGetGUIDString | ( | SDL_JoystickGUID | guid, |
| char * | pszGUID, | ||
| int | cbGUID | ||
| ) |
Return a string representation for this guid. pszGUID must point to at least 33 bytes (32 for the string plus a NULL terminator).
Definition at line 2420 of file SDL_joystick.c.
References SDL_JoystickGUID::data, i, and NULL.
Get the current state of a POV hat on a joystick.
The hat indices start at index 0.
Definition at line 679 of file SDL_joystick.c.
References joystick, SDL_PrivateJoystickValid(), SDL_SetError, and state.
| int SDL_JoystickGetPlayerIndex | ( | SDL_Joystick * | joystick | ) |
Get the player index of an opened joystick, or -1 if it's not available
Definition at line 825 of file SDL_joystick.c.
References joystick, SDL_GetPlayerIndexForJoystickID(), SDL_LockJoysticks(), SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
| Uint16 SDL_JoystickGetProduct | ( | SDL_Joystick * | joystick | ) |
Get the USB product ID of an opened joystick, if available. If the product ID isn't available this function returns 0.
Definition at line 2379 of file SDL_joystick.c.
References joystick, NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetGUID().
Referenced by SDL_JoystickAxesCenteredAtZero().
| Uint16 SDL_JoystickGetProductVersion | ( | SDL_Joystick * | joystick | ) |
Get the product version of an opened joystick, if available. If the product version isn't available this function returns 0.
Definition at line 2388 of file SDL_joystick.c.
References joystick, NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetGUID().
| const char* SDL_JoystickGetSerial | ( | SDL_Joystick * | joystick | ) |
Get the serial number of an opened joystick, if available.
Returns the serial number of the joystick, or NULL if it is not available.
Definition at line 2397 of file SDL_joystick.c.
References joystick, NULL, and SDL_PrivateJoystickValid().
| SDL_JoystickType SDL_JoystickGetType | ( | SDL_Joystick * | joystick | ) |
Get the type of an opened joystick.
Definition at line 2405 of file SDL_joystick.c.
References joystick, SDL_GetJoystickGUIDType(), SDL_JOYSTICK_TYPE_GAMECONTROLLER, SDL_JOYSTICK_TYPE_UNKNOWN, and SDL_JoystickGetGUID().
| Uint16 SDL_JoystickGetVendor | ( | SDL_Joystick * | joystick | ) |
Get the USB vendor ID of an opened joystick, if available. If the vendor ID isn't available this function returns 0.
Definition at line 2370 of file SDL_joystick.c.
References joystick, NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetGUID().
Referenced by SDL_JoystickAxesCenteredAtZero().
| SDL_bool SDL_JoystickHasLED | ( | SDL_Joystick * | joystick | ) |
Return whether a joystick has an LED
| joystick | The joystick to query |
Definition at line 925 of file SDL_joystick.c.
References joystick, SDL_FALSE, SDL_LockJoysticks(), SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
Definition at line 213 of file SDL_joystick.c.
References i, NULL, SDL_AddHintCallback, SDL_arraysize, SDL_CreateMutex, SDL_GameControllerInitMappings(), SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, SDL_INIT_EVENTS, SDL_InitSubSystem, SDL_joystick_drivers, SDL_joystick_lock, and SDL_JoystickAllowBackgroundEventsChanged().
Referenced by SDL_InitSubSystem().
| SDL_JoystickID SDL_JoystickInstanceID | ( | SDL_Joystick * | joystick | ) |
Get the instance ID of an opened joystick or -1 if the joystick is invalid.
Definition at line 761 of file SDL_joystick.c.
References joystick, and SDL_PrivateJoystickValid().
Indicates whether or not a virtual-joystick is at a given device index.
Definition at line 504 of file SDL_joystick.c.
References SDL_FALSE, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), SDL_TRUE, SDL_UnlockJoysticks(), and SDL_VIRTUAL_JoystickDriver.
| const char* SDL_JoystickName | ( | SDL_Joystick * | joystick | ) |
Return the name for this currently opened joystick. If no name can be found, this function returns NULL.
Definition at line 812 of file SDL_joystick.c.
References joystick, NULL, and SDL_PrivateJoystickValid().
| const char* SDL_JoystickNameForIndex | ( | int | device_index | ) |
Get the implementation dependent name of a joystick. This can be called before any joysticks are opened. If no name can be found, this function returns NULL.
Definition at line 297 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceName, NULL, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
| int SDL_JoystickNumAxes | ( | SDL_Joystick * | joystick | ) |
Get the number of general axis controls on a joystick.
Definition at line 592 of file SDL_joystick.c.
References joystick, and SDL_PrivateJoystickValid().
| int SDL_JoystickNumBalls | ( | SDL_Joystick * | joystick | ) |
Get the number of trackballs on a joystick.
Joystick trackballs have only relative motion events associated with them and their state cannot be polled.
Definition at line 616 of file SDL_joystick.c.
References joystick, and SDL_PrivateJoystickValid().
| int SDL_JoystickNumButtons | ( | SDL_Joystick * | joystick | ) |
Get the number of buttons on a joystick.
Definition at line 628 of file SDL_joystick.c.
References joystick, and SDL_PrivateJoystickValid().
| int SDL_JoystickNumHats | ( | SDL_Joystick * | joystick | ) |
Get the number of POV hats on a joystick.
Definition at line 604 of file SDL_joystick.c.
References joystick, and SDL_PrivateJoystickValid().
| SDL_Joystick* SDL_JoystickOpen | ( | int | device_index | ) |
Open a joystick for use. The index passed as an argument refers to the N'th joystick on the system. This index is not the value which will identify this joystick in future joystick events. The joystick's instance id (SDL_JoystickID) will be used there instead.
Definition at line 367 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceGUID, SDL_JoystickDriver::GetDeviceInstanceID, SDL_JoystickDriver::GetDeviceName, i, joystick, NULL, SDL_JoystickDriver::Open, SDL_calloc, SDL_free, SDL_GetDriverAndJoystickIndex(), SDL_IsGameController, SDL_JOYSTICK_POWER_UNKNOWN, SDL_JoystickAxesCenteredAtZero(), SDL_JoystickClose(), SDL_joysticks, SDL_LockJoysticks(), SDL_OutOfMemory, SDL_strdup, SDL_TRUE, SDL_UnlockJoysticks(), and SDL_JoystickDriver::Update.
Definition at line 1045 of file SDL_joystick.c.
References i, mutex, NULL, SDL_JoystickDriver::Quit, SDL_arraysize, SDL_Delay, SDL_DelHintCallback, SDL_DestroyMutex, SDL_free, SDL_GameControllerQuitMappings(), SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, SDL_INIT_EVENTS, SDL_joystick_drivers, SDL_joystick_lock, SDL_joystick_player_count, SDL_joystick_players, SDL_JoystickAllowBackgroundEventsChanged(), SDL_JoystickClose(), SDL_joysticks, SDL_LockJoysticks(), SDL_QuitSubSystem, SDL_UnlockJoysticks(), and SDL_updating_joystick.
Referenced by SDL_QuitSubSystem().
| int SDL_JoystickRumble | ( | SDL_Joystick * | joystick, |
| Uint16 | low_frequency_rumble, | ||
| Uint16 | high_frequency_rumble, | ||
| Uint32 | duration_ms | ||
| ) |
Start a rumble effect Each call to this function cancels any previous rumble effect, and calling it with 0 intensity stops any rumbling.
| joystick | The joystick to vibrate |
| low_frequency_rumble | The intensity of the low frequency (left) rumble motor, from 0 to 0xFFFF |
| high_frequency_rumble | The intensity of the high frequency (right) rumble motor, from 0 to 0xFFFF |
| duration_ms | The duration of the rumble effect, in milliseconds |
Definition at line 856 of file SDL_joystick.c.
References joystick, SDL_GetTicks(), SDL_LockJoysticks(), SDL_MAX_RUMBLE_DURATION_MS, SDL_min, SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickClose(), and SDL_JoystickUpdate().
| int SDL_JoystickRumbleTriggers | ( | SDL_Joystick * | joystick, |
| Uint16 | left_rumble, | ||
| Uint16 | right_rumble, | ||
| Uint32 | duration_ms | ||
| ) |
Start a rumble effect in the joystick's triggers Each call to this function cancels any previous trigger rumble effect, and calling it with 0 intensity stops any rumbling.
| joystick | The joystick to vibrate |
| left_rumble | The intensity of the left trigger rumble motor, from 0 to 0xFFFF |
| right_rumble | The intensity of the right trigger rumble motor, from 0 to 0xFFFF |
| duration_ms | The duration of the rumble effect, in milliseconds |
Definition at line 891 of file SDL_joystick.c.
References joystick, SDL_GetTicks(), SDL_LockJoysticks(), SDL_MAX_RUMBLE_DURATION_MS, SDL_min, SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickClose(), and SDL_JoystickUpdate().
Update a joystick's LED color.
| joystick | The joystick to update |
| red | The intensity of the red LED |
| green | The intensity of the green LED |
| blue | The intensity of the blue LED |
Definition at line 943 of file SDL_joystick.c.
References joystick, red, SDL_LockJoysticks(), SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
Set the player index of an opened joystick
Definition at line 844 of file SDL_joystick.c.
References joystick, SDL_LockJoysticks(), SDL_PrivateJoystickValid(), SDL_SetJoystickIDForPlayerIndex(), and SDL_UnlockJoysticks().
Set values on an opened, virtual-joystick's controls. Please note that values set here will not be applied until the next call to SDL_JoystickUpdate, which can either be called directly, or can be called indirectly through various other SDL APIS, including, but not limited to the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, SDL_WaitEvent.
Returns 0 on success, -1 on error.
Definition at line 526 of file SDL_joystick.c.
References axis, joystick, and SDL_SetError.
Update the current state of the open joysticks.
This is called automatically by the event loop if any joystick events are enabled.
Definition at line 1485 of file SDL_joystick.c.
References SDL_JoystickDriver::Detect, HIDAPI_UpdateDevices(), i, joystick, SDL_arraysize, SDL_FALSE, SDL_GameControllerHandleDelayedGuideButton(), SDL_GetTicks(), SDL_INIT_JOYSTICK, SDL_joystick_drivers, SDL_JoystickClose(), SDL_JoystickRumble(), SDL_JoystickRumbleTriggers(), SDL_joysticks, SDL_LockJoysticks(), SDL_TICKS_PASSED, SDL_TRUE, SDL_UnlockJoysticks(), SDL_updating_joystick, and SDL_WasInit.
Locking for multi-threaded access to the joystick API
If you are using the joystick API or handling events from multiple threads you should use these locking functions to protect access to the joysticks.
In particular, you are guaranteed that the joystick list won't change, so the API functions that take a joystick index will be valid, and joystick and game controller events will not be delivered.
Definition at line 102 of file SDL_joystick.c.
References SDL_joystick_lock, and SDL_LockMutex.
Referenced by SDL_JoystickClose(), SDL_JoystickDetachVirtual(), SDL_JoystickFromInstanceID(), SDL_JoystickFromPlayerIndex(), SDL_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_JoystickHasLED(), SDL_JoystickIsVirtual(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_JoystickQuit(), SDL_JoystickRumble(), SDL_JoystickRumbleTriggers(), SDL_JoystickSetLED(), SDL_JoystickSetPlayerIndex(), SDL_JoystickUpdate(), SDL_NumJoysticks(), SDL_PrivateJoystickAdded(), SDL_PrivateJoystickGetAutoGamepadMapping(), and SDL_PrivateJoystickRemoved().
Count the number of joysticks attached to the system right now
Definition at line 247 of file SDL_joystick.c.
References SDL_JoystickDriver::GetCount, i, SDL_arraysize, SDL_joystick_drivers, SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickGetDeviceIndexFromInstanceID().
| void SDL_PrivateJoystickAdded | ( | SDL_JoystickID | device_instance | ) |
Definition at line 1145 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDevicePlayerIndex, SDL_ENABLE, SDL_FindFreePlayerIndex(), SDL_GetDriverAndJoystickIndex(), SDL_GetEventState, SDL_IsGameController, SDL_JOYDEVICEADDED, SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_LockJoysticks(), SDL_PushEvent, SDL_SetJoystickIDForPlayerIndex(), and SDL_UnlockJoysticks().
| void SDL_PrivateJoystickAddSensor | ( | SDL_Joystick * | joystick, |
| SDL_SensorType | type | ||
| ) |
Definition at line 1130 of file SDL_joystick.c.
References joystick, SDL_realloc, SDL_zerop, and SDL_JoystickSensorInfo::type.
Referenced by IOS_JoystickOpen().
Definition at line 1108 of file SDL_joystick.c.
References SDL_JoystickTouchpadInfo::fingers, joystick, SDL_JoystickTouchpadInfo::nfingers, NULL, SDL_calloc, and SDL_realloc.
Referenced by IOS_JoystickOpen().
Definition at line 1295 of file SDL_joystick.c.
References axis, SDL_JoystickAxisInfo::has_initial_value, SDL_JoystickAxisInfo::has_second_value, SDL_JoystickAxisInfo::initial_value, joystick, SDL_abs, SDL_ENABLE, SDL_GetEventState, SDL_JOYAXISMOTION, SDL_JOYSTICK_AXIS_MAX, SDL_PrivateJoystickShouldIgnoreEvent(), SDL_PushEvent, SDL_TRUE, SDL_JoystickAxisInfo::sent_initial_value, SDL_JoystickAxisInfo::value, SDL_JoystickAxisInfo::zero, and zero.
Referenced by IOS_AccelerometerUpdate(), IOS_MFIJoystickUpdate(), and SDL_PrivateJoystickForceRecentering().
Definition at line 1397 of file SDL_joystick.c.
References joystick, SDL_ENABLE, SDL_GetEventState, SDL_JOYBALLMOTION, SDL_PrivateJoystickShouldIgnoreEvent(), and SDL_PushEvent.
| void SDL_PrivateJoystickBatteryLevel | ( | SDL_Joystick * | joystick, |
| SDL_JoystickPowerLevel | ePowerLevel | ||
| ) |
Definition at line 2487 of file SDL_joystick.c.
References joystick.
Referenced by IOS_MFIJoystickUpdate().
Definition at line 1433 of file SDL_joystick.c.
References button, joystick, SDL_ENABLE, SDL_GetEventState, SDL_JOYBUTTONDOWN, SDL_JOYBUTTONUP, SDL_PRESSED, SDL_PrivateJoystickShouldIgnoreEvent(), SDL_PushEvent, SDL_RELEASED, and state.
Referenced by IOS_MFIJoystickUpdate(), and SDL_PrivateJoystickForceRecentering().
|
static |
Definition at line 1224 of file SDL_joystick.c.
References i, j, joystick, SDL_JoystickTouchpadInfo::nfingers, SDL_HAT_CENTERED, SDL_PrivateJoystickAxis(), SDL_PrivateJoystickButton(), SDL_PrivateJoystickHat(), SDL_PrivateJoystickTouchpad(), and SDL_RELEASED.
Referenced by SDL_PrivateJoystickRemoved().
| SDL_bool SDL_PrivateJoystickGetAutoGamepadMapping | ( | int | device_index, |
| SDL_GamepadMapping * | out | ||
| ) |
Definition at line 574 of file SDL_joystick.c.
References SDL_JoystickDriver::GetGamepadMapping, SDL_FALSE, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Referenced by SDL_PrivateGetControllerMapping().
Definition at line 1357 of file SDL_joystick.c.
References joystick, SDL_ENABLE, SDL_GetEventState, SDL_HAT_CENTERED, SDL_JOYHATMOTION, SDL_PrivateJoystickShouldIgnoreEvent(), and SDL_PushEvent.
Referenced by IOS_MFIJoystickUpdate(), and SDL_PrivateJoystickForceRecentering().
| void SDL_PrivateJoystickRemoved | ( | SDL_JoystickID | device_instance | ) |
Definition at line 1253 of file SDL_joystick.c.
References joystick, NULL, SDL_ENABLE, SDL_FALSE, SDL_GetEventState, SDL_GetPlayerIndexForJoystickID(), SDL_JOYDEVICEREMOVED, SDL_joystick_players, SDL_joysticks, SDL_LockJoysticks(), SDL_PrivateJoystickForceRecentering(), SDL_PushEvent, SDL_UnlockJoysticks(), SDL_zero, and UpdateEventsForDeviceRemoval().
Referenced by IOS_RemoveJoystickDevice().
| int SDL_PrivateJoystickSensor | ( | SDL_Joystick * | joystick, |
| SDL_SensorType | type, | ||
| const float * | data, | ||
| int | num_values | ||
| ) |
Definition at line 2586 of file SDL_joystick.c.
References SDL_JoystickSensorInfo::data, SDL_JoystickSensorInfo::enabled, i, joystick, SDL_arraysize, SDL_CONTROLLERSENSORUPDATE, SDL_ENABLE, SDL_GetEventState, SDL_memcmp, SDL_memcpy, SDL_memset, SDL_min, SDL_PushEvent, and SDL_JoystickSensorInfo::type.
Referenced by IOS_MFIJoystickUpdate().
|
static |
Definition at line 1093 of file SDL_joystick.c.
References NULL, SDL_FALSE, SDL_GetKeyboardFocus, SDL_HasWindows(), SDL_joystick_allows_background_events, and SDL_TRUE.
Referenced by SDL_PrivateJoystickAxis(), SDL_PrivateJoystickBall(), SDL_PrivateJoystickButton(), and SDL_PrivateJoystickHat().
| int SDL_PrivateJoystickTouchpad | ( | SDL_Joystick * | joystick, |
| int | touchpad, | ||
| int | finger, | ||
| Uint8 | state, | ||
| float | x, | ||
| float | y, | ||
| float | pressure | ||
| ) |
Definition at line 2501 of file SDL_joystick.c.
References SDL_JoystickTouchpadInfo::fingers, joystick, SDL_JoystickTouchpadInfo::nfingers, SDL_JoystickTouchpadFingerInfo::pressure, SDL_CONTROLLERTOUCHPADDOWN, SDL_CONTROLLERTOUCHPADMOTION, SDL_CONTROLLERTOUCHPADUP, SDL_ENABLE, SDL_GetEventState, SDL_PushEvent, SDL_JoystickTouchpadFingerInfo::state, state, SDL_JoystickTouchpadFingerInfo::x, and SDL_JoystickTouchpadFingerInfo::y.
Referenced by IOS_MFIJoystickUpdate(), and SDL_PrivateJoystickForceRecentering().
| SDL_bool SDL_PrivateJoystickValid | ( | SDL_Joystick * | joystick | ) |
Definition at line 559 of file SDL_joystick.c.
References joystick, NULL, SDL_FALSE, SDL_SetError, and SDL_TRUE.
Referenced by SDL_HapticOpenFromJoystick(), SDL_JoystickClose(), SDL_JoystickCurrentPowerLevel(), SDL_JoystickGetAttached(), SDL_JoystickGetAxis(), SDL_JoystickGetAxisInitialState(), SDL_JoystickGetBall(), SDL_JoystickGetButton(), SDL_JoystickGetGUID(), SDL_JoystickGetHat(), SDL_JoystickGetPlayerIndex(), SDL_JoystickGetSerial(), SDL_JoystickHasLED(), SDL_JoystickInstanceID(), SDL_JoystickIsHaptic(), SDL_JoystickName(), SDL_JoystickNumAxes(), SDL_JoystickNumBalls(), SDL_JoystickNumButtons(), SDL_JoystickNumHats(), SDL_JoystickRumble(), SDL_JoystickRumbleTriggers(), SDL_JoystickSetLED(), and SDL_JoystickSetPlayerIndex().
|
static |
Definition at line 156 of file SDL_joystick.c.
References SDL_FALSE, SDL_FindFreePlayerIndex(), SDL_GetDriverAndJoystickIndex(), SDL_GetJoystickIDForPlayerIndex(), SDL_GetPlayerIndexForJoystickID(), SDL_joystick_player_count, SDL_joystick_players, SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_memset, SDL_OutOfMemory, SDL_realloc, SDL_TRUE, and SDL_JoystickDriver::SetDevicePlayerIndex.
Referenced by SDL_JoystickSetPlayerIndex(), and SDL_PrivateJoystickAdded().
| SDL_bool SDL_ShouldIgnoreJoystick | ( | const char * | name, |
| SDL_JoystickGUID | guid | ||
| ) |
Definition at line 2140 of file SDL_joystick.c.
References i, MAKE_VIDPID, NULL, SDL_arraysize, SDL_CONTROLLER_TYPE_PS4, SDL_CONTROLLER_TYPE_PS5, SDL_FALSE, SDL_GetJoystickGameControllerType(), SDL_GetJoystickGUIDInfo(), SDL_IsGameControllerNameAndGUID(), SDL_IsPS4RemapperRunning(), SDL_ShouldIgnoreGameController(), and SDL_TRUE.
Definition at line 110 of file SDL_joystick.c.
References SDL_joystick_lock, and SDL_UnlockMutex.
Referenced by SDL_JoystickClose(), SDL_JoystickDetachVirtual(), SDL_JoystickFromInstanceID(), SDL_JoystickFromPlayerIndex(), SDL_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_JoystickHasLED(), SDL_JoystickIsVirtual(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_JoystickQuit(), SDL_JoystickRumble(), SDL_JoystickRumbleTriggers(), SDL_JoystickSetLED(), SDL_JoystickSetPlayerIndex(), SDL_JoystickUpdate(), SDL_NumJoysticks(), SDL_PrivateJoystickAdded(), SDL_PrivateJoystickGetAutoGamepadMapping(), and SDL_PrivateJoystickRemoved().
Definition at line 1186 of file SDL_joystick.c.
References SDL_Event::cdevice, events, i, NULL, SDL_ADDEVENT, SDL_GETEVENT, SDL_JOYDEVICEADDED, SDL_memmove, SDL_PEEKEVENT, SDL_PeepEvents, SDL_small_alloc, SDL_small_free, and SDL_ControllerDeviceEvent::which.
Referenced by SDL_PrivateJoystickRemoved().
Definition at line 93 of file SDL_joystick.c.
Referenced by SDL_JoystickAllowBackgroundEventsChanged(), and SDL_PrivateJoystickShouldIgnoreEvent().
|
static |
Definition at line 52 of file SDL_joystick.c.
Referenced by SDL_GetDriverAndJoystickIndex(), SDL_JoystickInit(), SDL_JoystickQuit(), SDL_JoystickUpdate(), and SDL_NumJoysticks().
Definition at line 96 of file SDL_joystick.c.
Referenced by SDL_JoystickInit(), SDL_JoystickQuit(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
|
static |
Definition at line 98 of file SDL_joystick.c.
Referenced by SDL_FindFreePlayerIndex(), SDL_GetJoystickIDForPlayerIndex(), SDL_GetPlayerIndexForJoystickID(), SDL_JoystickQuit(), and SDL_SetJoystickIDForPlayerIndex().
|
static |
Definition at line 99 of file SDL_joystick.c.
Referenced by SDL_FindFreePlayerIndex(), SDL_GetJoystickIDForPlayerIndex(), SDL_GetPlayerIndexForJoystickID(), SDL_JoystickQuit(), SDL_PrivateJoystickRemoved(), and SDL_SetJoystickIDForPlayerIndex().
|
static |
Definition at line 94 of file SDL_joystick.c.
Referenced by SDL_JoystickClose(), SDL_JoystickFromInstanceID(), SDL_JoystickFromPlayerIndex(), SDL_JoystickOpen(), SDL_JoystickQuit(), SDL_JoystickUpdate(), and SDL_PrivateJoystickRemoved().
|
static |
Definition at line 97 of file SDL_joystick.c.
Referenced by SDL_GetNextJoystickInstanceID().
Definition at line 95 of file SDL_joystick.c.
Referenced by SDL_JoystickClose(), SDL_JoystickQuit(), and SDL_JoystickUpdate().