From 9a5fc5f66a31baf713c6f32f7a696b933da6907b Mon Sep 17 00:00:00 2001
From: mazmazz <mar.marcoz@outlook.com>
Date: Thu, 23 Aug 2018 09:37:02 -0400
Subject: [PATCH] Loose ends other targets

---
 src/android/i_sound.c  |   8 +--
 src/djgppdos/i_sound.c |   4 +-
 src/dummy/i_sound.c    |   8 +--
 src/sdl/sdl_sound.c    |   6 +--
 src/win32/win_main.c   |   4 +-
 src/win32/win_snd.c    | 111 ++++++++++++++++++++---------------------
 6 files changed, 69 insertions(+), 72 deletions(-)

diff --git a/src/android/i_sound.c b/src/android/i_sound.c
index 7440676230..ed666428ce 100644
--- a/src/android/i_sound.c
+++ b/src/android/i_sound.c
@@ -64,12 +64,12 @@ void I_InitMusic(void){}
 
 void I_ShutdownMusic(void){}
 
-void I_PauseSong(INT32 handle)
+void I_PauseSong(void)
 {
         (void)handle;
 }
 
-void I_ResumeSong(INT32 handle)
+void I_ResumeSong(void)
 {
         (void)handle;
 }
@@ -80,7 +80,7 @@ void I_ResumeSong(INT32 handle)
 
 UINT8 midimusic_started = 0;
 
-boolean I_LoadSong(void *data, size_t len)
+boolean I_LoadSong(char *data, size_t len)
 {
         (void)data;
         (void)len;
@@ -92,7 +92,7 @@ void I_SetMIDIMusicVolume(INT32 volume)
         (void)volume;
 }
 
-boolean I_PlaySong(void)
+boolean I_PlaySong(boolean looping)
 {
         (void)handle;
         (void)looping;
diff --git a/src/djgppdos/i_sound.c b/src/djgppdos/i_sound.c
index a0ad285533..cf66cbd2e8 100644
--- a/src/djgppdos/i_sound.c
+++ b/src/djgppdos/i_sound.c
@@ -408,7 +408,7 @@ void I_ShutdownMusic(void)
 	music_started=false;
 }
 
-boolean I_PlaySong(void)
+boolean I_PlaySong(boolean looping)
 {
 	handle = 0;
 	if (nomidimusic)
@@ -471,7 +471,7 @@ void I_UnloadSong(void)
 	//destroy_midi(currsong);
 }
 
-boolean I_LoadSong(void *data, size_t len)
+boolean I_LoadSong(char *data, size_t len)
 {
 	int e = len; //Alam: For error
 	if (nomidimusic)
diff --git a/src/dummy/i_sound.c b/src/dummy/i_sound.c
index a70dcef833..181abdf519 100644
--- a/src/dummy/i_sound.c
+++ b/src/dummy/i_sound.c
@@ -70,12 +70,12 @@ void I_SetMIDIMusicVolume(UINT8 volume)
 	(void)volume;
 }
 
-void I_PauseSong(INT32 handle)
+void I_PauseSong(void)
 {
 	(void)handle;
 }
 
-void I_ResumeSong(INT32 handle)
+void I_ResumeSong(void)
 {
 	(void)handle;
 }
@@ -84,14 +84,14 @@ void I_ResumeSong(INT32 handle)
 //  MIDI I/O
 //
 
-boolean I_LoadSong(void *data, size_t len)
+boolean I_LoadSong(char *data, size_t len)
 {
 	(void)data;
 	(void)len;
 	return -1;
 }
 
-boolean I_PlaySong(void)
+boolean I_PlaySong(boolean looping)
 {
 	(void)handle;
 	(void)looping;
diff --git a/src/sdl/sdl_sound.c b/src/sdl/sdl_sound.c
index c1badfe65f..a4334a78ee 100644
--- a/src/sdl/sdl_sound.c
+++ b/src/sdl/sdl_sound.c
@@ -1583,7 +1583,7 @@ static void I_PauseGME(void)
 #endif
 }
 
