SDL: Fix joystick initialization on BSD

This commit is contained in:
Jeffrey Pfau 2016-02-20 21:44:51 -08:00
parent 90b18239b0
commit dc62c52faa
2 changed files with 14 additions and 0 deletions

View File

@ -8,6 +8,7 @@ Bugfixes:
- GBA BIOS: Fix RegisterRamReset setting DISPCNT to the wrong value
- OpenGL: Correct boolean vector strcmp strings for uniforms
- Wii: Fix tilting direction
- SDL: Fix joystick initialization on BS
Misc:
- GBA: Slightly optimize GBAProcessEvents
- Qt: Add preset for DualShock 4

View File

@ -62,6 +62,19 @@ bool mSDLInitEvents(struct mSDLEvents* context) {
SDL_JoystickListInit(&context->joysticks, nJoysticks);
if (nJoysticks > 0) {
mSDLUpdateJoysticks(context);
// Some OSes don't do hotplug detection
if (!SDL_JoystickListSize(&context->joysticks)) {
int i;
for (i = 0; i < nJoysticks; ++i) {
struct SDL_JoystickCombo* joystick = SDL_JoystickListAppend(&context->joysticks);
joystick->joystick = SDL_JoystickOpen(i);
joystick->id = SDL_JoystickInstanceID(joystick->joystick);
joystick->index = SDL_JoystickListSize(&context->joysticks) - 1;
#if SDL_VERSION_ATLEAST(2, 0, 0)
joystick->haptic = SDL_HapticOpenFromJoystick(joystick->joystick);
#endif
}
}
}
context->playersAttached = 0;