diff options
author | Robin Gareus <robin@gareus.org> | 2020-04-01 23:25:19 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-01 23:25:19 +0200 |
commit | 20ee430fda30e3b4b30f3a083598d26d2fe7ffeb (patch) | |
tree | 0883abb022a2460eb45bbb4bc5427c9ad9e5e392 | |
parent | 37bbc70179f006b86dfbdffca3cd7746fe2f32b7 (diff) |
Add API to count named MIDNAM controls
-rw-r--r-- | libs/ardour/ardour/instrument_info.h | 2 | ||||
-rw-r--r-- | libs/ardour/instrument_info.cc | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libs/ardour/ardour/instrument_info.h b/libs/ardour/ardour/instrument_info.h index 9330dedd47..0a6746a960 100644 --- a/libs/ardour/ardour/instrument_info.h +++ b/libs/ardour/ardour/instrument_info.h @@ -68,6 +68,8 @@ public: boost::shared_ptr<const MIDI::Name::ValueNameList> value_name_list_by_control (uint8_t channel, uint8_t number) const; + size_t master_controller_count () const; + PBD::Signal0<void> Changed; bool have_custom_plugin_info () const; diff --git a/libs/ardour/instrument_info.cc b/libs/ardour/instrument_info.cc index f683e96f0b..fcc7baf1cd 100644 --- a/libs/ardour/instrument_info.cc +++ b/libs/ardour/instrument_info.cc @@ -176,6 +176,23 @@ InstrumentInfo::control_name_list (uint8_t channel) return dev_names->control_name_list (chan_names->control_list_name ()); } +size_t +InstrumentInfo::master_controller_count () const +{ + boost::shared_ptr<MasterDeviceNames> const& dev_names (MidiPatchManager::instance ().master_device_by_model (model ())); + if (!dev_names) { + return 0; + } + MasterDeviceNames::ControlNameLists const& ctllist (dev_names->controls()); + + size_t total_ctrls = 0; + for (MasterDeviceNames::ControlNameLists::const_iterator l = ctllist.begin(); l != ctllist.end(); ++l) { + boost::shared_ptr<ControlNameList> const& name_list = l->second; + total_ctrls += name_list->controls().size(); + } + return total_ctrls; +} + #if 0 MasterDeviceNames::ControlNameLists const& InstrumentInfo::master_control_names () const |