-void I_PauseSong(INT32 handle)
+void I_PauseSong(void)
 {
 	(void)handle;
 	I_PauseGME();
@@ -1603,7 +1603,7 @@ static void I_ResumeGME(void)
 #endif
 }
 
-void I_ResumeSong(INT32 handle)
+void I_ResumeSong(void)
 {
 	(void)handle;
 	I_ResumeGME();
@@ -1659,7 +1659,7 @@ void I_UnloadSong(void)
 #endif
 }
 
-boolean I_LoadSong(void *data, size_t len)
+boolean I_LoadSong(char *data, size_t len)
 {
 #ifdef HAVE_MIXER
 	if (nomidimusic || !musicStarted)
diff --git a/src/win32/win_main.c b/src/win32/win_main.c
index 6c774f5576..bfe620a434 100644
--- a/src/win32/win_main.c
+++ b/src/win32/win_main.c
@@ -110,9 +110,9 @@ static LRESULT CALLBACK MainWndproc(HWND hWnd, UINT message, WPARAM wParam, LPAR
 
 			// pause music when alt-tab
 			if (appActive  && !paused)
-				I_ResumeSong(0);
+				I_ResumeSong();
 			else if (!paused)
-				I_PauseSong(0);
+				I_PauseSong();
 			{
 				HANDLE ci = GetStdHandle(STD_INPUT_HANDLE);
 				DWORD mode;
diff --git a/src/win32/win_snd.c b/src/win32/win_snd.c
index c49be100d6..e9311026fe 100644
--- a/src/win32/win_snd.c
+++ b/src/win32/win_snd.c
@@ -453,14 +453,14 @@ void I_ShutdownMusic(void)
 	I_StopSong();
 }
 
-void I_PauseSong(INT32 handle)
+void I_PauseSong(void)
 {
 	UNREFERENCED_PARAMETER(handle);
 	if (music_stream)
 		FMR_MUSIC(FMOD_Channel_SetPaused(music_channel, true));
 }
 
-void I_ResumeSong(INT32 handle)
+void I_ResumeSong(void)
 {
 	UNREFERENCED_PARAMETER(handle);
 	if (music_stream)
@@ -618,67 +618,64 @@ boolean I_LoadSong(char *data, size_t len)
 	}
 
 	// Try to find a loop point in streaming music formats (ogg, mp3)
-	if (looping)
+	FMOD_RESULT e;
+	FMOD_TAG tag;
+	unsigned int loopstart, loopend;
+
+	// A proper LOOPPOINT is its own tag, stupid.
+	e = FMOD_Sound_GetTag(music_stream, "LOOPPOINT", 0, &tag);
+	if (e != FMOD_ERR_TAGNOTFOUND)
 	{
-		FMOD_RESULT e;
-		FMOD_TAG tag;
-		unsigned int loopstart, loopend;
+		FMR(e);
+		loopstart = atoi((char *)tag.data); // assumed to be a string data tag.
+		FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_PCM, &loopend, FMOD_TIMEUNIT_PCM));
+		if (loopstart > 0)
+			FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_PCM, loopend, FMOD_TIMEUNIT_PCM));
+		return true;
+	}
 
-		// A proper LOOPPOINT is its own tag, stupid.
-		e = FMOD_Sound_GetTag(music_stream, "LOOPPOINT", 0, &tag);
-		if (e != FMOD_ERR_TAGNOTFOUND)
-		{
-			FMR(e);
-			loopstart = atoi((char *)tag.data); // assumed to be a string data tag.
-			FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_PCM, &loopend, FMOD_TIMEUNIT_PCM));
-			if (loopstart > 0)
-				FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_PCM, loopend, FMOD_TIMEUNIT_PCM));
-			return true;
-		}
+	// todo
+	// if(music type == MIDI)
+	// {
+	// 	FMR(FMOD_Sound_SetMode(music_stream, FMOD_LOOP_NORMAL));
+	// 	return true;
+	// }
 
