foxygit / doom Log in
commit ecd6c015cdbf939104fb507d3fbf2e9de44e2f87
Author:     Roman Fomin <rfomin@gmail.com>
AuthorDate: Tue Nov 9 11:26:18 2021 +0700
Commit:     Roman Fomin <rfomin@gmail.com>
CommitDate: Tue Nov 9 11:26:18 2021 +0700

    move declaration of win_midi_stream_opened variable
---
 src/i_sdlmusic.c | 7 +++++--
 src/i_winmusic.c | 9 ---------
 src/i_winmusic.h | 2 --
 3 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/src/i_sdlmusic.c b/src/i_sdlmusic.c
index 40ec7c82..37b7a63e 100644
--- a/src/i_sdlmusic.c
+++ b/src/i_sdlmusic.c
@@ -53,6 +53,8 @@ static boolean music_initialized = false;

 static boolean sdl_was_initialized = false;

+static boolean win_midi_stream_opened = false;
+
 static boolean musicpaused = false;
 static int current_music_volume;

@@ -157,6 +159,7 @@ static void I_SDL_ShutdownMusic(void)
         if (win_midi_stream_opened)
         {
             I_WIN_ShutdownMusic();
+            win_midi_stream_opened = false;
         }
 #endif
         Mix_HaltMusic();
@@ -238,7 +241,7 @@ static boolean I_SDL_InitMusic(void)
     // Don't enable it for GUS, since it handles its own volume just fine.
     if (snd_musicdevice != SNDDEVICE_GUS)
     {
-        I_WIN_InitMusic();
+        win_midi_stream_opened = I_WIN_InitMusic();
     }
 #endif

@@ -290,7 +293,7 @@ static void I_SDL_PlaySong(void *handle, boolean looping)
         return;
     }

-    if (handle == NULL)
+    if (handle == NULL && !win_midi_stream_opened)
     {
         return;
     }
diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index f444d112..0477c56b 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -25,12 +25,6 @@
 #include "m_misc.h"
 #include "midifile.h"

-// Public data
-
-boolean win_midi_stream_opened = false;
-
-// Private data
-
 static HMIDISTRM hMidiStream;
 static HANDLE hBufferReturnEvent;
 static HANDLE hExitEvent;
@@ -352,7 +346,6 @@ boolean I_WIN_InitMusic(void)
     hBufferReturnEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
     hExitEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

-    win_midi_stream_opened = true;
     return true;
 }

@@ -505,8 +498,6 @@ void I_WIN_ShutdownMusic(void)

     CloseHandle(hBufferReturnEvent);
     CloseHandle(hExitEvent);
-
-    win_midi_stream_opened = false;
 }

 #endif
diff --git a/src/i_winmusic.h b/src/i_winmusic.h
index e37f9bef..45c381ca 100644
--- a/src/i_winmusic.h
+++ b/src/i_winmusic.h
@@ -29,8 +29,6 @@ void I_WIN_RegisterSong(char* filename);
 void I_WIN_UnRegisterSong(void);
 void I_WIN_ShutdownMusic(void);

-extern boolean win_midi_stream_opened;
-
 #endif

 #endif