DRAFT |
SDL_GameControllerGetJoystick
Use this function to get the Joystick ID from a Game Controller. The game controller builds on the Joystick API, but to be able to use the Joystick's functions with a gamepad, you need to use this first to get the joystick object.
Contents
Syntax
SDL_Joystick* SDL_GameControllerGetJoystick(SDL_GameController* gamecontroller)
Function Parameters
gamecontroller |
the game controller object that you want to get a joystick from |
Return Value
Returns a SDL_Joystick object; call SDL_GetError() for more information.
Code Examples
#include <stdio.h> /* for printf() */
/* ... */
SDL_GameController *ctrl;
SDL_Joystick *joy;
int i;
for(i = 0; i < SDL_NumJoysticks(); ++i) {
if (SDL_IsGameController(i)) {
printf("Index \'%i\' is a compatible controller, named \'%s\'\n", i, SDL_GameControllerNameForIndex(i));
ctrl = SDL_GameControllerOpen(i);
joy = SDL_GameControllerGetJoystick(ctrl);
} else {
printf("Index \'%i\' is not a compatible controller.\n", i);
}
}
Remarks
This function will give you a SDL_Joystick object, which allows you to use the SDL_Joystick functions with a SDL_GameController object. This would be useful for getting a joystick's position at any given time, even if it hasn't moved (moving it would produce an event, which would have the axis' value).
The pointer returned is owned by the SDL_GameController. You should not call SDL_JoystickClose() on it, for example, since doing so will likely cause SDL to crash.