fix clang compilation (include header ordering)
[ardour.git] / libs / ardour / plugin_manager.cc
index 596acadf6cd24af8c20c17fda788d6f7d6c7e641..5254b41a78ea4a81c577011c36527d7efc10a913 100644 (file)
@@ -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<string> plugin_objects;
        vector<string>::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<string>::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);