26#ifdef JUCE_AUDIO_PROCESSORS_H_INCLUDED
32 #error "Incorrect use of JUCE cpp file"
35#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1
36#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1
37#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1
38#define JUCE_GUI_BASICS_INCLUDE_SCOPED_THREAD_DPI_AWARENESS_SETTER 1
39#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1
45#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD)
46 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE (
"-Wvariadic-macros")
48 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
49 #include <X11/Xutil.h>
50 #include <sys/utsname.h>
54#if ! JUCE_WINDOWS && ! JUCE_MAC && ! JUCE_LINUX
55 #undef JUCE_PLUGINHOST_VST3
56 #define JUCE_PLUGINHOST_VST3 0
59#if JUCE_PLUGINHOST_AU && (JUCE_MAC || JUCE_IOS)
60 #include <AudioUnit/AudioUnit.h>
66#if JUCE_PLUGINHOST_VST || (JUCE_PLUGINHOST_LADSPA && (JUCE_LINUX || JUCE_BSD))
69 const PluginDescription& desc)
72 if (p->isDuplicateOf (desc))
80template <
typename Callback>
81void callOnMessageThread (Callback&& callback)
129 if (
auto* view =
static_cast<NSView*
> (getView()))
132 cancelPendingUpdate();
143 PluginDescription
pd;
144 instance.fillInPluginDescription (
pd);
145 return pd.manufacturerName ==
"FabFilter" ? WantsNudge::yes : WantsNudge::no;
148 void handleAsyncUpdate()
override
150 if (
auto* peer = getTopLevelComponent()->getPeer())
152 auto* view =
static_cast<NSView*
> (getView());
153 const auto newArea = peer->getAreaCoveredBy (*
this);
162 : ObjCClass (
"JuceInnerNSView_")
164 addIvar<NSViewComponentWithParent*> (
"owner");
166 addMethod (
@selector (isOpaque), [] (
id,
SEL) {
return YES; });
168 addMethod (
@selector (didAddSubview:), [] (id self, SEL, NSView*)
170 if (
auto* owner = getIvar<NSViewComponentWithParent*> (self,
"owner"))
171 if (owner->wantsNudge == WantsNudge::yes)
172 owner->triggerAsyncUpdate();
175 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE (
"-Wundeclared-selector")
176 addMethod (@selector (clipsToBounds), [] (
id,
SEL) {
return YES; });
177 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
208#include "format_types/juce_AudioUnitPluginFormat.mm"
230 #if JUCE_PLUGINHOST_VST3
231 #include "format_types/juce_VST3PluginFormat_test.cpp"
234 #if JUCE_PLUGINHOST_LV2 && (! (JUCE_ANDROID || JUCE_IOS))
235 #include "format_types/juce_LV2PluginFormat_test.cpp"
static bool callAsync(std::function< void()> functionToCall)
Asynchronously invokes a function or C++11 lambda on the message thread.
static MessageManager * getInstance()
Returns the global instance of the MessageManager.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...