SDL
2.0
|
#include "../SDL_internal.h"
#include "SDL.h"
#include "SDL_atomic.h"
#include "SDL_events.h"
#include "SDL_sysjoystick.h"
#include "SDL_assert.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>
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 1993 of file SDL_joystick.c.
Referenced by LAW_Decode(), and SDL_JoystickGetGUIDFromString().
|
static |
Definition at line 106 of file SDL_joystick.c.
References SDL_joystick_player_count, and SDL_joystick_players.
Referenced by SDL_PrivateJoystickAdded(), and SDL_SetJoystickIDForPlayerIndex().
|
static |
Definition at line 285 of file SDL_joystick.c.
References SDL_strlen, and SDL_strncmp.
Referenced by SDL_JoystickName(), and SDL_JoystickNameForIndex().
const char* SDL_GetCustomJoystickManufacturer | ( | const char * | manufacturer | ) |
Definition at line 1386 of file SDL_joystick.c.
References GuessControllerName().
SDL_bool SDL_GetDriverAndJoystickIndex | ( | int | device_index, |
SDL_JoystickDriver ** | driver, | ||
int * | driver_index | ||
) |
Definition at line 260 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_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_PrivateJoystickAdded(), 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 1409 of file SDL_joystick.c.
References GuessControllerType(), i, k_eControllerType_PS3Controller, k_eControllerType_PS4Controller, 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_UNKNOWN, SDL_CONTROLLER_TYPE_XBOX360, SDL_CONTROLLER_TYPE_XBOXONE, and SDL_strcmp.
Referenced by SDL_GetJoystickGameControllerTypeFromGUID(), and SDL_ShouldIgnoreJoystick().
SDL_GameControllerType SDL_GetJoystickGameControllerTypeFromGUID | ( | SDL_JoystickGUID | guid, |
const char * | name | ||
) |
Definition at line 1392 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_GameControllerGetType(), and SDL_GameControllerTypeForIndex().
void SDL_GetJoystickGUIDInfo | ( | SDL_JoystickGUID | guid, |
Uint16 * | vendor, | ||
Uint16 * | product, | ||
Uint16 * | version | ||
) |
Definition at line 1337 of file SDL_joystick.c.
References SDL_JoystickGUID::data, and if.
Referenced by 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 1611 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_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 135 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 | ( | ) |
Definition at line 250 of file SDL_joystick.c.
References SDL_AtomicIncRef, and SDL_next_joystick_instance_id.
Referenced by IOS_AddJoystickDevice().
|
static |
Definition at line 119 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 1547 of file SDL_joystick.c.
References SDL_JoystickGUID::data, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_PrivateGetControllerMappingForGUID(), and SDL_PrivateGetControllerMappingForNameAndGUID().
Definition at line 1526 of file SDL_joystick.c.
References GuessControllerType(), and k_eControllerType_SwitchInputOnlyController.
Definition at line 1579 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 1595 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 1552 of file SDL_joystick.c.
References i, MAKE_VIDPID, SDL_arraysize, SDL_FALSE, and SDL_TRUE.
Referenced by SDL_GetJoystickGUIDType().
Definition at line 1533 of file SDL_joystick.c.
References GuessControllerType(), k_eControllerType_SteamController, and k_eControllerType_SteamControllerV2.
SDL_bool SDL_IsJoystickXInput | ( | SDL_JoystickGUID | guid | ) |
Definition at line 1541 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 1665 of file SDL_joystick.c.
References i, SDL_arraysize, SDL_FALSE, SDL_strcasecmp, and SDL_TRUE.
Referenced by SDL_ShouldIgnoreJoystick().
|
static |
Definition at line 191 of file SDL_joystick.c.
References SDL_FALSE, SDL_joystick_allows_background_events, and SDL_TRUE.
Referenced by SDL_JoystickInit(), and SDL_JoystickQuit().
|
static |
Definition at line 338 of file SDL_joystick.c.
References i, SDL_GameController::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 800 of file SDL_joystick.c.
References NULL, SDL_free, SDL_JoystickRumble(), 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 2041 of file SDL_joystick.c.
References SDL_JOYSTICK_POWER_UNKNOWN, and SDL_PrivateJoystickValid().
int SDL_JoystickEventState | ( | int | state | ) |
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 1306 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 680 of file SDL_joystick.c.
References 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 698 of file SDL_joystick.c.
References 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 654 of file SDL_joystick.c.
References SDL_FALSE, and SDL_PrivateJoystickValid().
Sint16 SDL_JoystickGetAxis | ( | SDL_Joystick * | joystick, |
int | axis | ||
) |
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 546 of file SDL_joystick.c.
References axis, 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 566 of file SDL_joystick.c.
References axis, SDL_FALSE, SDL_PrivateJoystickValid(), SDL_SetError, and state.
int SDL_JoystickGetBall | ( | SDL_Joystick * | joystick, |
int | ball, | ||
int * | dx, | ||
int * | dy | ||
) |
Get the ball axis change since the last poll.
The ball indices start at index 0.
Definition at line 605 of file SDL_joystick.c.
References retval, SDL_PrivateJoystickValid(), and SDL_SetError.
Uint8 SDL_JoystickGetButton | ( | SDL_Joystick * | joystick, |
int | button | ||
) |
Get the current state of a button on a joystick.
The button indices start at index 0.
Definition at line 633 of file SDL_joystick.c.
References button, 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 1828 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 1899 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 1885 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceInstanceID, SDL_GetDriverAndJoystickIndex(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickGetDeviceIndexFromInstanceID(), and SDL_JoystickGetDevicePlayerIndex().
int SDL_JoystickGetDevicePlayerIndex | ( | int | device_index | ) |
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 321 of file SDL_joystick.c.
References SDL_GetPlayerIndexForJoystickID(), SDL_JoystickGetDeviceInstanceID(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
Uint16 SDL_JoystickGetDeviceProduct | ( | int | device_index | ) |
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 1853 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetDeviceGUID().
Uint16 SDL_JoystickGetDeviceProductVersion | ( | int | device_index | ) |
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 1862 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 1871 of file SDL_joystick.c.
References SDL_GetJoystickGUIDType(), SDL_IsGameController, SDL_JOYSTICK_TYPE_GAMECONTROLLER, SDL_JOYSTICK_TYPE_UNKNOWN, and SDL_JoystickGetDeviceGUID().
Uint16 SDL_JoystickGetDeviceVendor | ( | int | device_index | ) |
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 1844 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 1916 of file SDL_joystick.c.
References 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 2013 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 1968 of file SDL_joystick.c.
References SDL_JoystickGUID::data, i, and NULL.
Uint8 SDL_JoystickGetHat | ( | SDL_Joystick * | joystick, |
int | hat | ||
) |
Get the current state of a POV hat on a joystick.
The hat indices start at index 0.
Definition at line 585 of file SDL_joystick.c.
References 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 731 of file SDL_joystick.c.
References 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 1935 of file SDL_joystick.c.
References 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 1944 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetGUID().
SDL_JoystickType SDL_JoystickGetType | ( | SDL_Joystick * | joystick | ) |
Get the type of an opened joystick.
Definition at line 1953 of file SDL_joystick.c.
References 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 1926 of file SDL_joystick.c.
References NULL, SDL_GetJoystickGUIDInfo(), and SDL_JoystickGetGUID().
Referenced by SDL_JoystickAxesCenteredAtZero().
int SDL_JoystickInit | ( | void | ) |
Definition at line 201 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 667 of file SDL_joystick.c.
References SDL_PrivateJoystickValid().
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 718 of file SDL_joystick.c.
References NULL, SDL_FixupJoystickName(), 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 302 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceName, NULL, SDL_FixupJoystickName(), 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 498 of file SDL_joystick.c.
References 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 522 of file SDL_joystick.c.
References SDL_PrivateJoystickValid().
int SDL_JoystickNumButtons | ( | SDL_Joystick * | joystick | ) |
Get the number of buttons on a joystick.
Definition at line 534 of file SDL_joystick.c.
References SDL_PrivateJoystickValid().
int SDL_JoystickNumHats | ( | SDL_Joystick * | joystick | ) |
Get the number of POV hats on a joystick.
Definition at line 510 of file SDL_joystick.c.
References 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 372 of file SDL_joystick.c.
References SDL_JoystickDriver::GetDeviceGUID, SDL_JoystickDriver::GetDeviceInstanceID, SDL_JoystickDriver::GetDeviceName, i, SDL_GameController::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 858 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 | ||
) |
Trigger 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 762 of file SDL_joystick.c.
References SDL_GetTicks(), SDL_LockJoysticks(), SDL_MAX_RUMBLE_DURATION_MS, SDL_min, SDL_PrivateJoystickValid(), and SDL_UnlockJoysticks().
Referenced by SDL_JoystickClose(), and SDL_JoystickUpdate().
void SDL_JoystickSetPlayerIndex | ( | SDL_Joystick * | joystick, |
int | player_index | ||
) |
Set the player index of an opened joystick
Definition at line 750 of file SDL_joystick.c.
References SDL_LockJoysticks(), SDL_PrivateJoystickValid(), SDL_SetJoystickIDForPlayerIndex(), and SDL_UnlockJoysticks().
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 1214 of file SDL_joystick.c.
References SDL_JoystickDriver::Detect, HIDAPI_UpdateDevices(), i, SDL_arraysize, SDL_FALSE, SDL_GameControllerHandleDelayedGuideButton(), SDL_GetTicks(), SDL_HAT_CENTERED, SDL_INIT_JOYSTICK, SDL_joystick_drivers, SDL_JoystickClose(), SDL_JoystickRumble(), SDL_joysticks, SDL_LockJoysticks(), SDL_PrivateJoystickAxis(), SDL_PrivateJoystickButton(), SDL_PrivateJoystickHat(), 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 90 of file SDL_joystick.c.
References SDL_joystick_lock, and SDL_LockMutex.
Referenced by SDL_JoystickClose(), SDL_JoystickFromInstanceID(), SDL_JoystickFromPlayerIndex(), SDL_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_JoystickQuit(), SDL_JoystickRumble(), SDL_JoystickSetPlayerIndex(), SDL_JoystickUpdate(), SDL_NumJoysticks(), SDL_PrivateJoystickAdded(), and SDL_PrivateJoystickRemoved().
int SDL_NumJoysticks | ( | void | ) |
Count the number of joysticks attached to the system right now
Definition at line 235 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 921 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().
Referenced by IOS_AddJoystickDevice().
Definition at line 1023 of file SDL_joystick.c.
References axis, SDL_JoystickAxisInfo::has_initial_value, SDL_JoystickAxisInfo::has_second_value, SDL_JoystickAxisInfo::initial_value, SDL_abs, SDL_ENABLE, SDL_GetEventState, SDL_JOYAXISMOTION, SDL_JOYSTICK_AXIS_MAX, SDL_PrivateJoystickAxis(), 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(), SDL_JoystickUpdate(), and SDL_PrivateJoystickAxis().
Definition at line 1126 of file SDL_joystick.c.
References SDL_ENABLE, SDL_GetEventState, SDL_JOYBALLMOTION, SDL_PrivateJoystickShouldIgnoreEvent(), and SDL_PushEvent.
void SDL_PrivateJoystickBatteryLevel | ( | SDL_Joystick * | joystick, |
SDL_JoystickPowerLevel | ePowerLevel | ||
) |
Definition at line 2035 of file SDL_joystick.c.
Definition at line 1162 of file SDL_joystick.c.
References button, SDL_ENABLE, SDL_GetEventState, SDL_JOYBUTTONDOWN, SDL_JOYBUTTONUP, SDL_PRESSED, SDL_PrivateJoystickShouldIgnoreEvent(), SDL_PushEvent, SDL_RELEASED, and state.
Referenced by IOS_MFIJoystickUpdate(), and SDL_JoystickUpdate().
Definition at line 1086 of file SDL_joystick.c.
References SDL_ENABLE, SDL_GetEventState, SDL_HAT_CENTERED, SDL_JOYHATMOTION, SDL_PrivateJoystickShouldIgnoreEvent(), and SDL_PushEvent.
Referenced by IOS_MFIJoystickUpdate(), and SDL_JoystickUpdate().
void SDL_PrivateJoystickRemoved | ( | SDL_JoystickID | device_instance | ) |
Definition at line 987 of file SDL_joystick.c.
References SDL_ENABLE, SDL_FALSE, SDL_GetEventState, SDL_GetPlayerIndexForJoystickID(), SDL_JOYDEVICEREMOVED, SDL_joystick_players, SDL_joysticks, SDL_LockJoysticks(), SDL_PushEvent, SDL_TRUE, SDL_UnlockJoysticks(), and UpdateEventsForDeviceRemoval().
Referenced by IOS_RemoveJoystickDevice().
|
static |
Definition at line 906 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().
SDL_bool SDL_PrivateJoystickValid | ( | SDL_Joystick * | joystick | ) |
Definition at line 480 of file SDL_joystick.c.
References 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_JoystickInstanceID(), SDL_JoystickIsHaptic(), SDL_JoystickName(), SDL_JoystickNumAxes(), SDL_JoystickNumBalls(), SDL_JoystickNumButtons(), SDL_JoystickNumHats(), SDL_JoystickRumble(), and SDL_JoystickSetPlayerIndex().
|
static |
Definition at line 144 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 1698 of file SDL_joystick.c.
References i, MAKE_VIDPID, NULL, SDL_arraysize, SDL_CONTROLLER_TYPE_PS4, SDL_FALSE, SDL_GetJoystickGameControllerType(), SDL_GetJoystickGUIDInfo(), SDL_IsGameControllerNameAndGUID(), SDL_IsPS4RemapperRunning(), SDL_ShouldIgnoreGameController(), and SDL_TRUE.
Definition at line 98 of file SDL_joystick.c.
References SDL_joystick_lock, and SDL_UnlockMutex.
Referenced by SDL_JoystickClose(), SDL_JoystickFromInstanceID(), SDL_JoystickFromPlayerIndex(), SDL_JoystickGetDeviceGUID(), SDL_JoystickGetDeviceIndexFromInstanceID(), SDL_JoystickGetDeviceInstanceID(), SDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_JoystickNameForIndex(), SDL_JoystickOpen(), SDL_JoystickQuit(), SDL_JoystickRumble(), SDL_JoystickSetPlayerIndex(), SDL_JoystickUpdate(), SDL_NumJoysticks(), SDL_PrivateJoystickAdded(), and SDL_PrivateJoystickRemoved().
|
static |
Definition at line 962 of file SDL_joystick.c.
References events, i, SDL_Event::jdevice, NULL, SDL_ADDEVENT, SDL_GETEVENT, SDL_JOYDEVICEADDED, SDL_PEEKEVENT, SDL_PeepEvents, SDL_small_alloc, SDL_small_free, and SDL_JoyDeviceEvent::which.
Referenced by SDL_PrivateJoystickRemoved().
Definition at line 81 of file SDL_joystick.c.
Referenced by SDL_JoystickAllowBackgroundEventsChanged(), and SDL_PrivateJoystickShouldIgnoreEvent().
|
static |
Definition at line 49 of file SDL_joystick.c.
Referenced by SDL_GetDriverAndJoystickIndex(), SDL_JoystickInit(), SDL_JoystickQuit(), SDL_JoystickUpdate(), and SDL_NumJoysticks().
Definition at line 84 of file SDL_joystick.c.
Referenced by SDL_JoystickInit(), SDL_JoystickQuit(), SDL_LockJoysticks(), and SDL_UnlockJoysticks().
|
static |
Definition at line 86 of file SDL_joystick.c.
Referenced by SDL_FindFreePlayerIndex(), SDL_GetJoystickIDForPlayerIndex(), SDL_GetPlayerIndexForJoystickID(), SDL_JoystickQuit(), and SDL_SetJoystickIDForPlayerIndex().
|
static |
Definition at line 87 of file SDL_joystick.c.
Referenced by SDL_FindFreePlayerIndex(), SDL_GetJoystickIDForPlayerIndex(), SDL_GetPlayerIndexForJoystickID(), SDL_JoystickQuit(), SDL_PrivateJoystickRemoved(), and SDL_SetJoystickIDForPlayerIndex().
|
static |
Definition at line 82 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 85 of file SDL_joystick.c.
Referenced by SDL_GetNextJoystickInstanceID().
Definition at line 83 of file SDL_joystick.c.
Referenced by SDL_JoystickClose(), SDL_JoystickQuit(), and SDL_JoystickUpdate().