From f347abbe8d32053f805691d04502f5fa738eff1d Mon Sep 17 00:00:00 2001 From: ben Date: Tue, 24 Oct 2017 13:16:40 +0200 Subject: [PATCH] Fix ignore types --- src/core/MidiIO.cpp | 14 +++++++------- src/core/MidiIO.hpp | 15 ++++++--------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/core/MidiIO.cpp b/src/core/MidiIO.cpp index 346b93e0..aa6486fe 100644 --- a/src/core/MidiIO.cpp +++ b/src/core/MidiIO.cpp @@ -99,17 +99,17 @@ void MidiIO::openDevice(std::string deviceName) { void MidiIO::setIgnores(bool ignoreSysex, bool ignoreTime, bool ignoreSense) { bool sy = true, ti = true, se = true; - midiInMap[deviceName]->ignoresMap[id][0] = ignoreSysex; - midiInMap[deviceName]->ignoresMap[id][1] = ignoreTime; - midiInMap[deviceName]->ignoresMap[id][2] = ignoreSense; + midiInMap[deviceName]->ignoresMap[id].midiSysex = ignoreSysex; + midiInMap[deviceName]->ignoresMap[id].midiTime = ignoreTime; + midiInMap[deviceName]->ignoresMap[id].midiSense = ignoreSense; for (auto kv : midiInMap[deviceName]->ignoresMap) { - sy = sy && kv.second[0]; - ti = ti && kv.second[1]; - se = se && kv.second[2]; + sy = sy && kv.second.midiSysex; + ti = ti && kv.second.midiTime; + se = se && kv.second.midiSense; } - midiInMap[deviceName]->ignoreTypes(se,ti,se); + midiInMap[deviceName]->ignoreTypes(se, ti, se); } diff --git a/src/core/MidiIO.hpp b/src/core/MidiIO.hpp index 65408c6b..849fdaa5 100644 --- a/src/core/MidiIO.hpp +++ b/src/core/MidiIO.hpp @@ -5,6 +5,11 @@ using namespace rack; +struct IgnoreFlags { + bool midiSysex = true; + bool midiTime = true; + bool midiSense = true; +}; /** * This class allows to use one instance of rtMidiIn with @@ -13,13 +18,8 @@ using namespace rack; */ struct MidiInWrapper : RtMidiIn { - std::unordered_map>> idMessagesMap; - std::unordered_map> idStampsMap; - /* Stores Ignore settings for each instance in the following order: - * {ignore_midiSysex, ignore_midiTime, ignore_midiSense} - */ - std::unordered_map ignoresMap; + std::unordered_map ignoresMap; int uid_c = 0; int subscribers = 0; @@ -35,9 +35,6 @@ struct MidiInWrapper : RtMidiIn { idMessagesMap[id] = {}; idStampsMap[id] = {}; - ignoresMap[id][0] = true; - ignoresMap[id][1] = true; - ignoresMap[id][2] = true; return id; }