diff --git a/libs/juce-current/patches/04_vst2-interface_pt2.patch b/libs/juce-current/patches/04_vst2-interface_pt2.patch new file mode 100644 index 00000000..e5a3657a --- /dev/null +++ b/libs/juce-current/patches/04_vst2-interface_pt2.patch @@ -0,0 +1,78 @@ +diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +index 3e63d3372..c09d99fc3 100644 +--- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp ++++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp +@@ -61,10 +61,7 @@ + #define __cdecl + #endif + +- namespace Vst2 +- { +- #include "pluginterfaces/vst2.x/vstfxstore.h" +- } ++ #include + + #endif + +@@ -1967,16 +1964,16 @@ public: + + bool loadVST2CcnKBlock (const char* data, int size) + { +- auto* bank = reinterpret_cast (data); ++ auto* bank = reinterpret_cast (data); + +- jassert (ByteOrder::bigEndianInt ("CcnK") == htonl ((uint32) bank->chunkMagic)); +- jassert (ByteOrder::bigEndianInt ("FBCh") == htonl ((uint32) bank->fxMagic)); +- jassert (htonl ((uint32) bank->version) == 1 || htonl ((uint32) bank->version) == 2); ++ jassert (ByteOrder::bigEndianInt ("CcnK") == htonl ((uint32) bank->magic1)); ++ jassert (ByteOrder::bigEndianInt ("FBCh") == htonl ((uint32) bank->magic2)); ++ jassert (htonl ((uint32) bank->version1) == 1 || htonl ((uint32) bank->version1) == 2); + jassert (JucePlugin_VSTUniqueID == htonl ((uint32) bank->fxID)); + +- setStateInformation (bank->content.data.chunk, +- jmin ((int) (size - (bank->content.data.chunk - data)), +- (int) htonl ((uint32) bank->content.data.size))); ++ setStateInformation (bank->chunk, ++ jmin ((int) (size - (bank->chunk - data)), ++ (int) htonl ((uint32) bank->chunkSize))); + return true; + } + +@@ -2172,16 +2169,16 @@ public: + return status; + + const int bankBlockSize = 160; +- Vst2::fxBank bank; ++ vst2FxBank bank; + + zerostruct (bank); +- bank.chunkMagic = (int32) htonl (ByteOrder::bigEndianInt ("CcnK")); +- bank.byteSize = (int32) htonl (bankBlockSize - 8 + (unsigned int) mem.getSize()); +- bank.fxMagic = (int32) htonl (ByteOrder::bigEndianInt ("FBCh")); +- bank.version = (int32) htonl (2); +- bank.fxID = (int32) htonl (JucePlugin_VSTUniqueID); +- bank.fxVersion = (int32) htonl (JucePlugin_VersionCode); +- bank.content.data.size = (int32) htonl ((unsigned int) mem.getSize()); ++ bank.magic1 = (int32) htonl (ByteOrder::bigEndianInt ("CcnK")); ++ bank.size = (int32) htonl (bankBlockSize - 8 + (unsigned int) mem.getSize()); ++ bank.magic2 = (int32) htonl (ByteOrder::bigEndianInt ("FBCh")); ++ bank.version1 = (int32) htonl (2); ++ bank.fxID = (int32) htonl (JucePlugin_VSTUniqueID); ++ bank.version2 = (int32) htonl (JucePlugin_VersionCode); ++ bank.chunkSize = (int32) htonl ((unsigned int) mem.getSize()); + + status = state->write (&bank, bankBlockSize); + +diff --git a/modules/juce_audio_processors/format_types/juce_VSTInterface.h b/modules/juce_audio_processors/format_types/juce_VSTInterface.h +index 1b3eb7d08..58179be1a 100644 +--- a/modules/juce_audio_processors/format_types/juce_VSTInterface.h ++++ b/modules/juce_audio_processors/format_types/juce_VSTInterface.h +@@ -506,7 +506,7 @@ enum PresonusExtensionConstants + + @tags{Audio} + */ +-struct fxBank ++struct vst2FxBank + { + int32 magic1; + int32 size;