summaryrefslogtreecommitdiff
path: root/src/midimapper.cc
diff options
context:
space:
mode:
authorNils Brederlow <62596379+dingodoppelt@users.noreply.github.com>2022-02-03 20:57:53 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2022-02-03 20:57:53 +0100
commit76d649620c321d94cf8fcbe8ee5f006ffd191b14 (patch)
treefbff2cbb76b620845eaf5b192ef928b0f95e0897 /src/midimapper.cc
parent235ad6fbbce2e0ae9e06db960a5ba3b099936ace (diff)
Add feature CC to note to midimap
Diffstat (limited to 'src/midimapper.cc')
-rw-r--r--src/midimapper.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/midimapper.cc b/src/midimapper.cc
index b9316c5..b8dafc0 100644
--- a/src/midimapper.cc
+++ b/src/midimapper.cc
@@ -47,12 +47,30 @@ std::vector<int> MidiMapper::lookup(int note_id)
return instruments;
}
-void MidiMapper::swap(instrmap_t& instrmap, midimap_t& midimap)
+std::vector<int> MidiMapper::lookupCC(int cc_id)
+{
+ std::vector<int> notes;
+
+ std::lock_guard<std::mutex> guard(mutex);
+
+ for(const auto& map_entry : ccmap)
+ {
+ if(map_entry.cc_id == cc_id)
+ {
+ notes.push_back(map_entry.note_id);
+ }
+ }
+
+ return notes;
+}
+
+void MidiMapper::swap(instrmap_t& instrmap, midimap_t& midimap, ccmap_t& ccmap)
{
std::lock_guard<std::mutex> guard(mutex);
std::swap(this->instrmap, instrmap);
std::swap(this->midimap, midimap);
+ std::swap(this->ccmap, ccmap);
}
const midimap_t& MidiMapper::getMap()