35JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-W
#warnings",
41 "-Wdelete-non-virtual-dtor",
43 "-Wdeprecated-copy-dtor",
44 "-Wdeprecated-declarations",
45 "-Wdeprecated-register",
50 "-Wformat-truncation=",
52 "-Wignored-qualifiers",
53 "-Winconsistent-missing-destructor-override",
54 "-Wint-to-pointer-cast",
55 "-Wlogical-op-parentheses",
56 "-Wmaybe-uninitialized",
58 "-Wmissing-field-initializers",
59 "-Wmissing-prototypes",
61 "-Woverloaded-virtual",
74 "-Wunused-but-set-variable",
77 "-Wzero-as-null-pointer-constant")
80#define DEVELOPMENT 0 // This avoids a Clang warning in Steinberg code about unused values
82/* These files come with the Steinberg VST3 SDK - to get them, you'll need to
83 visit the Steinberg website and agree to whatever is currently required to
86 Then, you'll need to make sure your include path contains your "VST3 SDK"
87 directory (or whatever you've named it on your machine). The Projucer has
88 a special box for setting this path.
90#if JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY
91 #include <base/source/fstring.h>
92 #include <pluginterfaces/base/conststringtable.h>
93 #include <pluginterfaces/base/funknown.h>
94 #include <pluginterfaces/base/ipluginbase.h>
95 #include <pluginterfaces/base/iplugincompatibility.h>
96 #include <pluginterfaces/base/ustring.h>
97 #include <pluginterfaces/gui/iplugview.h>
98 #include <pluginterfaces/gui/iplugviewcontentscalesupport.h>
99 #include <pluginterfaces/vst/ivstattributes.h>
100 #include <pluginterfaces/vst/ivstaudioprocessor.h>
101 #include <pluginterfaces/vst/ivstcomponent.h>
102 #include <pluginterfaces/vst/ivstcontextmenu.h>
103 #include <pluginterfaces/vst/ivsteditcontroller.h>
104 #include <pluginterfaces/vst/ivstevents.h>
105 #include <pluginterfaces/vst/ivsthostapplication.h>
106 #include <pluginterfaces/vst/ivstmessage.h>
107 #include <pluginterfaces/vst/ivstmidicontrollers.h>
108 #include <pluginterfaces/vst/ivstparameterchanges.h>
109 #include <pluginterfaces/vst/ivstplugview.h>
110 #include <pluginterfaces/vst/ivstprocesscontext.h>
111 #include <pluginterfaces/vst/vsttypes.h>
112 #include <pluginterfaces/vst/ivstunits.h>
113 #include <pluginterfaces/vst/ivstmidicontrollers.h>
114 #include <pluginterfaces/vst/ivstchannelcontextinfo.h>
115 #include <public.sdk/source/common/memorystream.h>
116 #include <public.sdk/source/vst/utility/uid.h>
117 #include <public.sdk/source/vst/vsteditcontroller.h>
118 #include <public.sdk/source/vst/vstpresetfile.h>
120 #include "pslextensions/ipslviewembedding.h"
122 // needed for VST_VERSION
123 #include <pluginterfaces/vst/vsttypes.h>
126 #define NOMINMAX // Some of the steinberg sources don't set this before including windows.h
129 #include <base/source/baseiids.cpp>
130 #include <base/source/fbuffer.cpp>
131 #include <base/source/fdebug.cpp>
132 #include <base/source/fobject.cpp>
133 #include <base/source/fstreamer.cpp>
134 #include <base/source/fstring.cpp>
136 // The following shouldn't leak from fstring.cpp
144 #if VST_VERSION >= 0x030608
145 #include <base/thread/source/flock.cpp>
146 #include <pluginterfaces/base/coreiids.cpp>
148 #include <base/source/flock.cpp>
151#pragma push_macro ("True")
153#pragma push_macro ("False")
156 #include <base/source/updatehandler.cpp>
157 #include <pluginterfaces/base/conststringtable.cpp>
158 #include <pluginterfaces/base/funknown.cpp>
159 #include <pluginterfaces/base/ipluginbase.h>
160 #include <pluginterfaces/base/ustring.cpp>
161 #include <pluginterfaces/gui/iplugview.h>
162 #include <pluginterfaces/gui/iplugviewcontentscalesupport.h>
163 #include <pluginterfaces/vst/ivstchannelcontextinfo.h>
164 #include <pluginterfaces/vst/ivstmidicontrollers.h>
165 #include <public.sdk/source/common/memorystream.cpp>
166 #include <public.sdk/source/common/pluginview.cpp>
167 #include <public.sdk/source/vst/hosting/hostclasses.cpp>
168 #include <public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp>
169 #include <public.sdk/source/vst/utility/stringconvert.cpp>
170 #include <public.sdk/source/vst/utility/uid.h>
171 #include <public.sdk/source/vst/vstbus.cpp>
172 #include <public.sdk/source/vst/vstcomponent.cpp>
173 #include <public.sdk/source/vst/vstcomponentbase.cpp>
174 #include <public.sdk/source/vst/vsteditcontroller.cpp>
175 #include <public.sdk/source/vst/vstinitiids.cpp>
176 #include <public.sdk/source/vst/vstparameters.cpp>
177 #include <public.sdk/source/vst/vstpresetfile.cpp>
179#pragma pop_macro ("True")
180#pragma pop_macro ("False")
182 #if VST_VERSION >= 0x03060c // 3.6.12
183 #include <public.sdk/source/vst/hosting/pluginterfacesupport.cpp>
186 #include "pslextensions/ipslviewembedding.h"
188//==============================================================================
192 #if VST_VERSION < 0x03060d // 3.6.13
193 DEF_CLASS_IID (IPluginBase)
194 DEF_CLASS_IID (IPluginFactory)
195 DEF_CLASS_IID (IPluginFactory2)
196 DEF_CLASS_IID (IPluginFactory3)
197 #if VST_VERSION < 0x030608
198 DEF_CLASS_IID (IBStream)
201 DEF_CLASS_IID (IPlugView)
202 DEF_CLASS_IID (IPlugFrame)
203 DEF_CLASS_IID (IPlugViewContentScaleSupport)
205 #if JUCE_LINUX || JUCE_BSD
206 DEF_CLASS_IID (Linux::IRunLoop)
207 DEF_CLASS_IID (Linux::IEventHandler)