From 429853a91ba46b03eba739445d075fe2cbc45df4 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Sat, 10 Nov 2018 20:06:52 +0100 Subject: enable more debugging checks --- src/adlmidi_midiplay.cpp | 4 ++-- src/adlmidi_midiplay.hpp | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 370f723..cebea6a 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -469,7 +469,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) if(isBlankNote) { // Don't even try to play the blank instrument! But, insert the dummy note. - MIDIchannel::notes_iterator i = midiChan.find_or_create_activenote(note); + MIDIchannel::notes_iterator i = midiChan.ensure_find_or_create_activenote(note); MIDIchannel::NoteInfo &dummy = i->value; dummy.isBlank = true; dummy.ains = NULL; @@ -566,7 +566,7 @@ bool MIDIplay::realTime_NoteOn(uint8_t channel, uint8_t note, uint8_t velocity) velocity = static_cast(std::floor(static_cast(velocity) * 0.8f)); // Allocate active note for MIDI channel - MIDIchannel::notes_iterator ir = midiChan.find_or_create_activenote(note); + MIDIchannel::notes_iterator ir = midiChan.ensure_find_or_create_activenote(note); MIDIchannel::NoteInfo &ni = ir->value; ni.vol = velocity; ni.vibrato = midiChan.noteAftertouch[note]; diff --git a/src/adlmidi_midiplay.hpp b/src/adlmidi_midiplay.hpp index f7dc0fa..f4f0060 100644 --- a/src/adlmidi_midiplay.hpp +++ b/src/adlmidi_midiplay.hpp @@ -279,6 +279,13 @@ public: return it; } + notes_iterator ensure_find_or_create_activenote(unsigned note) + { + notes_iterator it = find_or_create_activenote(note); + assert(!it.is_end()); + return it; + } + /** * @brief Reset channel into initial state */ -- cgit v1.2.3