| @@ -15,6 +15,7 @@ | |||||
| */ | */ | ||||
| #include "DistrhoPluginInternal.hpp" | #include "DistrhoPluginInternal.hpp" | ||||
| #include "DistrhoPluginUtils.hpp" | |||||
| #include "../extra/ScopedSafeLocale.hpp" | #include "../extra/ScopedSafeLocale.hpp" | ||||
| #if DISTRHO_PLUGIN_HAS_UI && ! DISTRHO_PLUGIN_HAS_EMBED_UI | #if DISTRHO_PLUGIN_HAS_UI && ! DISTRHO_PLUGIN_HAS_EMBED_UI | ||||
| @@ -1680,6 +1681,32 @@ const AEffect* VSTPluginMain(audioMasterCallback audioMaster) | |||||
| if (audioMaster(nullptr, audioMasterVersion, 0, 0, nullptr, 0.0f) == 0) | if (audioMaster(nullptr, audioMasterVersion, 0, 0, nullptr, 0.0f) == 0) | ||||
| return nullptr; | return nullptr; | ||||
| // find plugin bundle | |||||
| static String bundlePath; | |||||
| if (bundlePath.isEmpty()) | |||||
| { | |||||
| String tmpPath(getBinaryFilename()); | |||||
| tmpPath.truncate(tmpPath.rfind(DISTRHO_OS_SEP)); | |||||
| #ifdef DISTRHO_OS_MAC | |||||
| if (tmpPath.endsWith("/MacOS")) | |||||
| { | |||||
| tmpPath.truncate(tmpPath.rfind('/')); | |||||
| if (tmpPath.endsWith("/Contents")) | |||||
| { | |||||
| tmpPath.truncate(tmpPath.rfind('/')); | |||||
| bundlePath = tmpPath; | |||||
| d_nextBundlePath = bundlePath.buffer(); | |||||
| } | |||||
| } | |||||
| #else | |||||
| if (tmpPath.endsWith(".vst")) | |||||
| { | |||||
| bundlePath = tmpPath; | |||||
| d_nextBundlePath = bundlePath.buffer(); | |||||
| } | |||||
| #endif | |||||
| } | |||||
| // first internal init | // first internal init | ||||
| PluginExporter* plugin = nullptr; | PluginExporter* plugin = nullptr; | ||||
| vst_dispatcherCallback(nullptr, -1729, 0xdead, 0xf00d, &plugin, 0.0f); | vst_dispatcherCallback(nullptr, -1729, 0xdead, 0xf00d, &plugin, 0.0f); | ||||