1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
/*
GetJoystickObjFromNum accepts a joystick number and
returns the corresposponding joystick object.
If the Joystick can not be oppened, we return NULL.
Within JOYSTICK joysticks should only be oppened by
calling GetJoystickObjFromNum, not by calling
SDL_JoystickOpen. That's because GetJoystickObjFromNum
keeps track of the object, and if you use the SDL
function you loose track of the ojbect.
*/
#include "StdAfx.h"
#define MAXIMUM_NUM_JOYSTICKS 100
SDL_Joystick *GetJoystickObjFromNum(int joystickNum)
{
static SDL_Joystick *pJoysticks[MAXIMUM_NUM_JOYSTICKS];
static Boolean firstTime=1;
int i;
if(firstTime){
for(i=0;i<MAXIMUM_NUM_JOYSTICKS;i++)
pJoysticks[i] = NULL;
firstTime = 0;
}
if(SDL_JoystickOpened(joystickNum)){
if(pJoysticks[joystickNum] == NULL)
PrintfExit("GetJoystickObjFromNum could not find the stored joystick object");
}
else{
pJoysticks[joystickNum] = SDL_JoystickOpen(joystickNum);
}
return pJoysticks[joystickNum];
}
|