Fixed bug 3935 - Not find joysticks if android run 24-48 days.

Alexander Orefkov

In src\joystick\android\SDL_sysjoystick.c in SDL_SYS_JoystickDetect when SDL_GetTicks return number grater 2147483648 (after 24.85 days uptime) SDL_TICKS_PASSED(SDL_GetTicks(), timeout) return FALSE and Android_JNI_PollInputDevices is never calling.
And in JoystickByDeviceId - when search for newly added joystic - after SDL_SYS_JoystickDetect item not reinitilized, and always stay NULL, cause return NULL instead of added joystick.
This commit is contained in:
Sam Lantinga 2017-11-02 08:48:14 -07:00
parent 522901b88d
commit c954b53830

View File

@ -460,7 +460,7 @@ SDL_SYS_JoystickDetect(void)
* Ref: http://developer.android.com/reference/android/hardware/input/InputManager.InputDeviceListener.html * Ref: http://developer.android.com/reference/android/hardware/input/InputManager.InputDeviceListener.html
*/ */
static Uint32 timeout = 0; static Uint32 timeout = 0;
if (SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { if (!timeout || SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) {
timeout = SDL_GetTicks() + 3000; timeout = SDL_GetTicks() + 3000;
Android_JNI_PollInputDevices(); Android_JNI_PollInputDevices();
} }