Browse Source

VST3: Added support for VST3 SDK 3.6.8

tags/2021-05-28
hogliux 8 years ago
parent
commit
7a22f133c4
3 changed files with 26 additions and 3 deletions
  1. +9
    -1
      modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp
  2. +7
    -2
      modules/juce_audio_processors/format_types/juce_VST3Common.h
  3. +10
    -0
      modules/juce_audio_processors/format_types/juce_VST3Headers.h

+ 9
- 1
modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp View File

@@ -2596,7 +2596,15 @@ struct JucePluginFactory : public IPluginFactory3
{
*obj = nullptr;
FUID sourceFuid = sourceIid;
TUID tuid;
memcpy (tuid, sourceIid, sizeof (TUID));
#if VST_VERSION >= 0x030608
auto sourceFuid = FUID::fromTUID (tuid);
#else
FUID sourceFuid;
sourceFuid = tuid;
#endif
if (cid == nullptr || sourceIid == nullptr || ! sourceFuid.isValid())
{


+ 7
- 2
modules/juce_audio_processors/format_types/juce_VST3Common.h View File

@@ -61,6 +61,11 @@ static bool doUIDsMatch (const Steinberg::TUID a, const Steinberg::TUID b) noexc
return Steinberg::kResultOk; \
}
//==============================================================================
#if VST_VERSION < 0x030608
#define kAmbi1stOrderACN kBFormat
#endif
//==============================================================================
inline juce::String toString (const Steinberg::char8* string) noexcept { return juce::String (string); }
inline juce::String toString (const Steinberg::char16* string) noexcept { return juce::String (juce::CharPointer_UTF16 ((juce::CharPointer_UTF16::CharType*) string)); }
@@ -265,7 +270,7 @@ static inline Steinberg::Vst::SpeakerArrangement getVst3SpeakerArrangement (cons
else if (channels == AudioChannelSet::create7point0SDDS()) return k70Cine;
else if (channels == AudioChannelSet::create7point1()) return k71CineSideFill;
else if (channels == AudioChannelSet::create7point1SDDS()) return k71Cine;
else if (channels == AudioChannelSet::ambisonic()) return kBFormat;
else if (channels == AudioChannelSet::ambisonic()) return kAmbi1stOrderACN;
else if (channels == AudioChannelSet::quadraphonic()) return k40Music;
else if (channels == AudioChannelSet::create7point0point2()) return k71_2 & ~(Steinberg::Vst::kSpeakerLfe);
else if (channels == AudioChannelSet::create7point1point2()) return k71_2;
@@ -300,7 +305,7 @@ static inline AudioChannelSet getChannelSetForSpeakerArrangement (Steinberg::Vst
else if (arr == k70Cine) return AudioChannelSet::create7point0SDDS();
else if (arr == k71CineSideFill) return AudioChannelSet::create7point1();
else if (arr == k71Cine) return AudioChannelSet::create7point1SDDS();
else if (arr == kBFormat) return AudioChannelSet::ambisonic();
else if (arr == kAmbi1stOrderACN) return AudioChannelSet::ambisonic();
else if (arr == k40Music) return AudioChannelSet::quadraphonic();
else if (arr == k71_2) return AudioChannelSet::create7point1point2();
else if (arr == (k71_2 & ~(Steinberg::Vst::kSpeakerLfe))) return AudioChannelSet::create7point0point2();


+ 10
- 0
modules/juce_audio_processors/format_types/juce_VST3Headers.h View File

@@ -89,13 +89,21 @@
#include <public.sdk/source/common/memorystream.h>
#include <public.sdk/source/vst/vsteditcontroller.h>
#else
// needed for VST_VSERION
#include <pluginterfaces/vst/vsttypes.h>
#include <base/source/baseiids.cpp>
#include <base/source/fbuffer.cpp>
#include <base/source/fdebug.cpp>
#include <base/source/fobject.cpp>
#include <base/source/fstreamer.cpp>
#include <base/source/fstring.cpp>
#if VST_VERSION >= 0x030608
#include <base/thread/source/flock.cpp>
#include <pluginterfaces/base/coreiids.cpp>
#else
#include <base/source/flock.cpp>
#endif
#include <base/source/updatehandler.cpp>
#include <pluginterfaces/base/conststringtable.cpp>
#include <pluginterfaces/base/funknown.cpp>
@@ -122,7 +130,9 @@ namespace Steinberg
DEF_CLASS_IID (IPluginBase)
DEF_CLASS_IID (IPlugView)
DEF_CLASS_IID (IPlugFrame)
#if VST_VERSION < 0x030608
DEF_CLASS_IID (IBStream)
#endif
DEF_CLASS_IID (IPluginFactory)
DEF_CLASS_IID (IPluginFactory2)
DEF_CLASS_IID (IPluginFactory3)


Loading…
Cancel
Save