ARDOUR::PluginInfoList &lv2_plugin_info ();
ARDOUR::PluginInfoList &au_plugin_info ();
- void refresh ();
+ void refresh (bool cache_only = false);
void cancel_plugin_scan();
void clear_vst_cache ();
void clear_vst_blacklist ();
bool cancel_scan;
void ladspa_refresh ();
- void windows_vst_refresh ();
- void lxvst_refresh ();
+ void windows_vst_refresh (bool cache_only = false);
+ void lxvst_refresh (bool cache_only = false);
void add_lrdf_data (const std::string &path);
void add_ladspa_presets ();
void lv2_refresh ();
- int windows_vst_discover_from_path (std::string path);
- int windows_vst_discover (std::string path);
+ int windows_vst_discover_from_path (std::string path, bool cache_only = false);
+ int windows_vst_discover (std::string path, bool cache_only = false);
- int lxvst_discover_from_path (std::string path);
- int lxvst_discover (std::string path);
+ int lxvst_discover_from_path (std::string path, bool cache_only = false);
+ int lxvst_discover (std::string path, bool cache_only = false);
int ladspa_discover (std::string path);
void
-PluginManager::refresh ()
+PluginManager::refresh (bool cache_only)
{
DEBUG_TRACE (DEBUG::PluginManager, "PluginManager::refresh\n");
BootMessage (_("Discovering Plugins"));
#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 ();
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
}
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;
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);
}
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));
#ifdef LXVST_SUPPORT
void
-PluginManager::lxvst_refresh ()
+PluginManager::lxvst_refresh (bool cache_only)
{
if (_lxvst_plugin_info) {
_lxvst_plugin_info->clear ();
"/usr/lib/vst:/usr/local/lib/vst";
}
- lxvst_discover_from_path (lxvst_path);
+ lxvst_discover_from_path (lxvst_path, cache_only);
}
int
}
int
-PluginManager::lxvst_discover_from_path (string path)
+PluginManager::lxvst_discover_from_path (string path, bool cache_only)
{
PathScanner scanner;
vector<string *> *plugin_objects;
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);
}
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));