controllermap.cpp (1162B)
1 #include "controllermap.h" 2 3 namespace pluginLib 4 { 5 void ControllerMap::add(synthLib::MidiStatusByte _midiStatusByte, uint8_t _cc, uint32_t _paramIndex) 6 { 7 m_ccToParamIndex[_midiStatusByte][_cc].push_back(_paramIndex); 8 m_paramIndexToCC[_midiStatusByte][_paramIndex].push_back(_cc); 9 } 10 11 const std::vector<uint32_t>& ControllerMap::getControlledParameters(const synthLib::SMidiEvent& _ev) const 12 { 13 static std::vector<uint32_t> empty; 14 const uint8_t type = _ev.a & 0xf0; 15 16 const auto itType = m_ccToParamIndex.find(type); 17 if(itType == m_ccToParamIndex.end()) 18 return empty; 19 20 const auto itValue = itType->second.find(_ev.b); 21 if(itValue == itType->second.end()) 22 return empty; 23 24 return itValue->second; 25 } 26 27 std::vector<uint8_t> ControllerMap::getControlChanges(const synthLib::MidiStatusByte _midiStatusByte, const uint32_t _paramIndex) const 28 { 29 static std::vector<uint8_t> empty; 30 const auto itType = m_paramIndexToCC.find(_midiStatusByte); 31 if(itType == m_paramIndexToCC.end()) 32 return empty; 33 const auto itCCList = itType->second.find(_paramIndex); 34 if(itCCList == itType->second.end()) 35 return empty; 36 return itCCList->second; 37 } 38 }