summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-10-15 16:02:47 +0200
committerRobin Gareus <robin@gareus.org>2019-10-15 16:02:47 +0200
commit9fa7e919a7b4a52020358da45bcbdab67720d1b0 (patch)
tree8b34aa39fe5b5a604a63b0f018f20237098b9392 /libs
parent4eef9c20b86ce804ed14a95c686d5bf0c97ca8c6 (diff)
Improve multi-channel instrument listing
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/plugin_manager.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index 9d21b6bb65..602388509f 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -311,15 +311,22 @@ PluginManager::detect_type_ambiguities (PluginInfoList& pil)
if (dup.back()->name != (*i)->name) {
/* found multiple plugins with same name */
bool typediff = false;
+ bool chandiff = false;
for (PluginInfoList::iterator j = dup.begin(); j != dup.end(); ++j) {
if (dup.front()->type != (*j)->type) {
typediff = true;
- break;
}
+ chandiff |= (*j)->multichannel_name_ambiguity;
}
if (typediff) {
for (PluginInfoList::iterator j = dup.begin(); j != dup.end(); ++j) {
(*j)->plugintype_name_ambiguity = true;
+ /* show multi-channel information for consistency, when other types display it.
+ * eg. "Foo 8 outs, VST", "Foo 12 outs, VST", "Foo <=12 outs, AU"
+ */
+ if (chandiff) {
+ (*j)->multichannel_name_ambiguity = true;
+ }
}
}
dup.clear ();