diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-10-30 17:42:19 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2018-10-30 17:42:19 +0100 |
commit | 793495a6be9e9fffa8f7ec0e1d3ee4b055c93371 (patch) | |
tree | 837a68c7d839443cdf55673eca84168794e90725 | |
parent | 5780c16004944fd29f8a37bf40a877cb15e51488 (diff) |
Added dynamic midnam support.
-rw-r--r-- | plugin/drumgizmo_plugin.cc | 19 | ||||
-rw-r--r-- | plugin/drumgizmo_plugin.h | 2 | ||||
m--------- | plugin/plugingizmo | 0 | ||||
-rw-r--r-- | src/audioinputenginemidi.h | 2 | ||||
-rw-r--r-- | src/midimapper.cc | 5 | ||||
-rw-r--r-- | src/midimapper.h | 2 |
6 files changed, 29 insertions, 1 deletions
diff --git a/plugin/drumgizmo_plugin.cc b/plugin/drumgizmo_plugin.cc index 6e4fe3c..d8130f3 100644 --- a/plugin/drumgizmo_plugin.cc +++ b/plugin/drumgizmo_plugin.cc @@ -394,6 +394,25 @@ bool DrumGizmoPlugin::Input::isFreewheeling() const return plugin.getFreeWheel(); } +bool DrumGizmoPlugin::Input::loadMidiMap(const std::string& file, + const Instruments& i) +{ + bool result = AudioInputEngineMidi::loadMidiMap(file, i); + std::vector<std::pair<int, std::string>> midnam; + + const auto& map = mmap.getMap(); + midnam.reserve(map.size()); + for(const auto& m : map) + { + midnam.push_back(std::make_pair(m.first, m.second)); + } + + if(midnam.size() > 0) + { + plugin.setMidnamData(midnam); + } + return result; +} // // Output Engine diff --git a/plugin/drumgizmo_plugin.h b/plugin/drumgizmo_plugin.h index d864def..106614f 100644 --- a/plugin/drumgizmo_plugin.h +++ b/plugin/drumgizmo_plugin.h @@ -128,6 +128,8 @@ private: bool isFreewheeling() const override; + bool loadMidiMap(const std::string& file, const Instruments& i) override; + protected: DrumGizmoPlugin& plugin; const Instruments* instruments{nullptr}; diff --git a/plugin/plugingizmo b/plugin/plugingizmo -Subproject 7f84f53bad767dfe2d1a2900b58c4dc32e9a805 +Subproject 75b19928e264ed5a58077498fd61f71e99dc400 diff --git a/src/audioinputenginemidi.h b/src/audioinputenginemidi.h index 19f7da4..e02ba21 100644 --- a/src/audioinputenginemidi.h +++ b/src/audioinputenginemidi.h @@ -51,7 +51,7 @@ public: virtual void run(size_t pos, size_t len, std::vector<event_t>& events) = 0; virtual void post() = 0; - bool loadMidiMap(const std::string& file, const Instruments& i); + virtual bool loadMidiMap(const std::string& file, const Instruments& i); std::string getMidimapFile() const; diff --git a/src/midimapper.cc b/src/midimapper.cc index ab3d8d7..9243ecf 100644 --- a/src/midimapper.cc +++ b/src/midimapper.cc @@ -51,3 +51,8 @@ void MidiMapper::swap(instrmap_t& instrmap, midimap_t& midimap) std::swap(this->instrmap, instrmap); std::swap(this->midimap, midimap); } + +const midimap_t& MidiMapper::getMap() +{ + return midimap; +} diff --git a/src/midimapper.h b/src/midimapper.h index fc3faec..4673e33 100644 --- a/src/midimapper.h +++ b/src/midimapper.h @@ -43,6 +43,8 @@ public: //! Set new map sets. void swap(instrmap_t& instrmap, midimap_t& midimap); + const midimap_t& getMap(); + private: instrmap_t instrmap; midimap_t midimap; |