diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2019-10-13 13:26:44 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2019-10-13 13:27:07 -0500 |
commit | d8198acedebffd3a487f362af2b51eb6bbddf87f (patch) | |
tree | 4f6b9ed342326d81d33b569c187282a4e8aea84e /gtk2_ardour/instrument_selector.cc | |
parent | 52eea55988ef7f539674455f82ac4218ddf31607 (diff) |
Show (# outs) in instrument-selector menu when the instrument is multi-out.
Diffstat (limited to 'gtk2_ardour/instrument_selector.cc')
-rw-r--r-- | gtk2_ardour/instrument_selector.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/gtk2_ardour/instrument_selector.cc b/gtk2_ardour/instrument_selector.cc index 91550139bb..c51b441d09 100644 --- a/gtk2_ardour/instrument_selector.cc +++ b/gtk2_ardour/instrument_selector.cc @@ -18,6 +18,7 @@ #include "pbd/convert.h" #include "pbd/enumwriter.h" +#include "ardour/chan_count.h" #include "ardour/plugin_manager.h" #include "gtkmm2ext/gui_thread.h" #include "instrument_selector.h" @@ -124,12 +125,20 @@ InstrumentSelector::build_instrument_list() for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end();) { PluginInfoPtr p = *i; ++i; + + std::string name = p->name; + + /* in the instrument menu,we need to differentiate the different output configs here*/ + int n_outs = p->n_outputs.n_audio(); + if (n_outs > 2) { + name += string_compose( " (%1 outs)", n_outs); + } + + /*if a plugin appears in multiple types, we need to differentiate the different types here */ bool suffix_type = prev == p->name; if (!suffix_type && i != all_plugs.end() && (*i)->name == p->name) { suffix_type = true; } - - row = *(_instrument_list->append()); if (suffix_type) { std::string pt; switch (p->type) { @@ -144,10 +153,12 @@ InstrumentSelector::build_instrument_list() default: pt = enum_2_string (p->type); } - row[_instrument_list_columns.name] = p->name + " (" + pt + ")"; - } else { - row[_instrument_list_columns.name] = p->name; + name += " (" + pt + ")"; } + + row = *(_instrument_list->append()); + row[_instrument_list_columns.name] = name; + row[_instrument_list_columns.info_ptr] = p; if (p->unique_id == "https://community.ardour.org/node/7596") { _reasonable_synth_id = n; |