Mercurial > sdl-ios-xcode
changeset 4237:0adda8ff43ef SDL-1.2
Potentially fixed bug #774
There's a mismatch between ndev and MAX_INPUTS
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 23 Sep 2009 06:57:12 +0000 |
parents | 1fc8c8a5ff00 |
children | cbe5222d051a |
files | src/video/windx5/SDL_dx5events.c |
diffstat | 1 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/windx5/SDL_dx5events.c Wed Sep 23 06:56:28 2009 +0000 +++ b/src/video/windx5/SDL_dx5events.c Wed Sep 23 06:57:12 2009 +0000 @@ -43,7 +43,7 @@ #endif /* The keyboard and mouse device input */ -#define MAX_INPUTS 16 /* Maximum of 16-1 input devices */ +#define MAX_INPUTS 2 #define INPUT_QSIZE 512 /* Buffer up to 512 input messages */ static LPDIRECTINPUT dinput = NULL; @@ -264,6 +264,8 @@ SDL_DIdev[i] = NULL; } } + SDL_DIndev = 0; + /* Release DirectInput */ IDirectInput_Release(dinput); dinput = NULL; @@ -664,15 +666,17 @@ /* Pump the DirectInput flow */ if ( SDL_GetAppState() & SDL_APPINPUTFOCUS ) { - for ( i=0; i<SDL_DIndev; ++i ) { - result = IDirectInputDevice2_Poll(SDL_DIdev[i]); - if ( (result == DIERR_INPUTLOST) || - (result == DIERR_NOTACQUIRED) ) { - if ( SDL_strcmp(inputs[i].name, "mouse") == 0 ) { - mouse_lost = 1; + for ( i=0; i<MAX_INPUTS; ++i ) { + if ( SDL_DIdev[i] != NULL ) { + result = IDirectInputDevice2_Poll(SDL_DIdev[i]); + if ( (result == DIERR_INPUTLOST) || + (result == DIERR_NOTACQUIRED) ) { + if ( SDL_strcmp(inputs[i].name, "mouse") == 0 ) { + mouse_lost = 1; + } + IDirectInputDevice2_Acquire(SDL_DIdev[i]); + IDirectInputDevice2_Poll(SDL_DIdev[i]); } - IDirectInputDevice2_Acquire(SDL_DIdev[i]); - IDirectInputDevice2_Poll(SDL_DIdev[i]); } } }