fix breakage for optimized build caused by semantically critical statement inside...
[ardour.git] / libs / ardour / plugin_manager.cc
index dc7b3bc0d3759a8449fbdf667736af8300e8a6a7..6a24a33b60b22376b3041ff8224fc7ae0adafdef 100644 (file)
 #include <fstream>
 
 #ifdef WINDOWS_VST_SUPPORT
-#include <fst.h>
+#include "fst.h"
 #include "pbd/basename.h"
 #include <cstring>
 #endif // WINDOWS_VST_SUPPORT
 
 #ifdef LXVST_SUPPORT
-#include <ardour/vstfx.h>
-#include <pbd/basename.h>
+#include "ardour/linux_vst_support.h"
+#include "pbd/basename.h"
 #include <cstring>
 #endif //LXVST_SUPPORT
 
@@ -53,7 +53,7 @@
 #include "ardour/ladspa_plugin.h"
 #include "ardour/plugin.h"
 #include "ardour/plugin_manager.h"
-#include "ardour/session.h"
+#include "ardour/rc_configuration.h"
 
 #ifdef LV2_SUPPORT
 #include "ardour/lv2_plugin.h"
@@ -452,7 +452,7 @@ PluginManager::get_ladspa_category (uint32_t plugin_id)
 
        snprintf(buf, sizeof(buf), "%s%" PRIu32, LADSPA_BASE, plugin_id);
        pattern.subject = buf;
-       pattern.predicate = (char*)RDF_TYPE;
+       pattern.predicate = const_cast<char*>(RDF_TYPE);
        pattern.object = 0;
        pattern.object_type = lrdf_uri;
 
@@ -463,7 +463,7 @@ PluginManager::get_ladspa_category (uint32_t plugin_id)
        }
 
        pattern.subject = matches1->object;
-       pattern.predicate = (char*)(LADSPA_BASE "hasLabel");
+       pattern.predicate = const_cast<char*>(LADSPA_BASE "hasLabel");
        pattern.object = 0;
        pattern.object_type = lrdf_literal;
 
@@ -510,6 +510,7 @@ PluginManager::get_ladspa_category (uint32_t plugin_id)
 void
 PluginManager::lv2_refresh ()
 {
+       DEBUG_TRACE (DEBUG::PluginManager, "LV2: refresh\n");
        delete _lv2_plugin_info;
        _lv2_plugin_info = LV2PluginInfo::discover();
 }
@@ -587,7 +588,7 @@ PluginManager::windows_vst_discover_from_path (string path)
 int
 PluginManager::windows_vst_discover (string path)
 {
-       FSTInfo* finfo;
+       VSTInfo* finfo;
        char buf[32];
 
        if ((finfo = fst_get_info (const_cast<char *> (path.c_str()))) == 0) {
@@ -692,11 +693,10 @@ PluginManager::lxvst_discover_from_path (string path)
 int
 PluginManager::lxvst_discover (string path)
 {
-       VSTFXInfo* finfo;
+       VSTInfo* finfo;
        char buf[32];
 
        if ((finfo = vstfx_get_info (const_cast<char *> (path.c_str()))) == 0) {
-               warning << "Cannot get linuxVST information from " << path << endmsg;
                return -1;
        }
 
@@ -736,6 +736,7 @@ PluginManager::lxvst_discover (string path)
        if (!_lxvst_plugin_info->empty()) {
                for (PluginInfoList::iterator i =_lxvst_plugin_info->begin(); i != _lxvst_plugin_info->end(); ++i) {
                        if ((info->type == (*i)->type)&&(info->unique_id == (*i)->unique_id)) {
+                               warning << "Ignoring duplicate Linux VST plugin " << info->name << "\n";
                                vstfx_free_info(finfo);
                                return 0;
                        }
@@ -767,10 +768,9 @@ void
 PluginManager::save_statuses ()
 {
        ofstream ofs;
-       sys::path path = user_config_directory();
-       path /= "plugin_statuses";
+       std::string path = Glib::build_filename (user_config_directory(), "plugin_statuses");
 
-       ofs.open (path.to_string().c_str(), ios_base::openmode (ios::out|ios::trunc));
+       ofs.open (path.c_str(), ios_base::openmode (ios::out|ios::trunc));
 
        if (!ofs) {
                return;
@@ -820,9 +820,8 @@ PluginManager::save_statuses ()
 void
 PluginManager::load_statuses ()
 {
-       sys::path path = user_config_directory();
-       path /= "plugin_statuses";
-       ifstream ifs (path.to_string().c_str());
+       std::string path = Glib::build_filename (user_config_directory(), "plugin_statuses");
+       ifstream ifs (path.c_str());
 
        if (!ifs) {
                return;