diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h index 8d7715f326..05ffe248bc 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client.h +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client.h @@ -68,8 +68,12 @@ Enable this if you want your VST3 plug-in to load and save VST2 compatible state. This allows hosts to replace VST2 plug-ins with VST3 plug-ins. If - you change this option then your VST3 plug-in will be incompatible with - previous versions. + you change this option then your VST3 plug-in will, by default, be incompatible + with previous versions. + + If you've already released a VST2 and VST3 with this flag set to 0, you can still enable + migration from VST2 to VST3 on newer hosts. See VST3ClientExtensions::getCompatibleClasses() + and VST3ClientExtensions::getCompatibleParameterIds() for more details. */ #ifndef JUCE_VST3_CAN_REPLACE_VST2 #define JUCE_VST3_CAN_REPLACE_VST2 1 diff --git a/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp b/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp index 5c14c82600..74cdf48b90 100644 --- a/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp +++ b/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp @@ -38,6 +38,32 @@ //============================================================================== #if JucePlugin_Build_VST3 +JUCE_BEGIN_NO_SANITIZE ("vptr") + +#if JUCE_PLUGINHOST_VST3 + #if JUCE_MAC + #include + #endif + #undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY + #define JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY 1 +#endif + +#include + +#undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY +#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1 + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + #if JUCE_VST3_CAN_REPLACE_VST2 && ! JUCE_FORCE_USE_LEGACY_PARAM_IDS && ! JUCE_IGNORE_VST3_MISMATCHED_PARAMETER_ID_WARNING // If you encounter this error there may be an issue migrating parameter @@ -70,32 +96,6 @@ #error You may have a conflict with parameter automation between VST2 and VST3 versions of your plugin. See the comment above for more details. #endif -JUCE_BEGIN_NO_SANITIZE ("vptr") - -#if JUCE_PLUGINHOST_VST3 - #if JUCE_MAC - #include - #endif - #undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY - #define JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY 1 -#endif - -#include - -#undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY -#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1 - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - #ifndef JUCE_VST3_EMULATE_MIDI_CC_WITH_PARAMETERS #if JucePlugin_WantsMidiInput #define JUCE_VST3_EMULATE_MIDI_CC_WITH_PARAMETERS 1