winmidi: Send "reset all controllers" when song loops (#878)

* winmidi: Fix songs with missing "hold pedal off" events

* Revert "winmidi: Fix songs with missing "hold pedal off" events"

This reverts commit a12e8e6a5a7c06236bc3f0e4d9abc03c19758f1e.

* Send "reset all controllers" when song loops

* Use consistent int type
This commit is contained in:
ceski 2023-01-25 19:36:19 -08:00 committed by GitHub
parent 77b5a3f6ef
commit 411d43b37b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1082,6 +1082,10 @@ static void FillBuffer(void)
}
else if (song.looping)
{
for (i = 0; i < MIDI_CHANNELS_PER_TRACK; ++i)
{
SendShortMsg(0, MIDI_EVENT_CONTROLLER, i, MIDI_CONTROLLER_RESET_ALL_CTRLS, 0);
}
RestartTracks();
continue;
}
@ -1398,8 +1402,8 @@ static void I_WIN_UnRegisterSong(void *handle)
{
if (song.tracks)
{
int i;
for (i = 0; i < MIDI_NumTracks(song.file); ++i)
unsigned int i;
for (i = 0; i < song.num_tracks; ++i)
{
MIDI_FreeIterator(song.tracks[i].iter);
song.tracks[i].iter = NULL;