diff --git a/src/main.c b/src/main.c index 4655d1b..739077e 100644 --- a/src/main.c +++ b/src/main.c @@ -100,6 +100,18 @@ int main(int argc, char *argv[]) case SDL_QUIT: exit(0); break; + + case SDL_WINDOWEVENT: + switch (event.window.event) + { + case SDL_WINDOWEVENT_FOCUS_GAINED: + musicSetPlaying(1); + break; + case SDL_WINDOWEVENT_FOCUS_LOST: + musicSetPlaying(0); + break; + } + break; } } diff --git a/src/main.h b/src/main.h index dbe1d8d..8ad4b2a 100644 --- a/src/main.h +++ b/src/main.h @@ -54,6 +54,7 @@ extern void saveGame(void); extern void initCredits(void); extern void doTrophyAlerts(void); extern void drawTrophyAlert(void); +extern void musicSetPlaying(int playing); App app; Colors colors; diff --git a/src/system/sound.c b/src/system/sound.c index f16a578..ed2727f 100644 --- a/src/system/sound.c +++ b/src/system/sound.c @@ -56,6 +56,21 @@ void stopMusic(void) Mix_HaltMusic(); } +void musicSetPlaying(int playing) +{ + if (music != NULL) + { + if (playing) + { + Mix_ResumeMusic(); + } + else + { + Mix_PauseMusic(); + } + } +} + void playSound(int id) { Mix_PlayChannel(-1, sounds[id], 0);