-		// todo
-		// if(music type == MIDI)
-		// {
-		// 	FMR(FMOD_Sound_SetMode(music_stream, FMOD_LOOP_NORMAL));
-		// 	return true;
-		// }
+	// Use LOOPMS for time in miliseconds.
+	e = FMOD_Sound_GetTag(music_stream, "LOOPMS", 0, &tag);
+	if (e != FMOD_ERR_TAGNOTFOUND)
+	{
+		FMR(e);
+		loopstart = atoi((char *)tag.data); // assumed to be a string data tag.
+		FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_MS, &loopend, FMOD_TIMEUNIT_PCM));
+		if (loopstart > 0)
+			FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_MS, loopend, FMOD_TIMEUNIT_PCM));
+		return true;
+	}
 
-		// Use LOOPMS for time in miliseconds.
-		e = FMOD_Sound_GetTag(music_stream, "LOOPMS", 0, &tag);
-		if (e != FMOD_ERR_TAGNOTFOUND)
+	// Try to fetch it from the COMMENT tag, like A.J. Freda
+	e = FMOD_Sound_GetTag(music_stream, "COMMENT", 0, &tag);
+	if (e != FMOD_ERR_TAGNOTFOUND)
+	{
+		char *loopText;
+		// Handle any errors that arose, first
+		FMR(e);
+		// Figure out where the number starts
+		loopText = strstr((char *)tag.data,"LOOPPOINT=");
+		if (loopText != NULL)
 		{
-			FMR(e);
-			loopstart = atoi((char *)tag.data); // assumed to be a string data tag.
-			FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_MS, &loopend, FMOD_TIMEUNIT_PCM));
+			// Skip the "LOOPPOINT=" part.
+			loopText += 10;
+			// Convert it to our looppoint
+			// FMOD seems to ensure the tag is properly NULL-terminated.
+			// atoi will stop when it reaches anything that's not a number.
+			loopstart = atoi(loopText);
+			// Now do the rest like above
+			FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_PCM, &loopend, FMOD_TIMEUNIT_PCM));
 			if (loopstart > 0)
-				FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_MS, loopend, FMOD_TIMEUNIT_PCM));
-			return true;
-		}
-
-		// Try to fetch it from the COMMENT tag, like A.J. Freda
-		e = FMOD_Sound_GetTag(music_stream, "COMMENT", 0, &tag);
-		if (e != FMOD_ERR_TAGNOTFOUND)
-		{
-			char *loopText;
-			// Handle any errors that arose, first
-			FMR(e);
-			// Figure out where the number starts
-			loopText = strstr((char *)tag.data,"LOOPPOINT=");
-			if (loopText != NULL)
-			{
-				// Skip the "LOOPPOINT=" part.
-				loopText += 10;
-				// Convert it to our looppoint
-				// FMOD seems to ensure the tag is properly NULL-terminated.
-				// atoi will stop when it reaches anything that's not a number.
-				loopstart = atoi(loopText);
-				// Now do the rest like above
-				FMR(FMOD_Sound_GetLoopPoints(music_stream, NULL, FMOD_TIMEUNIT_PCM, &loopend, FMOD_TIMEUNIT_PCM));
-				if (loopstart > 0)
-					FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_PCM, loopend, FMOD_TIMEUNIT_PCM));
-			}
-			return true;
+				FMR(FMOD_Sound_SetLoopPoints(music_stream, loopstart, FMOD_TIMEUNIT_PCM, loopend, FMOD_TIMEUNIT_PCM));
 		}
+		return true;
 	}
 
 	// No special loop point
@@ -783,7 +780,7 @@ void I_SetMIDIMusicVolume(UINT8 volume)
 		FMR_MUSIC(FMOD_Channel_SetVolume(music_channel, volume / 31.0));
 }
 
-boolean I_PlaySong(void)
+boolean I_PlaySong(boolean looping)
 {
 #ifdef HAVE_LIBGME
 	if (gme)
-- 
GitLab