diff --git a/src/video/psp/SDL_pspevents.c b/src/video/psp/SDL_pspevents.c index 321e102c0..f47e50dec 100644 --- a/src/video/psp/SDL_pspevents.c +++ b/src/video/psp/SDL_pspevents.c @@ -237,7 +237,7 @@ void PSP_InitOSKeymap(_THIS) #endif } -void PSP_EventInit(_THIS) +int PSP_EventInit(_THIS) { #ifdef PSPIRKEYB int outputmode = PSP_IRKBD_OUTPUT_MODE_SCANCODE; @@ -251,14 +251,13 @@ void PSP_EventInit(_THIS) #endif /* Start thread to read data */ if ((event_sem = SDL_CreateSemaphore(1)) == NULL) { - SDL_SetError("Can't create input semaphore"); - return; + return SDL_SetError("Can't create input semaphore"); } running = 1; if ((thread = SDL_CreateThreadInternal(EventUpdate, "PSPInputThread", 4096, NULL)) == NULL) { - SDL_SetError("Can't create input thread"); - return; + return SDL_SetError("Can't create input thread"); } + return 0; } void PSP_EventQuit(_THIS) diff --git a/src/video/psp/SDL_pspevents_c.h b/src/video/psp/SDL_pspevents_c.h index 9183def4c..7377c8380 100644 --- a/src/video/psp/SDL_pspevents_c.h +++ b/src/video/psp/SDL_pspevents_c.h @@ -23,5 +23,7 @@ extern void PSP_InitOSKeymap(_THIS); extern void PSP_PumpEvents(_THIS); +extern int PSP_EventInit(_THIS); +extern void PSP_EventQuit(_THIS); /* end of SDL_pspevents_c.h ... */ diff --git a/src/video/psp/SDL_pspvideo.c b/src/video/psp/SDL_pspvideo.c index a7212bea6..ba8b9628c 100644 --- a/src/video/psp/SDL_pspvideo.c +++ b/src/video/psp/SDL_pspvideo.c @@ -145,6 +145,10 @@ int PSP_VideoInit(_THIS) SDL_VideoDisplay display; SDL_DisplayMode current_mode; + if (PSP_EventInit(_this) == -1) { + return -1; /* error string would already be set */ + } + SDL_zero(current_mode); current_mode.w = 480; @@ -169,11 +173,13 @@ int PSP_VideoInit(_THIS) SDL_AddDisplayMode(&display, ¤t_mode); SDL_AddVideoDisplay(&display, SDL_FALSE); - return 1; + + return 0; } void PSP_VideoQuit(_THIS) { + PSP_EventQuit(_this); } void PSP_GetDisplayModes(_THIS, SDL_VideoDisplay *display)