summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-02-25 14:51:53 +0100
committerRobin Gareus <robin@gareus.org>2014-02-25 14:57:58 +0100
commite1c82dfd857465cd5900f1bd626b3d651b7e7617 (patch)
tree64915090d00499cf07b5320e4ee72195500b4f5b /libs/ardour/plugin_manager.cc
parent6471c942543fe95f6654b8164122c24c8d4c88f9 (diff)
prepare plugin list refresh w/o instantiate (using cache only)
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r--libs/ardour/plugin_manager.cc28
1 files changed, 15 insertions, 13 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index cfdfc6af7f..1627d67664 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -176,7 +176,7 @@ PluginManager::~PluginManager()
void
-PluginManager::refresh ()
+PluginManager::refresh (bool cache_only)
{
DEBUG_TRACE (DEBUG::PluginManager, "PluginManager::refresh\n");
BootMessage (_("Discovering Plugins"));
@@ -607,7 +607,7 @@ PluginManager::au_refresh ()
#ifdef WINDOWS_VST_SUPPORT
void
-PluginManager::windows_vst_refresh ()
+PluginManager::windows_vst_refresh (bool cache_only)
{
if (_windows_vst_plugin_info) {
_windows_vst_plugin_info->clear ();
@@ -619,7 +619,7 @@ PluginManager::windows_vst_refresh ()
windows_vst_path = "/usr/local/lib/vst:/usr/lib/vst";
}
- windows_vst_discover_from_path (windows_vst_path);
+ windows_vst_discover_from_path (windows_vst_path, cache_only);
}
int
@@ -641,7 +641,7 @@ static bool windows_vst_filter (const string& str, void * /*arg*/)
}
int
-PluginManager::windows_vst_discover_from_path (string path)
+PluginManager::windows_vst_discover_from_path (string path, bool cache_only)
{
PathScanner scanner;
vector<string *> *plugin_objects;
@@ -655,7 +655,7 @@ PluginManager::windows_vst_discover_from_path (string path)
if (plugin_objects) {
for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
ARDOUR::PluginScanMessage(_("VST"), **x);
- windows_vst_discover (**x);
+ windows_vst_discover (**x, cache_only);
}
vector_delete (plugin_objects);
@@ -665,11 +665,12 @@ PluginManager::windows_vst_discover_from_path (string path)
}
int
-PluginManager::windows_vst_discover (string path)
+PluginManager::windows_vst_discover (string path, bool cache_only)
{
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("windows_vst_discover '%1'\n", path));
- vector<VSTInfo*> * finfos = vstfx_get_info_fst (const_cast<char *> (path.c_str()));
+ vector<VSTInfo*> * finfos = vstfx_get_info_fst (const_cast<char *> (path.c_str()),
+ cache_only ? VST_SCAN_CACHE_ONLY : VST_SCAN_USE_APP);
if (finfos->empty()) {
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Cannot get Windows VST information from '%1'\n", path));
@@ -739,7 +740,7 @@ PluginManager::windows_vst_discover (string path)
#ifdef LXVST_SUPPORT
void
-PluginManager::lxvst_refresh ()
+PluginManager::lxvst_refresh (bool cache_only)
{
if (_lxvst_plugin_info) {
_lxvst_plugin_info->clear ();
@@ -753,7 +754,7 @@ PluginManager::lxvst_refresh ()
"/usr/lib/vst:/usr/local/lib/vst";
}
- lxvst_discover_from_path (lxvst_path);
+ lxvst_discover_from_path (lxvst_path, cache_only);
}
int
@@ -775,7 +776,7 @@ static bool lxvst_filter (const string& str, void *)
}
int
-PluginManager::lxvst_discover_from_path (string path)
+PluginManager::lxvst_discover_from_path (string path, bool cache_only)
{
PathScanner scanner;
vector<string *> *plugin_objects;
@@ -793,7 +794,7 @@ PluginManager::lxvst_discover_from_path (string path)
if (plugin_objects) {
for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
ARDOUR::PluginScanMessage(_("LXVST"), **x);
- lxvst_discover (**x);
+ lxvst_discover (**x, cache_only);
}
vector_delete (plugin_objects);
@@ -803,11 +804,12 @@ PluginManager::lxvst_discover_from_path (string path)
}
int
-PluginManager::lxvst_discover (string path)
+PluginManager::lxvst_discover (string path, bool cache_only)
{
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("checking apparent LXVST plugin at %1\n", path));
- vector<VSTInfo*> * finfos = vstfx_get_info_lx (const_cast<char *> (path.c_str()));
+ vector<VSTInfo*> * finfos = vstfx_get_info_lx (const_cast<char *> (path.c_str()),
+ cache_only ? VST_SCAN_CACHE_ONLY : VST_SCAN_USE_APP);
if (finfos->empty()) {
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Cannot get Linux VST information from '%1'\n", path));