From 620ebbbb01fb9cc7864c9f4acf710c6c543a37f9 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sun, 21 Mar 2021 18:55:00 +0300
Subject: [PATCH] added Timidity_Stop() and music->TIMIDITY_Stop()
Closes: https://github.com/libsdl-org/SDL_mixer/pull/304
---
src/codecs/music_timidity.c | 8 +++++++-
src/codecs/timidity/playmidi.c | 5 +++++
src/codecs/timidity/timidity.h | 1 +
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/codecs/music_timidity.c b/src/codecs/music_timidity.c
index 651d770..e0c1bc8 100644
--- a/src/codecs/music_timidity.c
+++ b/src/codecs/music_timidity.c
@@ -250,6 +250,12 @@ static void TIMIDITY_Delete(void *context)
SDL_free(music);
}
+static void TIMIDITY_Stop(void *context)
+{
+ TIMIDITY_Music *music = (TIMIDITY_Music *)context;
+ Timidity_Stop(music->song);
+}
+
Mix_MusicInterface Mix_MusicInterface_TIMIDITY =
{
"TIMIDITY",
@@ -277,7 +283,7 @@ Mix_MusicInterface Mix_MusicInterface_TIMIDITY =
NULL, /* GetMetaTag */
NULL, /* Pause */
NULL, /* Resume */
- NULL, /* Stop */
+ TIMIDITY_Stop,
TIMIDITY_Delete,
TIMIDITY_Close,
NULL /* Unload */
diff --git a/src/codecs/timidity/playmidi.c b/src/codecs/timidity/playmidi.c
index 618f616..87ed253 100644
--- a/src/codecs/timidity/playmidi.c
+++ b/src/codecs/timidity/playmidi.c
@@ -630,6 +630,11 @@ void Timidity_Start(MidiSong *song)
skip_to(song, 0);
}
+void Timidity_Stop(MidiSong *song)
+{
+ song->playing = 0;
+}
+
int Timidity_IsActive(MidiSong *song)
{
return song->playing;
diff --git a/src/codecs/timidity/timidity.h b/src/codecs/timidity/timidity.h
index db4c36f..3764c4f 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 void Timidity_Stop(MidiSong *song);
extern int Timidity_IsActive(MidiSong *song);
extern void Timidity_FreeSong(MidiSong *song);
extern void Timidity_Exit(void);