diff options
author | Chris Xiong <chirs241097@gmail.com> | 2023-11-09 20:17:16 -0500 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2023-11-09 20:17:16 -0500 |
commit | 095716fa21071a506605304db6a113f231ff0dcd (patch) | |
tree | d09a10998926ac4f51958e9f3847a2ef39de320c /core/qmpmidiplay.cpp | |
parent | 07ee50be7c390668f8c600b8eb5805f56cf6a8a1 (diff) | |
download | QMidiPlayer-095716fa21071a506605304db6a113f231ff0dcd.tar.xz |
Fix lingering notes with newer fluidsynth versions.
Diffstat (limited to 'core/qmpmidiplay.cpp')
-rw-r--r-- | core/qmpmidiplay.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/core/qmpmidiplay.cpp b/core/qmpmidiplay.cpp index c3c52ca..113045f 100644 --- a/core/qmpmidiplay.cpp +++ b/core/qmpmidiplay.cpp @@ -189,7 +189,7 @@ SEvent *CMidiPlayer::getEvent(uint32_t id) } void CMidiPlayer::prePlayInit() { - playerPanic(true); + playerReset(); for (size_t i = 0; i < mididev.size(); ++i) if (mididev[i].refcnt) mididev[i].dev->reset(0xFF); @@ -382,16 +382,21 @@ CMidiPlayer::~CMidiPlayer() delete midiFile; delete midiReaders; } -void CMidiPlayer::playerPanic(bool reset) +void CMidiPlayer::playerReset() { for (auto &i : mididev) if (i.refcnt) { - if (reset) - i.dev->reset(0xff); - else - for (uint8_t j = 0; j < 16; ++j) - i.dev->panic(j); + i.dev->reset(0xff); + } +} +void CMidiPlayer::playerPanic() +{ + for (auto &i : mididev) + if (i.refcnt) + { + for (uint8_t j = 0; j < 16; ++j) + i.dev->panic(j); } } bool CMidiPlayer::playerLoadFile(const char *fn) |