From 6a8e3d4379f0a7421e046ca86168ce1581862a1f Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sat, 30 Aug 2014 14:15:52 +0200 Subject: [PATCH] fixed music still being played in Android version when in background --- ChangeLog | 3 +++ src/conftime.h | 2 +- src/events.c | 20 ++++++++++++++++++++ src/events.h | 1 + src/libgame/sdl.h | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) 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; -- 2.34.1