SDL_mixer: added Timidity_IsActive() and music->TIMIDITY_IsPlaying

From c1f4785e9a6f59e3a9987e91245a8922188ed652 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 18 Mar 2021 14:50:02 +0300
Subject: [PATCH] added Timidity_IsActive() and music->TIMIDITY_IsPlaying

---
 src/codecs/music_timidity.c    | 8 +++++++-
 src/codecs/timidity/playmidi.c | 7 +++++--
 src/codecs/timidity/timidity.h | 1 +
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/codecs/music_timidity.c b/src/codecs/music_timidity.c
index 5c835de..651d770 100644
--- a/src/codecs/music_timidity.c
+++ b/src/codecs/music_timidity.c
@@ -152,6 +152,12 @@ static int TIMIDITY_Play(void *context, int play_count)
     return TIMIDITY_Seek(music, 0.0);
 }
 
+static SDL_bool TIMIDITY_IsPlaying(void *context)
+{
+    TIMIDITY_Music *music = (TIMIDITY_Music *)context;
+    return Timidity_IsActive(music->song);
+}
+
 static int TIMIDITY_GetSome(void *context, void *data, int bytes, SDL_bool *done)
 {
     TIMIDITY_Music *music = (TIMIDITY_Music *)context;
@@ -259,7 +265,7 @@ Mix_MusicInterface Mix_MusicInterface_TIMIDITY =
     TIMIDITY_SetVolume,
     TIMIDITY_GetVolume,
     TIMIDITY_Play,
-    NULL,   /* IsPlaying */
+    TIMIDITY_IsPlaying,
     TIMIDITY_GetAudio,
     NULL,   /* Jump */
     TIMIDITY_Seek,
diff --git a/src/codecs/timidity/playmidi.c b/src/codecs/timidity/playmidi.c
index a3b2df9..618f616 100644
--- a/src/codecs/timidity/playmidi.c
+++ b/src/codecs/timidity/playmidi.c
@@ -1,5 +1,4 @@
 /*
-
     TiMidity -- Experimental MIDI to WAVE converter
     Copyright (C) 1995 Tuukka Toivonen <toivonen@clinet.fi>
 
@@ -7,7 +6,6 @@
     it under the terms of the Perl Artistic License, available in COPYING.
 
     playmidi.c -- random stuff in need of rearrangement
-
 */
 
 #include "SDL.h"
@@ -632,6 +630,11 @@ void Timidity_Start(MidiSong *song)
   skip_to(song, 0);
 }
 
+int Timidity_IsActive(MidiSong *song)
+{
+  return song->playing;
+}
+
 void Timidity_Seek(MidiSong *song, Uint32 ms)
 {
   skip_to(song, (ms * (song->rate / 100)) / 10);
diff --git a/src/codecs/timidity/timidity.h b/src/codecs/timidity/timidity.h
index 310e1b5..db4c36f 100644
--- a/src/codecs/timidity/timidity.h
+++ b/src/codecs/timidity/timidity.h
@@ -156,6 +156,7 @@ extern void Timidity_Start(MidiSong *song);
 extern void Timidity_Seek(MidiSong *song, Uint32 ms);
 extern Uint32 Timidity_GetSongLength(MidiSong *song); /* returns millseconds */
 extern Uint32 Timidity_GetSongTime(MidiSong *song);   /* returns millseconds */
+extern int Timidity_IsActive(MidiSong *song);
 extern void Timidity_FreeSong(MidiSong *song);
 extern void Timidity_Exit(void);