commit 4de3985fdce7025070a4291faa5ab2e4a7025ea6
Author: ceski <56656010+ceski-1@users.noreply.github.com>
AuthorDate: Sat Nov 11 10:41:07 2023 -0800
Commit: ceski <56656010+ceski-1@users.noreply.github.com>
CommitDate: Mon Nov 13 10:09:16 2023 -0800
win midi: Fix EMIDI events and designation
EMIDI events were skipped due to a copying mistake introduced by: https://github.com/chocolate-doom/chocolate-doom/commit/833d0c2aa176356a362099b24899a69d86f56b1e
---
src/i_winmusic.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index 54341f18..524b6f3e 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -96,6 +96,8 @@ static HANDLE hBufferReturnEvent;
static HANDLE hExitEvent;
static HANDLE hPlayerThread;
+#define EMIDI_DEVICE (1U << EMIDI_DEVICE_GENERAL_MIDI)
+
// This is a reduced Windows MIDIEVENT structure for MEVT_F_SHORT
// type of events.
@@ -708,7 +710,7 @@ static void SendEMIDI(unsigned int delta_time, const midi_event_t *event,
unsigned int flag;
int count;
- switch ((int) event->event_type)
+ switch (event->data.channel.param1)
{
case EMIDI_CONTROLLER_TRACK_DESIGNATION:
if (track->elapsed_time < timediv)
@@ -722,7 +724,7 @@ static void SendEMIDI(unsigned int delta_time, const midi_event_t *event,
}
else if (flag <= EMIDI_DEVICE_ULTRASOUND)
{
- track->emidi_device_flags |= 1 << flag;
+ track->emidi_device_flags |= 1U << flag;
track->emidi_designated = true;
}
}
@@ -746,7 +748,7 @@ static void SendEMIDI(unsigned int delta_time, const midi_event_t *event,
if (flag <= EMIDI_DEVICE_ULTRASOUND)
{
- track->emidi_device_flags &= ~(1 << flag);
+ track->emidi_device_flags &= ~(1U << flag);
}
}
SendNOPMsg(delta_time);
@@ -838,10 +840,6 @@ static void SendEMIDI(unsigned int delta_time, const midi_event_t *event,
}
SendNOPMsg(delta_time);
break;
-
- default:
- SendNOPMsg(delta_time);
- break;
}
}
@@ -970,8 +968,7 @@ static boolean AddToBuffer_Standard(unsigned int delta_time,
return true;
}
- if (track->emidi_designated &&
- (EMIDI_DEVICE_GENERAL_MIDI & ~track->emidi_device_flags))
+ if (track->emidi_designated && (EMIDI_DEVICE & ~track->emidi_device_flags))
{
// Send NOP if this device has been excluded from this track.
SendNOPMsg(delta_time);