From adbf44ee5c4b48fb5f4ff9c0af08179a1f45c0a9 Mon Sep 17 00:00:00 2001 From: mrdude2478 Date: Fri, 6 Oct 2023 13:23:45 +0100 Subject: [PATCH] don't play non wav sound effects if music is playing --- source/ui/mainPage.cpp | 2 +- source/util/util.cpp | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/source/ui/mainPage.cpp b/source/ui/mainPage.cpp index 3f50d10..798007c 100644 --- a/source/ui/mainPage.cpp +++ b/source/ui/mainPage.cpp @@ -150,7 +150,7 @@ namespace inst::ui { const char* x = loadsound.c_str(); audio = Mix_LoadMUS(x); if (audio != NULL) { - Mix_PlayMusic(audio, -1); //loop "infinitely" + Mix_PlayMusic(audio, -1); //-1 loop "infinitely" } } diff --git a/source/util/util.cpp b/source/util/util.cpp index 1bc4659..400543e 100644 --- a/source/util/util.cpp +++ b/source/util/util.cpp @@ -306,20 +306,24 @@ namespace inst::util { playWav(audioPath); return; } - //if not wav try to play - SDL_Init(SDL_INIT_AUDIO); - Mix_Init(MIX_INIT_MP3); //enable mp3 support - Mix_Init(MIX_INIT_FLAC); //enable flac support - Mix_Init(MIX_INIT_OGG); //enable ogg support - Mix_Init(MIX_INIT_MID); - Mix_Init(MIX_INIT_OPUS); - Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096); - const char* x = audioPath.c_str(); - music = Mix_LoadMUS(x); - if (music != NULL) { - Mix_PlayMusic(music, 1); - } - else { + + //check if music is already playing, if not play something. + if (Mix_PlayingMusic() == 0) { + //if not wav try to play + SDL_Init(SDL_INIT_AUDIO); + Mix_Init(MIX_INIT_MP3); //enable mp3 support + Mix_Init(MIX_INIT_FLAC); //enable flac support + Mix_Init(MIX_INIT_OGG); //enable ogg support + Mix_Init(MIX_INIT_MID); + Mix_Init(MIX_INIT_OPUS); + Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096); + const char* x = audioPath.c_str(); + music = Mix_LoadMUS(x); + if (music != NULL) { + Mix_PlayMusic(music, 1); + return; + } + Mix_HaltChannel(-1); Mix_FreeMusic(music); Mix_CloseAudio();