26#if (JUCE_PLUGINHOST_ARA && (JUCE_PLUGINHOST_VST3 || JUCE_PLUGINHOST_AU) && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX))
31static void dummyARAInterfaceAssert (ARA::ARAAssertCategory,
const void*,
const char*)
34static ARA::ARAInterfaceConfiguration createInterfaceConfig (
const ARA::ARAFactory* araFactory)
36 static auto* assertFunction = &dummyARAInterfaceAssert;
38 #if ARA_VALIDATE_API_CALLS
39 assertFunction = &::ARA::ARAInterfaceAssert;
41 std::call_once (flag, [] { ARA::ARASetExternalAssertReference (&assertFunction); });
44 return makeARASizedStruct (&ARA::ARAInterfaceConfiguration::assertFunctionAddress,
45 jmin (araFactory->highestSupportedApiGeneration, (ARA::ARAAPIGeneration) ARA::kARAAPIGeneration_2_X_Draft),
69 auto& cachePtr = cache[ptr];
71 if (
const auto obj = cachePtr.lock())
77 const auto interfaceConfig = createInterfaceConfig (ptr);
78 ptr->initializeARAWithConfiguration (&interfaceConfig);
81 factory->uninitializeARA();
#define JUCE_ASSERT_MESSAGE_THREAD
This macro is used to catch unsafe use of functions which expect to only be called on the message thr...
constexpr Type jmin(Type a, Type b)
Returns the smaller of two values.