From: Holger Schemel Date: Sat, 30 Aug 2014 12:15:52 +0000 (+0200) Subject: fixed music still being played in Android version when in background X-Git-Tag: 4.0.0.0-rc1~356 X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=commitdiff_plain;h=6a8e3d4379f0a7421e046ca86168ce1581862a1f fixed music still being played in Android version when in background --- diff --git a/ChangeLog b/ChangeLog index 5530b282..b1896e90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2014-08-30 + * fixed music still being played in Android version when in background + 2014-08-30 * added Android "menu" button to be treated as "yes" requester button (while the Android "back" button was already treated as "no" button) diff --git a/src/conftime.h b/src/conftime.h index 3affe7c9..0e3b4273 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "2014-08-28 11:08" +#define COMPILE_DATE_STRING "2014-08-28 16:55" diff --git a/src/events.c b/src/events.c index 8ca30fce..d91a7c46 100644 --- a/src/events.c +++ b/src/events.c @@ -175,6 +175,13 @@ void EventLoop(void) case EVENT_TEXTINPUT: HandleTextEvent((TextEvent *) &event); break; + + case SDL_APP_WILLENTERBACKGROUND: + case SDL_APP_DIDENTERBACKGROUND: + case SDL_APP_WILLENTERFOREGROUND: + case SDL_APP_DIDENTERFOREGROUND: + HandlePauseResumeEvent((PauseResumeEvent *) &event); + break; #endif case EVENT_KEYPRESS: @@ -976,6 +983,19 @@ void HandleTextEvent(TextEvent *event) HandleKey(key, KEY_RELEASED); } } + +void HandlePauseResumeEvent(PauseResumeEvent *event) +{ + if (event->type == SDL_APP_WILLENTERBACKGROUND) + { + Mix_PauseMusic(); + } + else if (event->type == SDL_APP_DIDENTERFOREGROUND) + { + Mix_ResumeMusic(); + } +} + #endif void HandleKeyEvent(KeyEvent *event) diff --git a/src/events.h b/src/events.h index 2b1022b0..e358dc85 100644 --- a/src/events.h +++ b/src/events.h @@ -35,6 +35,7 @@ void HandleMotionEvent(MotionEvent *); void HandleWindowEvent(WindowEvent *); void HandleFingerEvent(FingerEvent *); void HandleTextEvent(TextEvent *); +void HandlePauseResumeEvent(PauseResumeEvent *); #endif void HandleKeyEvent(KeyEvent *); void HandleFocusEvent(FocusChangeEvent *); diff --git a/src/libgame/sdl.h b/src/libgame/sdl.h index 00b2698a..fe4bf7da 100644 --- a/src/libgame/sdl.h +++ b/src/libgame/sdl.h @@ -86,6 +86,7 @@ typedef SDL_MouseMotionEvent MotionEvent; #if defined(TARGET_SDL2) typedef SDL_TouchFingerEvent FingerEvent; typedef SDL_TextInputEvent TextEvent; +typedef SDL_Event PauseResumeEvent; typedef SDL_WindowEvent WindowEvent; #endif typedef SDL_KeyboardEvent KeyEvent;