Table of Contents

Integration Details - Plug-Ins

Introduction

Plug-ins are used in Wwise to offer various types of sources and effects to the Wwise user and game developer. Source plug-ins are used to generate sound, while effect plug-ins are used to modify sound.

Source and effect plug-ins are not to be confused with codec plug-ins. Please refer to Integrating Codec Plug-Ins for information on codec plug-ins.

You can also create your own plug-ins, or use plug-ins developed by someone else. For more information about custom plug-ins, refer to Creating New Plug-ins.

Integrating Plug-Ins in Your Game

If the sound designer decided to use some plug-ins in the Wwise project for your game, these plug-ins need to be integrated into your code for them to be available to the sound engine at runtime.

Linking with Plug-In Libraries

Each plug-in is provided as an individual library (.lib file) that must be linked into your game.

For a complete list of libraries for each plug-in, refer to Source and Effect Plug-ins.

Registering Plug-Ins

A plug-in must be registered by your game code before it can be used. Registering a plug-in is done with a call to AK::SoundEngine::RegisterPlugin(), which is defined as follows:

Register a plug-in with the sound engine and set the callback functions to create the plug-in and its parameter node.
AKRESULT RegisterPlugin( 
    AkPluginType in_eType,                      // Plugin type (e.g. source, effect, etc.)
    AkUInt32 in_ulCompanyID,                    // Company identifier (as declared in the plug-in description XML file)
    AkUInt32 in_ulPluginID,                     // Plug-in identifier (as declared in the plug-in description XML file)
    AkCreatePluginCallback in_pCreateFunc,      // Pointer to the plug-in's creation function
    AkCreateParamCallback in_pCreateParamFunc   // Pointer to the plug-in's parameter node creation function
) = 0;

The first parameter is either AkPluginTypeSource (for a source plug-in) or AkPluginTypeEffect (for an effect plug-in).

The second and third parameters are used to uniquely identify the plug-in you're registering. The Company ID and Plug-in ID are defined by the plug-in developer. For example, plug-ins that are part of the standard Wwise installation define their IDs in individual header files, for example "AK/Plugin/AkRoomVerbFXFactory.h" for the Wwise RoomVerb effect.

The fourth parameter is a pointer to a function that can be used to create an instance of the plug-in, while the fifth parameter points to a function that creates parameters for a plug-in. In the case of standard Wwise plug-ins, these functions are declared in the same header file as the Company and Plug-in IDs, and implemented in the plug-in's library.

The simplest way to register plug-ins is to look at their factory files located under WWISESDK/include/AK/Plugin. To register all available plug-ins, the routines in AllPluginsRegistrationHelpers.h can be helpful. When finalizing your game before shipping, you can register only the plug-ins that are actually used to reduce the size of the your game executable.

For an example of integrating plug-ins, refer to Quick Start Sample Integration - Plug-Ins.

For details about creating your own plug-ins, including important information regarding Company and Plug-in ID, refer to Creating New Plug-ins.