summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_manager.cc
diff options
context:
space:
mode:
authorSampo Savolainen <v2@iki.fi>2006-01-22 00:08:38 +0000
committerSampo Savolainen <v2@iki.fi>2006-01-22 00:08:38 +0000
commit860749eb130317f9db999331c558ef57d95de2d9 (patch)
treed7debebd01ee7efe60139690f9a1d53328c9bfec /libs/ardour/plugin_manager.cc
parent897d071e97bf87ef7f759b985b67331623314bf4 (diff)
Added the property "unique-id" to PluginInserts so that ladspa plugins
will be loaded by their UID instead of their name. git-svn-id: svn://localhost/trunk/ardour2@285 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r--libs/ardour/plugin_manager.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index 0adf8203b6..36cc80a660 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -258,6 +258,7 @@ PluginManager::ladspa_discover (string path)
info->n_inputs = 0;
info->n_outputs = 0;
info->type = PluginInfo::LADSPA;
+ info->unique_id = descriptor->UniqueID;
for (uint32_t n=0; n < descriptor->PortCount; ++n) {
if ( LADSPA_IS_PORT_AUDIO (descriptor->PortDescriptors[n]) ) {
@@ -326,7 +327,7 @@ PluginManager::load (Session& session, PluginInfo *info)
}
Plugin *
-ARDOUR::find_plugin(Session& session, string name, PluginInfo::Type type)
+ARDOUR::find_plugin(Session& session, string name, long unique_id, PluginInfo::Type type)
{
PluginManager *mgr = PluginManager::the_manager();
list<PluginInfo *>::iterator i;
@@ -338,11 +339,13 @@ ARDOUR::find_plugin(Session& session, string name, PluginInfo::Type type)
break;
case PluginInfo::VST:
plugs = &mgr->vst_plugin_info();
+ unique_id = 0; // VST plugins don't have a unique id.
break;
}
for (i = plugs->begin(); i != plugs->end(); ++i) {
- if ((*i)->name == name) {
+ if ((name == "" || (*i)->name == name) &&
+ (unique_id == 0 || (*i)->unique_id == unique_id)) {
return mgr->load (session, *i);
}
}