X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fplugin_manager.cc;h=5254b41a78ea4a81c577011c36527d7efc10a913;hb=4e5423b3487771220cdca4c2b1a79c4d74b6afa5;hp=596acadf6cd24af8c20c17fda788d6f7d6c7e641;hpb=8b93fb02f38148c25c91ed41a4f12735be38dbf0;p=ardour.git diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index 596acadf6c..5254b41a78 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -302,6 +302,10 @@ PluginManager::refresh (bool cache_only) BootMessage (_("Discovering Mac VST Plugins")); } mac_vst_refresh (cache_only); + } else if (_mac_vst_plugin_info) { + _mac_vst_plugin_info->clear (); + } else { + _mac_vst_plugin_info = new ARDOUR::PluginInfoList(); } #endif //Native Mac VST SUPPORT @@ -842,6 +846,11 @@ PluginManager::windows_vst_discover_from_path (string path, bool cache_only) DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Discovering Windows VST plugins along %1\n", path)); + if (Session::get_disable_all_loaded_plugins ()) { + info << _("Disabled WindowsVST scan (safe mode)") << endmsg; + return -1; + } + if (Config->get_verbose_plugin_scan()) { info << string_compose (_("--- Windows VST plugins Scan: %1"), path) << endmsg; } @@ -1043,7 +1052,12 @@ PluginManager::mac_vst_discover_from_path (string path, bool cache_only) vector plugin_objects; vector::iterator x; - find_paths_matching_filter (plugin_objects, path, mac_vst_filter, 0, true, true, false); + if (Session::get_disable_all_loaded_plugins ()) { + info << _("Disabled MacVST scan (safe mode)") << endmsg; + return -1; + } + + find_paths_matching_filter (plugin_objects, path, mac_vst_filter, 0, true, true, true); for (x = plugin_objects.begin(); x != plugin_objects.end (); ++x) { ARDOUR::PluginScanMessage(_("MacVST"), *x, !cache_only && !cancelled()); @@ -1146,6 +1160,11 @@ PluginManager::lxvst_discover_from_path (string path, bool cache_only) vector::iterator x; int ret = 0; + if (Session::get_disable_all_loaded_plugins ()) { + info << _("Disabled LinuxVST scan (safe mode)") << endmsg; + return -1; + } + #ifndef NDEBUG (void) path; #endif @@ -1242,7 +1261,7 @@ PluginManager::lxvst_discover (string path, bool cache_only) PluginManager::PluginStatusType -PluginManager::get_status (const PluginInfoPtr& pi) +PluginManager::get_status (const PluginInfoPtr& pi) const { PluginStatus ps (pi->type, pi->unique_id); PluginStatusList::const_iterator i = find (statuses.begin(), statuses.end(), ps); @@ -1368,6 +1387,8 @@ PluginManager::load_statuses () type = Windows_VST; } else if (stype == "LXVST") { type = LXVST; + } else if (stype == "MacVST") { + type = MacVST; } else if (stype == "Lua") { type = Lua; } else { @@ -1395,7 +1416,7 @@ PluginManager::set_status (PluginType t, string id, PluginStatusType status) statuses.insert (ps); } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::windows_vst_plugin_info () { #ifdef WINDOWS_VST_SUPPORT @@ -1408,7 +1429,7 @@ PluginManager::windows_vst_plugin_info () #endif } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::mac_vst_plugin_info () { #ifdef MACVST_SUPPORT @@ -1419,7 +1440,7 @@ PluginManager::mac_vst_plugin_info () #endif } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::lxvst_plugin_info () { #ifdef LXVST_SUPPORT @@ -1430,14 +1451,14 @@ PluginManager::lxvst_plugin_info () #endif } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::ladspa_plugin_info () { assert(_ladspa_plugin_info); return *_ladspa_plugin_info; } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::lv2_plugin_info () { #ifdef LV2_SUPPORT @@ -1448,7 +1469,7 @@ PluginManager::lv2_plugin_info () #endif } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::au_plugin_info () { #ifdef AUDIOUNIT_SUPPORT @@ -1459,7 +1480,7 @@ PluginManager::au_plugin_info () return _empty_plugin_info; } -ARDOUR::PluginInfoList& +const ARDOUR::PluginInfoList& PluginManager::lua_plugin_info () { assert(_lua_plugin_info);