diff options
author | Robin Gareus <robin@gareus.org> | 2015-03-03 16:42:05 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-03-03 19:54:28 +0100 |
commit | a2d1f894b05b23b58fad5d87c309bd42286b24b9 (patch) | |
tree | 4cb685e3b277728feb9722e2e1acbd934627acf3 | |
parent | cf7d5dbc2dabb2e0207da44ca92dccb30e8fabdb (diff) |
recursive VST scans
-rw-r--r-- | libs/ardour/plugin_manager.cc | 16 | ||||
-rw-r--r-- | libs/ardour/vst_info_file.cc | 1 |
2 files changed, 9 insertions, 8 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index f43f05835e..e88541317c 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -278,7 +278,7 @@ PluginManager::clear_vst_cache () #ifdef WINDOWS_VST_SUPPORT { vector<string> fsi_files; - find_files_matching_regex (fsi_files, Config->get_plugin_path_vst(), "\\.fsi$"); + find_files_matching_regex (fsi_files, Config->get_plugin_path_vst(), "\\.fsi$", true); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -288,7 +288,7 @@ PluginManager::clear_vst_cache () #ifdef LXVST_SUPPORT { vector<string> fsi_files; - find_files_matching_regex (fsi_files, Config->get_plugin_path_lxvst(), "\\.fsi$"); + find_files_matching_regex (fsi_files, Config->get_plugin_path_lxvst(), "\\.fsi$", true); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -299,7 +299,7 @@ PluginManager::clear_vst_cache () { string personal = get_personal_vst_info_cache_dir(); vector<string> fsi_files; - find_files_matching_regex (fsi_files, personal, "\\.fsi$"); + find_files_matching_regex (fsi_files, personal, "\\.fsi$", /* user cache is flat, no recursion */ false); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -313,7 +313,7 @@ PluginManager::clear_vst_blacklist () #ifdef WINDOWS_VST_SUPPORT { vector<string> fsi_files; - find_files_matching_regex (fsi_files, Config->get_plugin_path_vst(), "\\.fsb$"); + find_files_matching_regex (fsi_files, Config->get_plugin_path_vst(), "\\.fsb$", true); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -323,7 +323,7 @@ PluginManager::clear_vst_blacklist () #ifdef LXVST_SUPPORT { vector<string> fsi_files; - find_files_matching_regex (fsi_files, Config->get_plugin_path_lxvst(), "\\.fsb$"); + find_files_matching_regex (fsi_files, Config->get_plugin_path_lxvst(), "\\.fsb$", true); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -335,7 +335,7 @@ PluginManager::clear_vst_blacklist () string personal = get_personal_vst_blacklist_dir(); vector<string> fsi_files; - find_files_matching_regex (fsi_files, personal, "\\.fsb$"); + find_files_matching_regex (fsi_files, personal, "\\.fsb$", /* flat user cache */ false); for (vector<string>::iterator i = fsi_files.begin(); i != fsi_files.end (); ++i) { ::g_unlink(i->c_str()); } @@ -699,7 +699,7 @@ PluginManager::windows_vst_discover_from_path (string path, bool cache_only) DEBUG_TRACE (DEBUG::PluginManager, string_compose ("detecting Windows VST plugins along %1\n", path)); - find_files_matching_filter (plugin_objects, Config->get_plugin_path_vst(), windows_vst_filter, 0, false, true); + find_files_matching_filter (plugin_objects, Config->get_plugin_path_vst(), windows_vst_filter, 0, false, true, true); for (x = plugin_objects.begin(); x != plugin_objects.end (); ++x) { ARDOUR::PluginScanMessage(_("VST"), *x, !cache_only && !cancelled()); @@ -818,7 +818,7 @@ PluginManager::lxvst_discover_from_path (string path, bool cache_only) DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Discovering linuxVST plugins along %1\n", path)); - find_files_matching_filter (plugin_objects, Config->get_plugin_path_lxvst(), lxvst_filter, 0, false, true); + find_files_matching_filter (plugin_objects, Config->get_plugin_path_lxvst(), lxvst_filter, 0, false, true, true); for (x = plugin_objects.begin(); x != plugin_objects.end (); ++x) { ARDOUR::PluginScanMessage(_("LXVST"), *x, !cache_only && !cancelled()); diff --git a/libs/ardour/vst_info_file.cc b/libs/ardour/vst_info_file.cc index 731f3e67e8..2d68421103 100644 --- a/libs/ardour/vst_info_file.cc +++ b/libs/ardour/vst_info_file.cc @@ -97,6 +97,7 @@ vstfx_cache_file (const char* dllpath, int personal, const char *ext) string dir; if (personal) { dir = get_personal_vst_info_cache_dir(); + // TODO prefix path relative to scan-root to avoid duplicates } else { dir = Glib::path_get_dirname (std::string(dllpath)); } |