summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-02-24 03:53:53 +0100
committerRobin Gareus <robin@gareus.org>2014-02-24 03:53:53 +0100
commit59cc85b8211a7f2d171eb3e35444a6532bbd1d8a (patch)
tree10d8264303ecc8367958c6972a99ff31da28c7fe /libs/ardour/plugin_manager.cc
parent22905d8a935534baecaf6cce540d103014f7095d (diff)
plugin scan progress-display & preferences
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r--libs/ardour/plugin_manager.cc67
1 files changed, 65 insertions, 2 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index e6a0b40ae5..6a20191cf1 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -46,6 +46,7 @@
#include <cstring>
#endif //LXVST_SUPPORT
+#include <glib/gstdio.h>
#include <glibmm/miscutils.h>
#include <glibmm/pattern.h>
@@ -108,6 +109,7 @@ PluginManager::PluginManager ()
, _ladspa_plugin_info(0)
, _lv2_plugin_info(0)
, _au_plugin_info(0)
+ , cancel_scan(false)
{
char* s;
string lrdf_path;
@@ -204,6 +206,69 @@ PluginManager::refresh ()
}
void
+PluginManager::cancel_plugin_scan ()
+{
+ // TODO
+}
+
+void
+PluginManager::clear_vst_cache ()
+{
+ // see also libs/ardour/vst_info_file.cc - vstfx_infofile_path()
+#ifdef WINDOWS_VST_SUPPORT
+ {
+ PathScanner scanner;
+ vector<string *> *fsi_files;
+
+ fsi_files = scanner (windows_vst_path, "\\.fsi$", true, true, -1, false);
+ if (fsi_files) {
+ for (vector<string *>::iterator i = fsi_files->begin(); i != fsi_files->end (); ++i) {
+ ::g_unlink((*i)->c_str());
+ }
+ }
+ vector_delete(fsi_files);
+ }
+#endif
+
+#ifdef LXVST_SUPPORT
+ {
+ PathScanner scanner;
+ vector<string *> *fsi_files;
+ fsi_files = scanner (lxvst_path, "\\.fsi$", true, true, -1, false);
+ if (fsi_files) {
+ for (vector<string *>::iterator i = fsi_files->begin(); i != fsi_files->end (); ++i) {
+ ::g_unlink((*i)->c_str());
+ }
+ }
+ vector_delete(fsi_files);
+ }
+#endif
+
+#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT)
+ {
+ string personal;
+ personal = Glib::build_filename (Glib::get_home_dir (), ".fst");
+
+ PathScanner scanner;
+ vector<string *> *fsi_files;
+ fsi_files = scanner (personal, "\\.fsi$", true, true, -1, false);
+ if (fsi_files) {
+ for (vector<string *>::iterator i = fsi_files->begin(); i != fsi_files->end (); ++i) {
+ ::g_unlink((*i)->c_str());
+ }
+ }
+ vector_delete(fsi_files);
+ }
+#endif
+}
+
+void
+PluginManager::clear_vst_blacklist ()
+{
+ // TODO -> libs/ardour/vst_info_file.cc
+}
+
+void
PluginManager::ladspa_refresh ()
{
if (_ladspa_plugin_info) {
@@ -567,7 +632,6 @@ PluginManager::windows_vst_discover (string path)
if (finfos->empty()) {
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Cannot get Windows VST information from '%1'\n", path));
- warning << "Cannot get Windows VST information from " << path << endmsg;
return -1;
}
@@ -706,7 +770,6 @@ PluginManager::lxvst_discover (string path)
if (finfos->empty()) {
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Cannot get Linux VST information from '%1'\n", path));
- warning << "Cannot get Linux VST information from " << path << endmsg;
return -1;
}