zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SDL_joystick.c File Reference
#include "SDL_config.h"
#include "SDL.h"
#include "SDL_events.h"
#include "SDL_sysjoystick.h"
#include "SDL_assert.h"
#include "SDL_hints.h"
#include "../events/SDL_events_c.h"

Go to the source code of this file.

Functions

static unsigned char nibble (char c)
 
static void SDL_JoystickAllowBackgroundEventsChanged (void *userdata, const char *name, const char *oldValue, const char *hint)
 
void SDL_JoystickClose (SDL_Joystick *joystick)
 
int SDL_JoystickEventState (int state)
 
SDL_bool SDL_JoystickGetAttached (SDL_Joystick *joystick)
 
Sint16 SDL_JoystickGetAxis (SDL_Joystick *joystick, int axis)
 
int SDL_JoystickGetBall (SDL_Joystick *joystick, int ball, int *dx, int *dy)
 
Uint8 SDL_JoystickGetButton (SDL_Joystick *joystick, int button)
 
SDL_JoystickGUID SDL_JoystickGetDeviceGUID (int device_index)
 
SDL_JoystickGUID SDL_JoystickGetGUID (SDL_Joystick *joystick)
 
SDL_JoystickGUID SDL_JoystickGetGUIDFromString (const char *pchGUID)
 
void SDL_JoystickGetGUIDString (SDL_JoystickGUID guid, char *pszGUID, int cbGUID)
 
Uint8 SDL_JoystickGetHat (SDL_Joystick *joystick, int hat)
 
int SDL_JoystickInit (void)
 
SDL_JoystickID SDL_JoystickInstanceID (SDL_Joystick *joystick)
 
const char * SDL_JoystickName (SDL_Joystick *joystick)
 
const char * SDL_JoystickNameForIndex (int device_index)
 
int SDL_JoystickNumAxes (SDL_Joystick *joystick)
 
int SDL_JoystickNumBalls (SDL_Joystick *joystick)
 
int SDL_JoystickNumButtons (SDL_Joystick *joystick)
 
int SDL_JoystickNumHats (SDL_Joystick *joystick)
 
SDL_JoystickSDL_JoystickOpen (int device_index)
 
void SDL_JoystickQuit (void)
 
void SDL_JoystickUpdate (void)
 
int SDL_NumJoysticks (void)
 
int SDL_PrivateJoystickAxis (SDL_Joystick *joystick, Uint8 axis, Sint16 value)
 
int SDL_PrivateJoystickBall (SDL_Joystick *joystick, Uint8 ball, Sint16 xrel, Sint16 yrel)
 
int SDL_PrivateJoystickButton (SDL_Joystick *joystick, Uint8 button, Uint8 state)
 
int SDL_PrivateJoystickHat (SDL_Joystick *joystick, Uint8 hat, Uint8 value)
 
SDL_bool SDL_PrivateJoystickNeedsPolling ()
 
static SDL_bool SDL_PrivateJoystickShouldIgnoreEvent ()
 
int SDL_PrivateJoystickValid (SDL_Joystick *joystick)
 

Variables

static SDL_bool SDL_joystick_allows_background_events = SDL_FALSE
 
static SDL_JoystickSDL_joysticks = NULL
 
static SDL_JoystickSDL_updating_joystick = NULL
 

Function Documentation

static unsigned char nibble ( char  c)
static

Definition at line 797 of file SDL_joystick.c.

Referenced by DecodeIMA4Block(), EncodeIMA4Block(), and SDL_JoystickGetGUIDFromString().

static void SDL_JoystickAllowBackgroundEventsChanged ( void userdata,
const char *  name,
const char *  oldValue,
const char *  hint 
)
static

Definition at line 40 of file SDL_joystick.c.

References SDL_FALSE, SDL_joystick_allows_background_events, and SDL_TRUE.

Referenced by SDL_JoystickInit().

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 708 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, and SDL_QUERY.

Referenced by SDL_ShouldPollJoystick().

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 359 of file SDL_joystick.c.

References SDL_FALSE, SDL_PrivateJoystickValid(), and SDL_SYS_JoystickAttached().

Referenced by Zeni::Controllers::detect_removed(), and SDL_GameControllerGetAttached().

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 270 of file SDL_joystick.c.

References _SDL_Joystick::axes, _SDL_Joystick::naxes, SDL_PrivateJoystickValid(), and SDL_SetError().

Referenced by SDL_GameControllerGetAxis(), and SDL_GameControllerGetButton().

int SDL_JoystickGetBall ( SDL_Joystick joystick,
int  ball,
int dx,
int dy 
)

