LMMS
Loading...
Searching...
No Matches
juce_VST3Headers.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26#pragma once
27
28#if JUCE_BSD && ! JUCE_CUSTOM_VST3_SDK
29 #error To build JUCE VST3 plug-ins on BSD you must use an external BSD-compatible VST3 SDK with JUCE_CUSTOM_VST3_SDK=1
30#endif
31
32// Wow, those Steinberg guys really don't worry too much about compiler warnings.
33JUCE_BEGIN_IGNORE_WARNINGS_LEVEL_MSVC (0, 4505 4702 6011 6031 6221 6386 6387 6330 6001 28199)
34
35JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-copy-dtor",
36 "-Wnon-virtual-dtor",
37 "-Wreorder",
38 "-Wunsequenced",
39 "-Wint-to-pointer-cast",
40 "-Wunused-parameter",
41 "-Wconversion",
42 "-Woverloaded-virtual",
43 "-Wshadow",
44 "-Wdeprecated-register",
45 "-Wunused-function",
46 "-Wsign-conversion",
47 "-Wsign-compare",
48 "-Wdelete-non-virtual-dtor",
49 "-Wdeprecated-declarations",
50 "-Wextra-semi",
51 "-Wmissing-braces",
52 "-Wswitch-default",
53 "-Wshadow-field",
54 "-Wpragma-pack",
55 "-Wcomma",
56 "-Wzero-as-null-pointer-constant",
57 "-Winconsistent-missing-destructor-override",
58 "-Wcast-align",
59 "-Wignored-qualifiers",
60 "-Wmissing-field-initializers",
61 "-Wformat=",
62 "-Wformat",
63 "-Wpedantic",
64 "-Wextra",
65 "-Wclass-memaccess",
66 "-Wmissing-prototypes",
67 "-Wtype-limits",
68 "-Wcpp",
69 "-W#warnings",
70 "-Wmaybe-uninitialized")
71
72#undef DEVELOPMENT
73#define DEVELOPMENT 0 // This avoids a Clang warning in Steinberg code about unused values
74
75/* These files come with the Steinberg VST3 SDK - to get them, you'll need to
76 visit the Steinberg website and agree to whatever is currently required to
77 get them.
78
79 Then, you'll need to make sure your include path contains your "VST3 SDK"
80 directory (or whatever you've named it on your machine). The Projucer has
81 a special box for setting this path.
82*/
83#if JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY
84 #include <base/source/fstring.h>
110
112#else
113 // needed for VST_VERSION
115
116 #include <base/source/baseiids.cpp>
117 #include <base/source/fbuffer.cpp>
118 #include <base/source/fdebug.cpp>
119 #include <base/source/fobject.cpp>
121 #include <base/source/fstring.cpp>
122
123 // The following shouldn't leak from fstring.cpp
124 #undef stricmp
125 #undef strnicmp
126 #undef snprintf
127 #undef vsnprintf
128 #undef snwprintf
129 #undef vsnwprintf
130
131 #if VST_VERSION >= 0x030608
134 #else
135 #include <base/source/flock.cpp>
136 #endif
137
157
158 #if VST_VERSION >= 0x03060c // 3.6.12
160 #endif
161
163
164//==============================================================================
165namespace Steinberg
166{
168 #if VST_VERSION < 0x03060d // 3.6.13
169 DEF_CLASS_IID (IPluginBase)
170 DEF_CLASS_IID (IPluginFactory)
171 DEF_CLASS_IID (IPluginFactory2)
172 DEF_CLASS_IID (IPluginFactory3)
173 #if VST_VERSION < 0x030608
174 DEF_CLASS_IID (IBStream)
175 #endif
176 #endif
177 DEF_CLASS_IID (IPlugView)
178 DEF_CLASS_IID (IPlugFrame)
179 DEF_CLASS_IID (IPlugViewContentScaleSupport)
180
181 #if JUCE_LINUX || JUCE_BSD
182 DEF_CLASS_IID (Linux::IRunLoop)
183 DEF_CLASS_IID (Linux::IEventHandler)
184 #endif
185}
186
191
192#endif // JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY
193
196
197#if JUCE_WINDOWS
198 #include <windows.h>
199#endif
200
201//==============================================================================
202#undef ASSERT
203#undef WARNING
204#undef PRINTSYSERROR
205#undef DEBUGSTR
206#undef DBPRT0
207#undef DBPRT1
208#undef DBPRT2
209#undef DBPRT3
210#undef DBPRT4
211#undef DBPRT5
212#undef min
213#undef max
214#undef MIN
215#undef MAX
216#undef calloc
217#undef free
218#undef malloc
219#undef realloc
220#undef NEW
221#undef NEWVEC
222#undef VERIFY
223#undef VERIFY_IS
224#undef VERIFY_NOT
225#undef META_CREATE_FUNC
226#undef CLASS_CREATE_FUNC
227#undef SINGLE_CREATE_FUNC
228#undef _META_CLASS
229#undef _META_CLASS_IFACE
230#undef _META_CLASS_SINGLE
231#undef META_CLASS
232#undef META_CLASS_IFACE
233#undef META_CLASS_SINGLE
234#undef SINGLETON
235#undef OBJ_METHODS
236#undef QUERY_INTERFACE
237#undef LICENCE_UID
238#undef BEGIN_FACTORY
239#undef DEF_CLASS
240#undef DEF_CLASS1
241#undef DEF_CLASS2
242#undef DEF_CLASS_W
243#undef END_FACTORY
244
245#ifdef atomic_thread_fence
246 #undef atomic_thread_fence
247#endif
Definition ipslviewembedding.h:36
#define DEF_CLASS_IID(ClassName)
Definition funknown.h:78
#define JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE(...)
Definition juce_CompilerWarnings.h:181
#define JUCE_END_IGNORE_WARNINGS_GCC_LIKE
Definition juce_CompilerWarnings.h:182
#define JUCE_BEGIN_IGNORE_WARNINGS_LEVEL_MSVC(level, warnings)
Definition juce_CompilerWarnings.h:197
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
Definition juce_VST3Headers.h:188
Definition baseiids.cpp:43