Table of Contents

Wwise SDK 2021.1.1
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 ()

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 InterfaceArrayItem GenerateInterfaceArray (InterfaceArrayItem out_interfaces[k_interfaceCount])
static InterfaceArrayItem Instantiate (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]
  Current array of interfaces, used in the bridge between host and plug-in. More...
PluginInfo  m_pluginInfo
  The unique m_pluginInfo used in the ak_wwise_plugin_container for that particular plug-in. More...

Static Public Attributes

static PluginInfoGenerator g_instance = nullptr
  The unique generator instance for this 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
PluginT The plug-in class that needs to be instantiated in order to use that plug-in.

Definition at line 328 of file PluginInfoGenerator.h.