#ifndef ARAVST3_h
#define ARAVST3_h
#include "ARAInterface.h"
#if !defined (ARA_DISABLE_VST3_WARNINGS_BEGIN) || !defined (ARA_DISABLE_VST3_WARNINGS_END)
#if defined (_MSC_VER)
#define ARA_DISABLE_VST3_WARNINGS_BEGIN \
__pragma (warning(push)) \
__pragma (warning(disable : 4365))
#define ARA_DISABLE_VST3_WARNINGS_END \
__pragma (warning(pop))
#elif defined (__GNUC__)
#define ARA_DISABLE_VST3_PRAGMA_PACK_WARNINGS
#if defined (__has_warning)
#if __has_warning ("-Wpragma-pack")
#undef ARA_DISABLE_VST3_PRAGMA_PACK_WARNINGS
#define ARA_DISABLE_VST3_PRAGMA_PACK_WARNINGS _Pragma ("GCC diagnostic ignored \"-Wpragma-pack\"")
#endif
#endif
#if defined (__clang__)
#define ARA_DISABLE_VST3_GCC_VARIANT_WARNINGS \
_Pragma ("GCC diagnostic ignored \"-Wshadow-field-in-constructor\"") \
_Pragma ("GCC diagnostic ignored \"-Wzero-as-null-pointer-constant\"") \
_Pragma ("GCC diagnostic ignored \"-Wreserved-id-macro\"")
#else
#define ARA_DISABLE_VST3_GCC_VARIANT_WARNINGS \
_Pragma ("GCC diagnostic ignored \"-Wshadow\"")
#endif
#define ARA_DISABLE_VST3_WARNINGS_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") \
_Pragma ("GCC diagnostic ignored \"-Wsign-conversion\"") \
_Pragma ("GCC diagnostic ignored \"-Wold-style-cast\"") \
_Pragma ("GCC diagnostic ignored \"-Wextra-semi\"") \
_Pragma ("GCC diagnostic ignored \"-Wundef\"") \
ARA_DISABLE_VST3_PRAGMA_PACK_WARNINGS \
ARA_DISABLE_VST3_GCC_VARIANT_WARNINGS
#define ARA_DISABLE_VST3_WARNINGS_END \
_Pragma ("GCC diagnostic pop")
#else
#define ARA_DISABLE_VST3_WARNINGS_BEGIN
#define ARA_DISABLE_VST3_WARNINGS_END
#endif
#endif
ARA_DISABLE_VST3_WARNINGS_BEGIN
#include "pluginterfaces/base/funknown.h"
#include "pluginterfaces/base/falignpush.h"
namespace ARA
{
class IMainFactory: public Steinberg::FUnknown
{
public:
virtual const ARAFactory* PLUGIN_API getFactory () = 0;
static const Steinberg::FUID iid;
};
#if !defined (kARAMainFactoryClass)
#define kARAMainFactoryClass "ARA Main Factory Class"
#endif
DECLARE_CLASS_IID (IMainFactory, 0xDB2A1669, 0xFAFD42A5, 0xA82F864F, 0x7B6872EA)
class IPlugInEntryPoint: public Steinberg::FUnknown
{
public:
virtual const ARAFactory* PLUGIN_API getFactory () = 0;
ARA_DEPRECATED (2_0_Draft) virtual const ARAPlugInExtensionInstance* PLUGIN_API bindToDocumentController (ARADocumentControllerRef documentControllerRef) = 0;
static const Steinberg::FUID iid;
};
DECLARE_CLASS_IID (IPlugInEntryPoint, 0x12814E54, 0xA1CE4076, 0x82B96813, 0x16950BD6)
class ARA_ADDENDUM (2_0_Draft) IPlugInEntryPoint2: public Steinberg::FUnknown
{
public:
virtual const ARAPlugInExtensionInstance* PLUGIN_API bindToDocumentControllerWithRoles (ARADocumentControllerRef documentControllerRef,
ARAPlugInInstanceRoleFlags knownRoles, ARAPlugInInstanceRoleFlags assignedRoles) = 0;
static const Steinberg::FUID iid;
};
DECLARE_CLASS_IID (IPlugInEntryPoint2, 0xCD9A5913, 0xC9EB46D7, 0x96CA53AD, 0xD1DB89F5)
}
#include "pluginterfaces/base/falignpop.h"
ARA_DISABLE_VST3_WARNINGS_END
#endif