diff options
| author | Michael Maltese <michaeljosephmaltese@gmail.com> | 2016-10-16 13:39:05 -0700 |
|---|---|---|
| committer | Michael Maltese <michaeljosephmaltese@gmail.com> | 2016-11-30 16:07:55 -0800 |
| commit | 3e69d066f5e9ad0a1097d806c656035398bbb7bc (patch) | |
| tree | dd7ab461e209f81876a2b2145a5595812512eb6c /Source/Core/InputCommon/ControllerInterface/SDL | |
| parent | cebb4d84f2a8021a5df2ff2a9d31eba16e1cb5e5 (diff) | |
ControllerInterface: replace Reinitialize with RefreshDevices
The SDL backend crashes when you close a joystick after SDL_Quit has
been called. Some backends don't need to be shutdown and
re-initialized everytime, we can just ask to enumerate devices again.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/SDL')
| -rw-r--r-- | Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp | 6 | ||||
| -rw-r--r-- | Source/Core/InputCommon/ControllerInterface/SDL/SDL.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp index 8f8265e8d0..7da8e66fc6 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp @@ -47,6 +47,12 @@ void Init() // Failed to initialize return; } +} + +void PopulateDevices() +{ + if (!(SDL_WasInit(SDL_INIT_EVERYTHING) & SDL_INIT_JOYSTICK)) + return; // joysticks for (int i = 0; i < SDL_NumJoysticks(); ++i) diff --git a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h index e104af7715..c41bb57614 100644 --- a/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h +++ b/Source/Core/InputCommon/ControllerInterface/SDL/SDL.h @@ -21,6 +21,7 @@ namespace ciface namespace SDL { void Init(); +void PopulateDevices(); class Joystick : public Core::Device { |
