#ifndef ARACLAP_h
#define ARACLAP_h
#include "ARAInterface.h"
#include "clap/clap.h"
#if defined(__cplusplus)
extern "C"
{
#endif
static CLAP_CONSTEXPR const char CLAP_EXT_ARA_FACTORY[] = "org.ara-audio.ara.factory/2";
ARA_DRAFT static CLAP_CONSTEXPR const char CLAP_EXT_ARA_FACTORY_COMPAT[] = "org.ara-audio.ara.factory.draft/2";
static CLAP_CONSTEXPR const char CLAP_EXT_ARA_PLUGINEXTENSION[] = "org.ara-audio.ara.pluginextension/2";
ARA_DRAFT static CLAP_CONSTEXPR const char CLAP_EXT_ARA_PLUGINEXTENSION_COMPAT[] = "org.ara-audio.ara.pluginextension.draft/2";
#define CLAP_PLUGIN_FEATURE_ARA_SUPPORTED "ara:supported"
#define CLAP_PLUGIN_FEATURE_ARA_REQUIRED "ara:required"
typedef struct clap_ara_factory
{
uint32_t(CLAP_ABI *get_factory_count)(const struct clap_ara_factory *factory);
const ARA_NAMESPACE ARAFactory *(CLAP_ABI *get_ara_factory)(const struct clap_ara_factory *factory, uint32_t index);
const char *(CLAP_ABI *get_plugin_id)(const struct clap_ara_factory *factory, uint32_t index);
} clap_ara_factory_t;
typedef struct clap_ara_plugin_extension
{
const ARA_NAMESPACE ARAFactory *(CLAP_ABI *get_factory)(const clap_plugin_t *plugin);
const ARA_NAMESPACE ARAPlugInExtensionInstance *(CLAP_ABI *bind_to_document_controller)
(const clap_plugin_t *plugin,
ARA_NAMESPACE ARADocumentControllerRef documentControllerRef,
ARA_NAMESPACE ARAPlugInInstanceRoleFlags knownRoles,
ARA_NAMESPACE ARAPlugInInstanceRoleFlags assignedRoles);
} clap_ara_plugin_extension_t;
#if defined(__cplusplus)
} #endif
#endif