3#if !defined(PULP_AAX_HEADLESS)
9#include <AAX_Callbacks.h>
24 std::string_view manufacturer_code,
25 std::string_view product_code,
26 std::string_view native_code)
31 .manufacturer_id =
fourcc(manufacturer_code),
32 .product_id =
fourcc(product_code),
33 .native_id_base =
fourcc(native_code),
46 AAXCreateObjectProc create_proc,
47 AAXCreateObjectProc create_gui_proc =
nullptr);
51#if defined(PULP_AAX_HEADLESS)
52#define PULP_AAX_GUI_THUNK
54#define PULP_AAX_GUI_THUNK \
55 [[maybe_unused]] static IACFUnknown* AAX_CALLBACK _pulp_aax_create_effect_gui() { \
56 return ::pulp::format::aax::create_effect_gui(); \
60#if !defined(PULP_MANUFACTURER_CODE)
61#error "PULP_MANUFACTURER_CODE must be defined for AAX targets"
64#if !defined(PULP_AAX_PRODUCT_CODE)
65#error "PULP_AAX_PRODUCT_CODE must be defined for AAX targets"
68#if !defined(PULP_AAX_NATIVE_CODE)
69#error "PULP_AAX_NATIVE_CODE must be defined for AAX targets"
75#define PULP_AAX_PLUGIN_IMPL_(factory_fn, gui_proc_expr) \
77 static const ::pulp::format::aax::EntryConfig& _pulp_aax_entry_config() { \
78 static const auto config = ::pulp::format::aax::make_entry_config( \
79 factory_fn, PULP_MANUFACTURER_CODE, PULP_AAX_PRODUCT_CODE, PULP_AAX_NATIVE_CODE); \
82 static IACFUnknown* AAX_CALLBACK _pulp_aax_create_effect_parameters() { \
83 return ::pulp::format::aax::create_effect_parameters(_pulp_aax_entry_config()); \
87 AAX_Result GetEffectDescriptions(AAX_ICollection* outCollection) { \
88 return ::pulp::format::aax::get_effect_descriptions( \
89 outCollection, _pulp_aax_entry_config(), &_pulp_aax_create_effect_parameters, \
101#define PULP_AAX_PLUGIN(factory_fn) \
102 PULP_AAX_PLUGIN_IMPL_(factory_fn, nullptr)
110#define PULP_AAX_PLUGIN_WITH_GUI(factory_fn) \
111 PULP_AAX_PLUGIN_IMPL_(factory_fn, &_pulp_aax_create_effect_gui)
Definition aax_entry.hpp:18
ProcessorFactory factory
Definition aax_entry.hpp:19
PluginCodes codes
Definition aax_entry.hpp:20