foxygit / doom Log in
commit 5c21c5ba40e608ed70d4f5dfda20811c97ab6864
Author:     ceski <56656010+ceski-1@users.noreply.github.com>
AuthorDate: Mon May 15 11:51:29 2023 -0700
Commit:     ceski <56656010+ceski-1@users.noreply.github.com>
CommitDate: Tue May 16 09:13:40 2023 -0700

    Move meta message handling
---
 src/i_winmusic.c | 46 ++++++++++++++++++++++++++--------------------
 1 file changed, 26 insertions(+), 20 deletions(-)

diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index f5affef9..e1b2ab50 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -792,6 +792,31 @@ static void SendEMIDI(unsigned int delta_time, const midi_event_t *event,
     }
 }

+static void SendMetaMsg(unsigned int delta_time, const midi_event_t *event,
+                        win_midi_track_t *track)
+{
+    switch (event->data.meta.type)
+    {
+        case MIDI_META_END_OF_TRACK:
+            track->end_of_track = true;
+            SendNOPMsg(delta_time);
+            break;
+
+        case MIDI_META_SET_TEMPO:
+            UpdateTempo(delta_time, event);
+            break;
+
+        case MIDI_META_MARKER:
+            CheckFFLoop(event);
+            SendNOPMsg(delta_time);
+            break;
+
+        default:
+            SendNOPMsg(delta_time);
+            break;
+    }
+}
+
 static boolean AddToBuffer(unsigned int delta_time, const midi_event_t *event,
                            win_midi_track_t *track)
 {
@@ -809,26 +834,7 @@ static boolean AddToBuffer(unsigned int delta_time, const midi_event_t *event,
             return false;

         case MIDI_EVENT_META:
-            switch (event->data.meta.type)
-            {
-                case MIDI_META_END_OF_TRACK:
-                    track->end_of_track = true;
-                    SendNOPMsg(delta_time);
-                    break;
-
-                case MIDI_META_SET_TEMPO:
-                    UpdateTempo(delta_time, event);
-                    break;
-
-                case MIDI_META_MARKER:
-                    CheckFFLoop(event);
-                    SendNOPMsg(delta_time);
-                    break;
-
-                default:
-                    SendNOPMsg(delta_time);
-                    break;
-            }
+            SendMetaMsg(delta_time, event, track);
             return true;
     }