Get the ball axis change since the last poll.

Returns
0, or -1 if you passed it invalid parameters.

The ball indices start at index 0.

Definition at line 310 of file SDL_joystick.c.

References _SDL_Joystick::balls, _SDL_Joystick::balldelta::dx, _SDL_Joystick::balldelta::dy, _SDL_Joystick::nballs, 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 338 of file SDL_joystick.c.

References _SDL_Joystick::buttons, _SDL_Joystick::nbuttons, SDL_PrivateJoystickValid(), and SDL_SetError().

Referenced by SDL_GameControllerGetAxis(), and SDL_GameControllerGetButton().

SDL_JoystickGUID SDL_JoystickGetDeviceGUID ( int  device_index)

Return the GUID for the joystick at this index

Definition at line 752 of file SDL_joystick.c.

References SDL_NumJoysticks(), SDL_SetError(), SDL_SYS_JoystickGetDeviceGUID(), and SDL_zero.

Referenced by SDL_PrivateGetControllerMapping().

SDL_JoystickGUID SDL_JoystickGetGUID ( SDL_Joystick joystick)

Return the GUID for this opened joystick

Definition at line 764 of file SDL_joystick.c.

References SDL_SYS_JoystickGetGUID().

Referenced by Zeni::Controllers::device_added().

SDL_JoystickGUID SDL_JoystickGetGUIDFromString ( const char *  pchGUID)

convert a string into a joystick formatted guid

Definition at line 824 of file SDL_joystick.c.

References i, nibble(), SDL_memset(), and SDL_strlen().

Referenced by SDL_GameControllerAddMapping().

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 770 of file SDL_joystick.c.

References SDL_JoystickGUID::data, i, and NULL.

Referenced by Zeni::Controllers::device_added(), and SDL_GameControllerMappingForGUID().

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.

Returns
The return value is one of the following positions:

Definition at line 290 of file SDL_joystick.c.

References _SDL_Joystick::hats, _SDL_Joystick::nhats, SDL_PrivateJoystickValid(), and SDL_SetError().

Referenced by SDL_GameControllerGetButton().

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 372 of file SDL_joystick.c.

References _SDL_Joystick::instance_id, and SDL_PrivateJoystickValid().

Referenced by Zeni::Controllers::device_added().

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 385 of file SDL_joystick.c.

References _SDL_Joystick::name, NULL, and SDL_PrivateJoystickValid().

Referenced by Zeni::Controllers::get_controller_name().

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 84 of file SDL_joystick.c.

References NULL, SDL_NumJoysticks(), SDL_SetError(), and SDL_SYS_JoystickNameForDeviceIndex().

int SDL_JoystickNumAxes ( SDL_Joystick joystick)

Get the number of general axis controls on a joystick.

Definition at line 222 of file SDL_joystick.c.

References _SDL_Joystick::naxes, 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 246 of file SDL_joystick.c.

References _SDL_Joystick::nballs, and SDL_PrivateJoystickValid().

int SDL_JoystickNumButtons ( SDL_Joystick joystick)

Get the number of buttons on a joystick.

Definition at line 258 of file SDL_joystick.c.

References _SDL_Joystick::nbuttons, and SDL_PrivateJoystickValid().

int SDL_JoystickNumHats ( SDL_Joystick joystick)

Get the number of POV hats on a joystick.

Definition at line 234 of file SDL_joystick.c.

References _SDL_Joystick::nhats, and SDL_PrivateJoystickValid().

SDL_Joystick* SDL_JoystickOpen ( int  device_index)
int SDL_NumJoysticks ( void  )

Count the number of joysticks attached to the system right now

Definition at line 75 of file SDL_joystick.c.

References SDL_SYS_NumJoysticks().

Referenced by SDL_GameControllerOpen(), SDL_JoystickGetDeviceGUID(), SDL_JoystickNameForIndex(), and SDL_JoystickOpen().

SDL_bool SDL_PrivateJoystickNeedsPolling ( )

Definition at line 741 of file SDL_joystick.c.

References NULL, SDL_SYS_JoystickNeedsPolling(), and SDL_TRUE.

Referenced by SDL_ShouldPollJoystick().

Variable Documentation

SDL_bool SDL_joystick_allows_background_events = SDL_FALSE
static
SDL_Joystick* SDL_joysticks = NULL
static

Definition at line 36 of file SDL_joystick.c.

Referenced by SDL_JoystickClose(), SDL_JoystickOpen(), and SDL_JoystickUpdate().

SDL_Joystick* SDL_updating_joystick = NULL
static

Definition at line 37 of file SDL_joystick.c.