Table of Contents

Wwise SDK 2019.2.9

◆ AddOutput()

AKSOUNDENGINE_API AKRESULT AK::SoundEngine::AddOutput ( const AkOutputSettings in_Settings,
AkOutputDeviceID out_pDeviceID = NULL,
const AkGameObjectID in_pListenerIDs = NULL,
AkUInt32  in_uNumListeners = 0 
)

Adds an output to the sound engine. Use this to add controller-attached headphones, controller speakers, DVR output, etc.
The in_Settings parameter contains an Audio Device shareset to specify the output plugin to use and a device ID to specify the instance, if necessary (e.g. which game controller).

Like most functions of AK::SoundEngine, AddOutput is asynchronous. A successful return code merely indicates that the request is properly queued. Error codes returned by this function indicate various invalid parameters. To know if this function succeeds or not, and the failure code, register an AkDeviceStatusCallbackFunc callback with RegisterAudioDeviceStatusCallback.

See also
AkOutputSettings for more details.
Integrating Secondary Outputs
Default Wwise Audio Devices
AK::SoundEngine::RegisterAudioDeviceStatusCallback
AK::AkDeviceStatusCallbackFunc
Returns
The following codes are returned directly from the function, as opposed to the AkDeviceStatusCallback
  • AK_NotImplemented: Feature not supported, some platforms don't have other outputs.
  • AK_InvalidParameter: Out of range parameters or unsupported parameter combinations (see parameter list below).
  • AK_IDNotFound: The audioDeviceShareset on in_settings doesn't exist. Possibly, the Init bank isn't loaded yet or was not updated with latest changes.
  • AK_DeviceNotReady: The idDevice on in_settings doesn't match with a valid hardware device. Either the device doesn't exist or is disabled. Disconnected devices (headphones) are not considered "not ready" therefore won't cause this error.
  • AK_Success: Parameters are valid.

The following codes are returned from the callback.

  • AK_InsufficientMemory : Not enough memory to complete the operation.
  • AK_IDNotFound: The audioDeviceShareset on in_settings doesn't exist. Possibly, the Init bank isn't loaded yet or was not updated with latest changes.
  • AK_PluginNotRegistered: The audioDeviceShareset exists but the plug-in it refers to is not installed or statically linked with the game.
  • AK_NotCompatible: The hardware does not support this type of output. Wwise will try to use the System output instead, and a separate callback will fire when that completes.
  • AK_DeviceNotCompatible: The hardware does not support this type of output. Wwise will NOT fallback to any other type of output.
  • AK_Fail: Generic code for any non-permanent conditions (e.g. disconnection) that prevent the use of the output. Wwise has created the output and sounds will be routed to it, but this output is currently silent until the temporary condition resolves.
  • AK_NoDistinctListener: Outputs of the same type (same ShareSet, like controller speakers) must have distinct Listeners to make a proper routing. This doesn't happen if there is only one output of that type.
Parameters
in_Settings Creation parameters for this output. AkOutputSettings
out_pDeviceID (Optional) Output ID to use with all other Output management functions. Leave to NULL if not required. AK::SoundEngine::GetOutputID
in_pListenerIDs Specific listener(s) to attach to this device. If specified, only the sounds routed to game objects linked to those listeners will play in this device. It is necessary to have separate listeners if multiple devices of the same type can coexist (e.g. controller speakers) If not specified, sound routing simply obey the associations between Master Busses and Audio Devices setup in the Wwise Project.
in_uNumListeners The number of elements in the in_pListenerIDs array.