diff --git a/source/carla_database.py b/source/carla_database.py index 4509a62c4..fc761c6cb 100755 --- a/source/carla_database.py +++ b/source/carla_database.py @@ -81,6 +81,15 @@ def findBinaries(binPath, OS): return binaries +def findVST3Binaries(binPath): + binaries = [] + + for root, dirs, files in os.walk(binPath): + for name in [name for name in files if name.lower().endswith(".vst3")]: + binaries.append(os.path.join(root, name)) + + return binaries + def findLV2Bundles(bundlePath): bundles = [] @@ -90,11 +99,11 @@ def findLV2Bundles(bundlePath): return bundles -def findMacVSTBundles(bundlePath): +def findMacVSTBundles(bundlePath, isVST3): bundles = [] for root, dirs, files in os.walk(bundlePath): - for name in [name for name in dirs if name.lower().endswith(".vst")]: + for name in [name for name in dirs if name.lower().endswith(".vst3" if isVST3 else ".vst")]: bundles.append(os.path.join(root, name)) return bundles @@ -837,7 +846,7 @@ class SearchPluginsThread(QThread): for iPATH in VST_PATH: if MACOS and not isWine: - binaries = findMacVSTBundles(iPATH) + binaries = findMacVSTBundles(iPATH, False) else: binaries = findBinaries(iPATH, OS) for binary in binaries: @@ -876,9 +885,9 @@ class SearchPluginsThread(QThread): for iPATH in VST3_PATH: if MACOS and not isWine: - binaries = findMacVSTBundles(iPATH) + binaries = findMacVSTBundles(iPATH, True) else: - binaries = findBinaries(iPATH, OS) + binaries = findVST3Binaries(iPATH) for binary in binaries: if binary not in vst3Binaries: vst3Binaries.append(binary) diff --git a/source/carla_settings.py b/source/carla_settings.py index 34fa2099a..84c45d334 100755 --- a/source/carla_settings.py +++ b/source/carla_settings.py @@ -390,7 +390,7 @@ class CarlaSettingsW(QDialog): dssis = toList(settings.value(CARLA_KEY_PATHS_DSSI, gCarla.DEFAULT_DSSI_PATH)) lv2s = toList(settings.value(CARLA_KEY_PATHS_LV2, gCarla.DEFAULT_LV2_PATH)) vsts = toList(settings.value(CARLA_KEY_PATHS_VST, gCarla.DEFAULT_VST_PATH)) - vst3s = toList(settings.value(CARLA_KEY_PATHS_VST, gCarla.DEFAULT_VST3_PATH)) + vst3s = toList(settings.value(CARLA_KEY_PATHS_VST3, gCarla.DEFAULT_VST3_PATH)) aus = toList(settings.value(CARLA_KEY_PATHS_AU, gCarla.DEFAULT_AU_PATH)) csds = toList(settings.value(CARLA_KEY_PATHS_CSD, gCarla.DEFAULT_CSOUND_PATH)) gigs = toList(settings.value(CARLA_KEY_PATHS_GIG, gCarla.DEFAULT_GIG_PATH)) diff --git a/source/carla_shared.py b/source/carla_shared.py index 600f6f021..405f9274a 100644 --- a/source/carla_shared.py +++ b/source/carla_shared.py @@ -414,6 +414,20 @@ else: DEFAULT_SFZ_PATH = HOME + "/.sounds/sfz" DEFAULT_SFZ_PATH += ":/usr/share/sounds/sfz" +if not WINDOWS: + winePrefix = os.getenv("WINEPREFIX") + + if not winePrefix: + winePrefix = HOME + "/.wine" + + if os.path.exists(winePrefix): + DEFAULT_VST_PATH += ":" + winePrefix + "/drive_c/Program Files/VstPlugins" + DEFAULT_VST3_PATH += ":" + winePrefix + "/drive_c/Program Files/Common Files/VST3" + + if kIs64bit and os.path.exists(winePrefix + "/drive_c/Program Files (x86)"): + DEFAULT_VST_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/VstPlugins" + DEFAULT_VST3_PATH += ":" + winePrefix + "/drive_c/Program Files (x86)/Common Files/VST3" + # ------------------------------------------------------------------------------------------------------------ # Default Plugin Folders (set)