aboutsummaryrefslogtreecommitdiff
path: root/src/libui_sdl/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libui_sdl/main.cpp')
-rw-r--r--src/libui_sdl/main.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index 1493d03..df5076f 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -57,6 +57,8 @@ u32 ScreenBuffer[256*384];
bool Touching = false;
+SDL_Joystick* Joystick;
+
void AudioCallback(void* data, Uint8* stream, int len)
{
@@ -93,6 +95,12 @@ int EmuThreadFunc(void* burp)
SDL_PauseAudioDevice(audio, 0);
}
+ // TODO: support more joysticks
+ if (SDL_NumJoysticks() > 0)
+ Joystick = SDL_JoystickOpen(0);
+ else
+ Joystick = NULL;
+
u32 nframes = 0;
u32 starttick = SDL_GetTicks();
u32 lasttick = starttick;
@@ -172,6 +180,8 @@ int EmuThreadFunc(void* burp)
EmuStatus = 0;
+ if (Joystick) SDL_JoystickClose(Joystick);
+
if (audio) SDL_CloseAudioDevice(audio);
NDS::DeInit();
@@ -464,6 +474,8 @@ int main(int argc, char** argv)
return 1;
}
+ SDL_JoystickEventState(SDL_ENABLE);
+
uiInitOptions ui_opt;
memset(&ui_opt, 0, sizeof(uiInitOptions));
const char* ui_err = uiInit(&ui_opt);