31Â
#ifndef _IAK_PLUGIN_H_
32Â
#define _IAK_PLUGIN_H_
49Â
#if defined AK_CPU_X86 || defined AK_CPU_X86_64
50Â
#include <xmmintrin.h>
78Â
class PluginRegistration;
87Â
class IAkGlobalPluginContext;
294Â
const char* in_pszError,
312Â
#if (defined AK_CPU_X86 || defined AK_CPU_X86_64) && !(defined AK_IOS)
469Â
void *& out_pPannerData
475Â
void* in_pPannerData,
486Â
void* in_pPannerData
564Â
const void * in_pParamsBlock,
582Â
const void *in_pParamsBlock,
593Â
const void * in_pValue,
786Â
virtual void SetUserData(
void * in_pUserData ) = 0;
884Â
AkReal32 & out_fMaxAttenuationDistance
1096Â
#define AK_FLOAT_TO_SAMPLETYPE( __in__ ) (__in__)
1098Â
#define AK_FLOAT_TO_SAMPLETYPE_NOCLIP( __in__ ) (__in__)
1100Â
#define AK_SAMPLETYPE_TO_FLOAT( __in__ ) (__in__)
1102Â
#define AK_DBTOLIN( __db__ ) (powf(10.f,(__db__) * 0.05f))
1147Â
const char* in_pszError,
1214Â
void * in_pCookie =
NULL
1239Â
AkTimeMs in_uValueChangeDuration = 0,
1241Â
bool in_bBypassInternalValueInterpolation =
false
1256Â
const void* in_pData,
1366Â
void * in_pCookie =
NULL,
1423Â
void * in_pRegisterCallbackCookie =
NULL
1471Â
#define AK_IMPLEMENT_PLUGIN_FACTORY(_pluginName_, _plugintype_, _companyid_, _pluginid_) \
1472Â
AK::IAkPlugin* Create##_pluginName_(AK::IAkPluginMemAlloc * in_pAllocator); \
1473Â
AK::IAkPluginParam * Create##_pluginName_##Params(AK::IAkPluginMemAlloc * in_pAllocator); \
1474Â
AK::PluginRegistration _pluginName_##Registration(_plugintype_, _companyid_, _pluginid_, Create##_pluginName_, Create##_pluginName_##Params);
1476Â
#define AK_STATIC_LINK_PLUGIN(_pluginName_) \
1477Â
extern AK::PluginRegistration _pluginName_##Registration; \
1478Â
void *_pluginName_##_linkonceonly = (void*)&_pluginName_##Registration;
1480Â
#define DEFINE_PLUGIN_REGISTER_HOOK AK_DLLEXPORT AK::PluginRegistration * g_pAKPluginList = NULL;
1482Â
#define AK_GET_SINK_TYPE_FROM_DEVICE_KEY(_key) ((AkUInt32)(_key & 0xffffffff))
1483Â
#define AK_GET_DEVICE_ID_FROM_DEVICE_KEY(_key) ((AkUInt32)(_key >> 32))
1485Â
#endif // _IAK_PLUGIN_H_
Start of frame rendering, after having processed game messages.
AkConnectionType
Nature of the connection binding an input to a bus.
AK::IAkPluginParam *(* AkCreateParamCallback)(AK::IAkPluginMemAlloc *in_pAllocator)
Registered plugin parameter node creation function prototype.
bool bIsInPlace
Buffer usage (in-place or not)
virtual AkSpeakerPanningType GetSpeakerPanningType()=0
PluginRegistration(AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreateFileSourceCallback in_pCreateFile, AkCreateBankSourceCallback in_pCreateBank)
const AkReal32 * ConstMatrixPtr
Constant volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel(...
virtual AKRESULT TimeSkip(AkUInt32 &io_uFrames)=0
virtual AKRESULT ComputeSphericalCoordinates(const AkEmitterListenerPair &in_pair, AkReal32 &out_fAzimuth, AkReal32 &out_fElevation) const =0
Compressor/decompressor plug-in (allows support for custom audio file types).
AkUInt32 uBuildVersion
Plugin build version, must match the AK_WWISESDK_VERSION_COMBINED macro from AkWwiseSDKVersion....
Software effect plug-in interface for sink (audio end point) plugins.
virtual AkUInt16 GetNumRefillsInVoice()=0
AkCurveInterpolation
Curve interpolation types.
#define AK_CALLBACK(__TYPE__, __NAME__)
AkInt16 AkPluginParamID
Source or effect plug-in parameter ID.
virtual ~IAkVoicePluginInfo()
Virtual destructor on interface to avoid warnings.
virtual AkUInt32 GetNumGameObjectPositions() const =0
virtual AKRESULT UnregisterGlobalCallback(AkGlobalCallbackFunc in_pCallback, AkUInt32 in_eLocation=AkGlobalCallbackLocation_BeginRender)=0
virtual void GetPluginMedia(AkUInt32 in_dataIndex, AkUInt8 *&out_rpData, AkUInt32 &out_rDataSize)=0
virtual AkReal32 GetCenterPerc()=0
The operation was successful.
virtual AkReal32 GetDownstreamGain()=0
virtual IAkVoicePluginInfo * GetVoiceInfo()=0
virtual AKRESULT SetRTPCValue(AkRtpcID in_rtpcID, AkRtpcValue in_value, AkGameObjectID in_gameObjectID=AK_INVALID_GAME_OBJECT, AkTimeMs in_uValueChangeDuration=0, AkCurveInterpolation in_eFadeCurve=AkCurveInterpolation_Linear, bool in_bBypassInternalValueInterpolation=false)=0
AkGlobalCallbackFunc m_pRegisterCallback
virtual AkPlayingID PostEventSync(AkUniqueID in_eventID, AkGameObjectID in_gameObjectID, AkUInt32 in_uFlags=0, AkCallbackFunc in_pfnCallback=NULL, void *in_pCookie=NULL, AkUInt32 in_cExternals=0, AkExternalSourceInfo *in_pExternalSources=NULL, AkPlayingID in_PlayingID=AK_INVALID_PLAYING_ID)=0
virtual AkUniqueID GetBusID()=0
virtual AKRESULT PostMonitorMessage(const char *in_pszError, AK::Monitor::ErrorLevel in_eErrorLevel)=0
virtual ~IAkEffectPluginContext()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT PostMonitorMessage(const char *in_pszError, AK::Monitor::ErrorLevel in_eErrorLevel)=0
virtual AkReal32 GetEnvelope() const
virtual AkUInt32 GetNumEmitterListenerPairs() const =0
virtual const AkInitSettings * GetInitSettings() const =0
virtual AKRESULT PostMIDIOnEventSync(AkUniqueID in_eventID, AkGameObjectID in_gameObjectID, AkMIDIPost *in_pPosts, AkUInt16 in_uNumPosts)=0
virtual AKRESULT RegisterPlugin(AkPluginType in_eType, AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreatePluginCallback in_pCreateFunc, AkCreateParamCallback in_pCreateParamFunc)=0
virtual IAkVoicePluginInfo * GetVoiceInfo()=0
virtual AKRESULT TimeSkip(AkUInt32 &)
AKRESULT
Standard function call result.
void(* AkGlobalCallbackFunc)(AK::IAkGlobalPluginContext *in_pContext, AkGlobalCallbackLocation in_eLocation, void *in_pCookie)
virtual void * GetUserData()=0
AkUInt32 AkRtpcID
Real time parameter control ID.
AkPluginType eType
Plug-in type.
virtual void * GetCookie() const =0
virtual AKRESULT Compute3DPositioning(AkReal32 in_fAngle, AkReal32 in_fElevation, AkReal32 in_fSpread, AkReal32 in_fFocus, AkChannelConfig in_inputConfig, AkChannelMask in_uInputChanSel, AkChannelConfig in_outputConfig, AkReal32 in_fCenterPerc, AK::SpeakerVolumes::MatrixPtr out_mxVolumes)=0
virtual IAkPluginParam * Clone(IAkPluginMemAlloc *in_pAllocator)=0
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkSinkPluginContext *in_pSinkPluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
virtual AKRESULT SetParam(AkPluginParamID in_paramID, const void *in_pValue, AkUInt32 in_uParamSize)=0
virtual AkMIDIEvent GetMidiEvent() const =0
virtual void ComputeAmbisonicsEncoding(AkReal32 in_fAzimuth, AkReal32 in_fElevation, AkChannelConfig in_cfgAmbisonics, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
virtual IAkVoicePluginInfo * GetVoiceInfo()=0
virtual ~IAkPluginParam()
Virtual destructor on interface to avoid warnings.
virtual IAkGlobalPluginContext * GlobalContext() const =0
AK_DLLEXPORT AK::PluginRegistration * g_pAKPluginList
virtual AKRESULT TermSphericalVBAP(AK::IAkPluginMemAlloc *in_pAllocator, void *in_pPannerData)=0
virtual AKRESULT RegisterCodec(AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreateFileSourceCallback in_pFileCreateFunc, AkCreateBankSourceCallback in_pBankCreateFunc)=0
virtual bool IsSendModeEffect() const =0
Global plugin context used for plugin registration/initialization. Games query this interface from th...
virtual void GetPannerPosition(AkVector &out_position)=0
virtual Ak3DSpatializationMode Get3DSpatializationMode()=0
AkUInt32 AkChannelMask
Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig....
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkSourcePluginContext *in_pSourcePluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, const void *in_pParamsBlock, AkUInt32 in_uBlockSize)=0
virtual AKRESULT Reset()=0
virtual AKRESULT GetSpeakerAngles(AkReal32 *io_pfSpeakerAngles, AkUInt32 &io_uNumAngles, AkReal32 &out_fHeightAngle)=0
virtual ~IAkMixerPluginContext()
Virtual destructor on interface to avoid warnings.
virtual ~IAkPluginContextBase()
Virtual destructor on interface to avoid warnings.
Configured audio settings.
virtual void ResetStarved()=0
Reset the "starvation" flag after IsStarved() returned true.
virtual AKRESULT StopLooping()
virtual ~IAkGlobalPluginContext()
Virtual destructor on interface to avoid warnings.
AkUInt32 AkAcousticTextureID
Acoustic Texture ID.
virtual AKRESULT GetEmitterListenerPair(AkUInt32 in_uIndex, AkEmitterListenerPair &out_emitterListenerPair) const =0
virtual AKRESULT RelocateMedia(AkUInt8 *, AkUInt8 *)
AkReal32 AkRtpcValue
Real time parameter control value.
Volume ramp specified by end points "previous" and "next".
AkMeteringFlags
Metering flags. Used for specifying bus metering, through AK::SoundEngine::RegisterBusVolumeCallback(...
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkEffectPluginContext *in_pEffectPluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
AkUInt32 AkUniqueID
Unique 32-bit ID.
virtual AKRESULT RegisterGlobalCallback(AkPluginType in_eType, AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkGlobalCallbackFunc in_pCallback, AkUInt32 in_eLocation=AkGlobalCallbackLocation_BeginRender, void *in_pCookie=NULL)=0
virtual AKRESULT Term(IAkPluginMemAlloc *in_pAllocator)=0
virtual AKRESULT StopMIDIOnEventSync(AkUniqueID in_eventID=AK_INVALID_UNIQUE_ID, AkGameObjectID in_gameObjectID=AK_INVALID_GAME_OBJECT)=0
virtual AkUInt32 GetBusType()=0
IAkSoftwareCodec *(* AkCreateFileSourceCallback)(void *in_pCtx)
Registered file source creation function prototype.
AkCreateFileSourceCallback m_pFileCreateFunc
virtual ~IAkSourcePlugin()
Virtual destructor on interface to avoid warnings.
virtual ~IAkPlugin()
Virtual destructor on interface to avoid warnings.
Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
virtual AkReal32 GetDuration() const =0
AkInt8 AkPriority
Priority.
virtual AkUInt32 GetIDFromString(const char *in_pszString) const =0
virtual AKRESULT GetParentChannelConfig(AkChannelConfig &out_channelConfig) const =0
virtual AKRESULT ComputeWeightedAmbisonicsDecodingFromSampledSphere(const AkVector in_samples[], AkUInt32 in_uNumSamples, AkChannelConfig in_cfgAmbisonics, AK::SpeakerVolumes::MatrixPtr out_mxVolume)=0
virtual void Execute(AkAudioBuffer *io_pBuffer)=0
AkUInt64 AkGameObjectID
Game object ID.
virtual AKRESULT PostMonitorData(void *in_pData, AkUInt32 in_uDataSize)=0
AkReal32 * MatrixPtr
Volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel().
virtual ~IAkSinkPlugin()
Virtual destructor on interface to avoid warnings.
Interface to retrieve information about an input of a mixer.
virtual AKRESULT SignalAudioThread()=0
const AkReal32 * ConstVectorPtr
Constant volume vector. Access each element with the standard bracket [] operator.
Wwise sound engine source plug-in interface (see How to Create Wwise Sound Engine Source Plug-ins).
Interface to retrieve contextual information for a mixer.
virtual AkUInt32 GetNum3DPositions()=0
This feature is not implemented.
virtual AkUniqueID GetNodeID() const =0
virtual AkGameObjectID GetGameObjectID() const =0
Get the ID of the game object.
virtual IAkGameObjectPluginInfo * GetGameObjectInfo()=0
virtual SoundEngine::MultiPositionType GetGameObjectMultiPositionType() const =0
virtual AkPlayingID GetPlayingID() const =0
Retrieve the Playing ID of the event corresponding to this voice (if applicable).
virtual AkConnectionType GetConnectionType()=0
IAkSoftwareCodec *(* AkCreateBankSourceCallback)(void *in_pCtx)
Registered bank source node creation function prototype.
virtual ~IAkGameObjectPluginInfo()
Virtual destructor on interface to avoid warnings.
virtual bool GetListeners(AkGameObjectID *out_aListenerIDs, AkUInt32 &io_uSize) const =0
virtual AkPriority ComputePriorityWithDistance(AkReal32 in_fDistance) const =0
virtual ~IAkEffectPlugin()
Virtual destructor on interface to avoid warnings.
virtual const AkAcousticTexture * GetAcousticTexture(AkAcousticTextureID in_AcousticTextureID)=0
virtual AkUniqueID GetAudioNodeID()=0
Unknown/invalid plug-in type.
Software effect plug-in interface (see How to Create Wwise Sound Engine Effect Plug-ins).
virtual void GetSpatializedVolumes(AK::SpeakerVolumes::MatrixPtr out_mxPrevVolumes, AK::SpeakerVolumes::MatrixPtr out_mxNextVolumes)=0
Get next volumes as computed by the sound engine for this input.
virtual AKRESULT TimeSkip(AkUInt32 in_uFrames)=0
AkCreateParamCallback m_pCreateParamFunc
virtual void Execute(AkAudioBuffer *io_pBuffer)=0
static const AkPlayingID AK_INVALID_PLAYING_ID
Invalid playing ID.
virtual bool IsPrimary()=0
virtual AkPriority GetPriority() const =0
Ak3DPositionType
3D position type: defines what acts as the emitter position for computing spatialization against the ...
AkUInt32 AkPlayingID
Playing ID.
virtual AKRESULT GetListenerData(AkGameObjectID in_uListener, AkListener &out_listener) const =0
virtual bool IsRenderingOffline() const =0
AkUInt32 AkPluginID
Source or effect plug-in ID.
AkReal32 * VectorPtr
Volume vector. Access each element with the standard bracket [] operator.
virtual IAkStreamMgr * GetStreamMgr() const =0
Retrieve the streaming manager access interface.
virtual AK::IAkPluginMemAlloc * GetAllocator()=0
Get the default allocator for plugins. This is useful for performing global initialization tasks shar...
virtual Ak3DPositionType Get3DPositionType()=0
virtual AKRESULT Get3DPosition(AkUInt32 in_uIndex, AkEmitterListenerPair &out_soundPosition)=0
bool bCanChangeRate
True for effects whose sample throughput is different between input and output. Effects that can chan...
static const AkGameObjectID AK_INVALID_GAME_OBJECT
Invalid game object (may also mean all game objects)
virtual AKRESULT ComputeSpeakerVolumesPanner(const AkVector &in_position, AkReal32 in_fCenterPct, AkChannelConfig in_inputConfig, AkChannelConfig in_outputConfig, AK::SpeakerVolumes::MatrixPtr out_mxVolumes)=0
Compute a volume matrix given the position of the panner (Wwise 2D panner).
virtual void MixNinNChannels(AkAudioBuffer *in_pInputBuffer, AkAudioBuffer *in_pMixBuffer, AkReal32 in_fPrevGain, AkReal32 in_fNextGain, AK::SpeakerVolumes::ConstMatrixPtr in_mxPrevVolumes, AK::SpeakerVolumes::ConstMatrixPtr in_mxNextVolumes)=0
N to N channels mix.
virtual void SetUserData(void *in_pUserData)=0
virtual bool GetMaxAttenuationDistance(AkReal32 &out_fMaxAttenuationDistance)=0
virtual void OnFrameEnd()=0
virtual const AkPlatformInitSettings * GetPlatformInitSettings() const =0
virtual AKRESULT ComputeSpeakerVolumesDirect(AkChannelConfig in_inputConfig, AkChannelConfig in_outputConfig, AkReal32 in_fCenterPerc, AK::SpeakerVolumes::MatrixPtr out_mxVolumes)=0
Compute a direct speaker assignment volume matrix with proper downmixing rules between two channel co...
virtual IAkPluginParam * GetInputParam()=0
virtual void Mix1inNChannels(AkReal32 *AK_RESTRICT in_pInChannel, AkAudioBuffer *in_pMixBuffer, AkReal32 in_fPrevGain, AkReal32 in_fNextGain, AK::SpeakerVolumes::ConstVectorPtr in_vPrevVolumes, AK::SpeakerVolumes::ConstVectorPtr in_vNextVolumes)=0
1 to N channels mix
virtual AKRESULT IsDataNeeded(AkUInt32 &out_uNumFramesNeeded)=0
virtual AKRESULT ComputePlanarVBAPGains(AkReal32 in_fAngle, AkChannelConfig in_outputConfig, AkReal32 in_fCenterPerc, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
PluginRegistration * pNext
virtual AKRESULT ComputeSphericalVBAPGains(void *in_pPannerData, AkReal32 in_fAzimuth, AkReal32 in_fElevation, AkUInt32 in_uNumChannels, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
virtual bool CanPostMonitorData()=0
void * m_pRegisterCallbackCookie
AkCreatePluginCallback m_pCreateFunc
virtual void Execute(AkAudioBuffer *in_pBuffer, AkUInt32 in_uInOffset, AkAudioBuffer *out_pBuffer)=0
static const AkUniqueID AK_INVALID_UNIQUE_ID
Invalid unique 32-bit ID.
AK::IAkPlugin *(* AkCreatePluginCallback)(AK::IAkPluginMemAlloc *in_pAllocator)
Registered plugin creation function prototype.
virtual AKRESULT SetParamsBlock(const void *in_pParamsBlock, AkUInt32 in_uBlockSize)=0
virtual AKRESULT SendPluginCustomGameData(AkUniqueID in_busID, AkGameObjectID in_busObjectID, AkPluginType in_eType, AkUInt32 in_uCompanyID, AkUInt32 in_uPluginID, const void *in_pData, AkUInt32 in_uSizeInBytes)=0
virtual AkReal32 GetGameObjectScaling() const =0
virtual AkUInt16 GetNumLoops() const =0
static const AkPluginParamID ALL_PLUGIN_DATA_ID
void(* AkCallbackFunc)(AkCallbackType in_eType, AkCallbackInfo *in_pCallbackInfo)
AkPluginInfo()
Constructor for default values.
virtual AkUniqueID GetNodeID() const =0
virtual void GetPluginCustomGameData(void *&out_rpData, AkUInt32 &out_rDataSize)=0
virtual AKRESULT GetPluginInfo(AkPluginInfo &out_rPluginInfo)=0
Game object information available to plugins.
virtual AKRESULT Seek(AkUInt32)
virtual AkUInt32 GetSampleRate() const =0
Interface to retrieve contextual information available to all types of plugins.
AkSpeakerPanningType
Speaker panning type: type of panning logic when object is not 3D spatialized (i.e....
virtual void MixChannel(AkReal32 *AK_RESTRICT in_pInBuffer, AkReal32 *AK_RESTRICT in_pOutBuffer, AkReal32 in_fPrevGain, AkReal32 in_fNextGain, AkUInt16 in_uNumFrames)=0
Single channel mix.
AkCreateBankSourceCallback m_pBankCreateFunc
Ak3DSpatializationMode
3D spatialization mode.
virtual AkReal32 GetFocus(AkUInt32 in_uIndex)=0
virtual void Consume(AkAudioBuffer *in_pInputBuffer, AkRamp in_gain)=0
virtual AKRESULT GetGameObjectPosition(AkUInt32 in_uIndex, AkSoundPosition &out_position) const =0
virtual void EnableMetering(AkMeteringFlags in_eFlags)=0
virtual ~IAkMixerInputContext()
Virtual destructor on interface to avoid warnings.
virtual AkReal32 GetSpread(AkUInt32 in_uIndex)=0
virtual ~IAkSourcePluginContext()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT GetAudioSettings(AkAudioSettings &out_audioSettings) const =0
virtual AKRESULT GetOutputID(AkUInt32 &out_uOutputID, AkPluginID &out_uDevicePlugin) const =0
virtual ~IAkSinkPluginContext()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT Term(IAkPluginMemAlloc *in_pAllocator)=0
virtual bool SupportMediaRelocation() const
Software effect plug-in interface for in-place processing (see How to Create Wwise Sound Engine Effec...
virtual bool HasListenerRelativeRouting()=0
AkInt32 AkTimeMs
Time in ms.
virtual bool IsStarved()=0
bool bReserved
Legacy bIsAsynchronous plug-in flag, now unused. Preserved for plug-in backward compatibility....
virtual AKRESULT InitSphericalVBAP(AK::IAkPluginMemAlloc *in_pAllocator, const AkSphericalCoord *in_SphericalPositions, const AkUInt32 in_NbPoints, void *&out_pPannerData)=0
Software effect plug-in interface for out-of-place processing (see How to Create Wwise Sound Engine E...
virtual AkUInt16 GetMaxBufferLength() const =0
PluginRegistration(AkPluginType in_eType, AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreatePluginCallback in_pCreateFunc, AkCreateParamCallback in_pCreateParamFunc, AkGlobalCallbackFunc in_pRegisterCallback=NULL, void *in_pRegisterCallbackCookie=NULL)