summaryrefslogtreecommitdiff
path: root/gtk2_ardour/instrument_selector.cc
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2019-10-13 13:26:44 -0500
committerBen Loftis <ben@harrisonconsoles.com>2019-10-13 13:27:07 -0500
commitd8198acedebffd3a487f362af2b51eb6bbddf87f (patch)
tree4f6b9ed342326d81d33b569c187282a4e8aea84e /gtk2_ardour/instrument_selector.cc
parent52eea55988ef7f539674455f82ac4218ddf31607 (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.cc21
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;