AK.Wwise::Plugin::PluginInfoGenerator< PluginT > Struct Template Reference

C++ PluginInfo Generator. More...

#include <PluginInfoGenerator.h>


struct  GenerateConstructor
 Generates the constructor for our particular type. More...
struct  GenerateConstructorArray
 Recursively generates the constructors and interface pointer updater for all the Interfaces. More...
struct  InterfaceInfo
 Compile-time dictionary about a particular interface type. More...

Public Types

enum  : size_t { k_interfaceCount = CountInterfaces() }

Public Member Functions

 PluginInfoGenerator (PluginRegistration *in_pluginRegistration, uint32_t in_pluginFlags=0)
 PluginInfoGenerator (const AkUInt32 *in_companyID, const AkUInt32 *in_pluginID, const AkPluginType *in_pluginType, uint32_t in_pluginFlags=0)
 ~PluginInfoGenerator ()=default

Static Public Member Functions

template<InterfaceType in_interface = (InterfaceType)(AK_WWISE_PLUGIN_INTERFACE_TYPE_NUM - 1)>
static constexpr size_t CountInterfaces ()
 Count the number of interfaces we are currently using. More...
template<InterfaceType in_interfaceType>
static constexpr InterfaceArrayItem GenerateInterface ()
 Generates the InterfaceArrayItem for our particular type. More...
template<InterfaceType in_interfaceType>
static constexpr void GenerateInterfaceArray (InterfaceArrayItem out_interfaces[k_interfaceCount], int in_count, InterfaceArrayItem)
 Recursively generates an interface array of all the Interfaces pointers. More...
static constexpr InterfaceArrayItemGenerateInterfaceArray (InterfaceArrayItem out_interfaces[k_interfaceCount])
static InterfaceArrayItemInstantiate (PluginInfo *in_pluginInfo)
 Plug-in instance constructor, as shared with the host. More...
static void Disembody (InterfaceArrayItem *in_instance)
 Plug-in instance destructor, as shared to the host. More...

Public Attributes

InterfaceArrayItem m_interfaceArray [k_interfaceCount]
 Array of all used interfaces for the plug-in. More...
PluginInfo m_pluginInfo
 The unique m_pluginInfo used in the ak_wwise_plugin_container for that particular plug-in. More...

Detailed Description

template<typename PluginT>
struct AK.Wwise::Plugin::PluginInfoGenerator< PluginT >

C++ PluginInfo Generator.

Retrieves the list of plug-in interfaces required by a plug-in through derivation, and automatically creates a related ak_wwise_plugin_info structure.

Compared to a manually generated C version, the generated structure is done through a function that fills all the required data. Since it's a static global function called only once, and contains only value stores, the cost is, so far, quite minimal.

Template Parameters
PluginTThe plug-in class that needs to be instantiated in order to use that plug-in.

Definition at line 327 of file PluginInfoGenerator.h.

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise