summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2014-03-09 11:48:09 +0000
committerJohn Emmas <johne53@tiscali.co.uk>2014-03-09 11:48:09 +0000
commitfc94f71d5a6b1152e7861a98407c487b579d0593 (patch)
tree943c80e3abfd43a0e9eb7ebfe825f0fde458d416 /libs
parent611dc796de1f822d19bbe0329d83b11c470205a8 (diff)
Modified nesting to ensure that 'vst_search_path()' shouldn't return NULL if the first test fails
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/vst_search_path.cc125
1 files changed, 64 insertions, 61 deletions
diff --git a/libs/ardour/vst_search_path.cc b/libs/ardour/vst_search_path.cc
index 6dea1b70a7..c727b9b9ab 100644
--- a/libs/ardour/vst_search_path.cc
+++ b/libs/ardour/vst_search_path.cc
@@ -42,78 +42,81 @@ vst_search_path ()
if (ERROR_SUCCESS == RegOpenKeyExA (HKEY_CURRENT_USER, "Software\\VST", 0, KEY_READ, &hKey)) {
// Look for the user's VST Registry entry
- if (ERROR_SUCCESS == RegQueryValueExA (hKey, "VSTPluginsPath", 0, &dwType, (LPBYTE)tmp, &dwSize)) {
+ if (ERROR_SUCCESS == RegQueryValueExA (hKey, "VSTPluginsPath", 0, &dwType, (LPBYTE)tmp, &dwSize))
p = g_build_filename (Glib::locale_to_utf8(tmp).c_str(), 0);
- }
+
RegCloseKey (hKey);
-
- if (p == 0) {
- if (ERROR_SUCCESS == RegOpenKeyExA (HKEY_LOCAL_MACHINE, "Software\\VST", 0, KEY_READ, &hKey)) {
- // Look for a global VST Registry entry
- if (ERROR_SUCCESS == RegQueryValueExA (hKey, "VSTPluginsPath", 0, &dwType, (LPBYTE)tmp, &dwSize))
- p = g_build_filename (Glib::locale_to_utf8(tmp).c_str(), 0);
-
- RegCloseKey (hKey);
- }
-
- if (p == 0) {
- char *pVSTx86 = 0;
- char *pProgFilesX86 = PBD::get_win_special_folder (CSIDL_PROGRAM_FILESX86);
-
- if (pProgFilesX86) {
- // Look for a VST folder under C:\Program Files (x86)
- if (pVSTx86 = g_build_filename (pProgFilesX86, "Steinberg", "VSTPlugins", 0)) {
- if (Glib::file_test (pVSTx86, Glib::FILE_TEST_EXISTS))
- if (Glib::file_test (pVSTx86, Glib::FILE_TEST_IS_DIR))
- p = g_build_filename (pVSTx86, 0);
-
- g_free (pVSTx86);
- }
-
- g_free (pProgFilesX86);
- }
+ }
+
+ if (p == 0) {
+ if (ERROR_SUCCESS == RegOpenKeyExA (HKEY_LOCAL_MACHINE, "Software\\VST", 0, KEY_READ, &hKey))
+ {
+ // Look for a global VST Registry entry
+ if (ERROR_SUCCESS == RegQueryValueExA (hKey, "VSTPluginsPath", 0, &dwType, (LPBYTE)tmp, &dwSize))
+ p = g_build_filename (Glib::locale_to_utf8(tmp).c_str(), 0);
+
+ RegCloseKey (hKey);
+ }
+ }
+
+ if (p == 0) {
+ char *pVSTx86 = 0;
+ char *pProgFilesX86 = PBD::get_win_special_folder (CSIDL_PROGRAM_FILESX86);
+
+ if (pProgFilesX86) {
+ // Look for a VST folder under C:\Program Files (x86)
+ if (pVSTx86 = g_build_filename (pProgFilesX86, "Steinberg", "VSTPlugins", 0))
+ {
+ if (Glib::file_test (pVSTx86, Glib::FILE_TEST_EXISTS))
+ if (Glib::file_test (pVSTx86, Glib::FILE_TEST_IS_DIR))
+ p = g_build_filename (pVSTx86, 0);
+
+ g_free (pVSTx86);
}
- if (p == 0) {
- // Look for a VST folder under C:\Program Files
- char *pVST = 0;
- char *pProgFiles = PBD::get_win_special_folder (CSIDL_PROGRAM_FILES);
-
- if (pProgFiles) {
- if (pVST = g_build_filename (pProgFiles, "Steinberg", "VSTPlugins", 0)) {
- if (Glib::file_test (pVST, Glib::FILE_TEST_EXISTS))
- if (Glib::file_test (pVST, Glib::FILE_TEST_IS_DIR))
- p = g_build_filename (pVST, 0);
- g_free (pVST);
- }
-
- g_free (pProgFiles);
+ g_free (pProgFilesX86);
+ }
+
+ if (p == 0) {
+ // Look for a VST folder under C:\Program Files
+ char *pVST = 0;
+ char *pProgFiles = PBD::get_win_special_folder (CSIDL_PROGRAM_FILES);
+
+ if (pProgFiles) {
+ if (pVST = g_build_filename (pProgFiles, "Steinberg", "VSTPlugins", 0)) {
+ if (Glib::file_test (pVST, Glib::FILE_TEST_EXISTS))
+ if (Glib::file_test (pVST, Glib::FILE_TEST_IS_DIR))
+ p = g_build_filename (pVST, 0);
+
+ g_free (pVST);
}
+
+ g_free (pProgFiles);
}
}
-
- if (p == 0) {
- // If all else failed, assume the plugins are under "My Documents"
- user_home = (char*) g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
- if (user_home) {
+ }
+
+ if (p == 0) {
+ // If all else failed, assume the plugins are under "My Documents"
+ user_home = (char*) g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
+ if (user_home) {
+ p = g_build_filename (user_home, "Plugins", "VST", 0);
+ } else {
+ user_home = g_build_filename(g_get_home_dir(), "My Documents", 0);
+ if (user_home)
p = g_build_filename (user_home, "Plugins", "VST", 0);
- } else {
- user_home = g_build_filename(g_get_home_dir(), "My Documents", 0);
- if (user_home)
- p = g_build_filename (user_home, "Plugins", "VST", 0);
- }
+ }
+ } else {
+ // Concatenate the registry path with the user's personal path
+ user_home = (char*) g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
+
+ if (user_home) {
+ p = g_build_path (";", p, g_build_filename(user_home, "Plugins", "VST", 0), 0);
} else {
- // Concatenate the registry path with the user's personal path
+ user_home = g_build_filename(g_get_home_dir(), "My Documents", 0);
- user_home = (char*) g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS);
-
if (user_home) {
- p = g_build_path (";", p, g_build_filename(user_home, "Plugins", "VST", 0), 0);
- } else {
- user_home = g_build_filename(g_get_home_dir(), "My Documents", 0);
- if (user_home) {
- p = g_build_path (";", p, g_build_filename (user_home, "Plugins", "VST", 0), 0);
- }
+ p = g_build_path (";", p, g_build_filename (user_home, "Plugins", "VST", 0), 0);
}
}
}