31 #ifndef _IAK_PLUGIN_H_
32 #define _IAK_PLUGIN_H_
34 #include <AK/SoundEngine/Common/AkCommonDefs.h>
35 #include <AK/SoundEngine/Common/IAkRTPCSubscriber.h>
36 #include <AK/SoundEngine/Common/IAkPluginMemAlloc.h>
37 #include <AK/SoundEngine/Common/AkFPUtilities.h>
38 #include <AK/Tools/Common/AkLock.h>
39 #include <AK/Tools/Common/AkPlatformFuncs.h>
40 #include <AK/Tools/Common/AkMonitorError.h>
41 #include <AK/SoundEngine/Common/AkSoundEngineExport.h>
42 #include <AK/SoundEngine/Common/IAkProcessorFeatures.h>
43 #include <AK/SoundEngine/Common/IAkPlatformContext.h>
44 #include <AK/SoundEngine/Common/AkMidiTypes.h>
45 #include <AK/SoundEngine/Common/AkCallback.h>
46 #include <AK/AkWwiseSDKVersion.h>
50 #if defined AK_CPU_X86 || defined AK_CPU_X86_64
51 #include <xmmintrin.h>
62 :
eType(AkPluginTypeNone)
79 class PluginRegistration;
88 class IAkGlobalPluginContext;
175 AkGameObjectID* out_aListenerIDs,
186 AkGameObjectID in_uListener,
211 AkReal32 in_fDistance
238 AkUInt32 & out_uOutputID,
239 AkPluginID & out_uDevicePlugin
247 AkUInt32 in_dataIndex,
248 AkUInt8* &out_rpData,
249 AkUInt32 &out_rDataSize
258 AkUInt32 &out_rDataSize
276 AkUInt32 in_uDataSize
294 const char* in_pszError,
312 #if (defined AK_CPU_X86 || defined AK_CPU_X86_64) && !(defined AK_IOS)
429 AkReal32 * io_pfSpeakerAngles,
430 AkUInt32 & io_uNumAngles,
431 AkReal32 & out_fHeightAngle
441 AkReal32 in_fCenterPerc,
448 AkReal32 in_fCenterPct,
459 AkReal32 in_fCenterPerc,
468 const AkUInt32 in_NbPoints,
469 void *& out_pPannerData
475 void* in_pPannerData,
476 AkReal32 in_fAzimuth,
477 AkReal32 in_fElevation,
478 AkUInt32 in_uNumChannels,
495 AkReal32 in_fElevation,
499 AkChannelMask in_uInputChanSel,
501 AkReal32 in_fCenterPerc,
511 AkReal32 in_fCenterPerc,
515 AkChannelMask in_uInputChanSel,
564 const void * in_pParamsBlock,
565 AkUInt32 in_uBlockSize
582 const void *in_pParamsBlock,
583 AkUInt32 in_uBlockSize
592 AkPluginParamID in_paramID,
593 const void * in_pValue,
594 AkUInt32 in_uParamSize
671 return AK_NotImplemented;
732 AkUInt32 in_uInOffset,
884 AkReal32 & out_fMaxAttenuationDistance
981 AkUInt32 & out_uNumFramesNeeded
1072 ) {
return AK_Success; }
1082 ) {
return AK_NotImplemented; }
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,
1166 AkPluginType in_eType,
1167 AkUInt32 in_ulCompanyID,
1168 AkUInt32 in_ulPluginID,
1169 AkCreatePluginCallback in_pCreateFunc,
1170 AkCreateParamCallback in_pCreateParamFunc
1187 AkUInt32 in_ulCompanyID,
1188 AkUInt32 in_ulPluginID,
1189 AkCreateFileSourceCallback in_pFileCreateFunc,
1190 AkCreateBankSourceCallback in_pBankCreateFunc
1209 AkPluginType in_eType,
1210 AkUInt32 in_ulCompanyID,
1211 AkUInt32 in_ulPluginID,
1212 AkGlobalCallbackFunc in_pCallback,
1213 AkUInt32 in_eLocation = AkGlobalCallbackLocation_BeginRender,
1214 void * in_pCookie = NULL
1227 AkGlobalCallbackFunc in_pCallback,
1228 AkUInt32 in_eLocation = AkGlobalCallbackLocation_BeginRender
1237 AkRtpcValue in_value,
1238 AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT,
1239 AkTimeMs in_uValueChangeDuration = 0,
1240 AkCurveInterpolation in_eFadeCurve = AkCurveInterpolation_Linear,
1241 bool in_bBypassInternalValueInterpolation =
false
1251 AkUniqueID in_busID,
1252 AkGameObjectID in_busObjectID,
1253 AkPluginType in_eType,
1254 AkUInt32 in_uCompanyID,
1255 AkUInt32 in_uPluginID,
1256 const void* in_pData,
1257 AkUInt32 in_uSizeInBytes
1264 AkReal32 in_fPrevGain,
1265 AkReal32 in_fNextGain,
1272 AkReal32 * AK_RESTRICT in_pInChannel,
1274 AkReal32 in_fPrevGain,
1275 AkReal32 in_fNextGain,
1282 AkReal32 * AK_RESTRICT in_pInBuffer,
1283 AkReal32 * AK_RESTRICT in_pOutBuffer,
1284 AkReal32 in_fPrevGain,
1285 AkReal32 in_fNextGain,
1286 AkUInt16 in_uNumFrames
1292 AkReal32 in_fAzimuth,
1293 AkReal32 in_fElevation,
1306 AkUInt32 in_uNumSamples,
1314 AkAcousticTextureID in_AcousticTextureID
1321 AkReal32 & out_fAzimuth,
1322 AkReal32 & out_fElevation
1362 AkUniqueID in_eventID,
1363 AkGameObjectID in_gameObjectID,
1364 AkUInt32 in_uFlags = 0,
1365 AkCallbackFunc in_pfnCallback = NULL,
1366 void * in_pCookie = NULL,
1367 AkUInt32 in_cExternals = 0,
1369 AkPlayingID in_PlayingID = AK_INVALID_PLAYING_ID
1387 AkUniqueID in_eventID,
1388 AkGameObjectID in_gameObjectID,
1390 AkUInt16 in_uNumPosts
1406 AkUniqueID in_eventID = AK_INVALID_UNIQUE_ID,
1407 AkGameObjectID in_gameObjectID = AK_INVALID_GAME_OBJECT
1421 AkPluginType in_eType,
1422 AkUInt32 in_ulCompanyID,
1423 AkUInt32 in_ulPluginID,
1424 AkCreatePluginCallback in_pCreateFunc,
1425 AkCreateParamCallback in_pCreateParamFunc,
1426 AkGlobalCallbackFunc in_pRegisterCallback = NULL,
1427 void * in_pRegisterCallbackCookie = NULL
1429 :
pNext(g_pAKPluginList)
1440 g_pAKPluginList =
this;
1444 AkUInt32 in_ulCompanyID,
1445 AkUInt32 in_ulPluginID,
1446 AkCreateFileSourceCallback in_pCreateFile,
1447 AkCreateBankSourceCallback in_pCreateBank)
1448 :
pNext(g_pAKPluginList)
1459 g_pAKPluginList =
this;
1475 #define AK_IMPLEMENT_PLUGIN_FACTORY(_pluginName_, _plugintype_, _companyid_, _pluginid_) \
1476 AK::IAkPlugin* Create##_pluginName_(AK::IAkPluginMemAlloc * in_pAllocator); \
1477 AK::IAkPluginParam * Create##_pluginName_##Params(AK::IAkPluginMemAlloc * in_pAllocator); \
1478 AK::PluginRegistration _pluginName_##Registration(_plugintype_, _companyid_, _pluginid_, Create##_pluginName_, Create##_pluginName_##Params);
1480 #define AK_STATIC_LINK_PLUGIN(_pluginName_) \
1481 extern AK::PluginRegistration _pluginName_##Registration; \
1482 void *_pluginName_##_linkonceonly = (void*)&_pluginName_##Registration;
1484 #define DEFINE_PLUGIN_REGISTER_HOOK AK_DLLEXPORT AK::PluginRegistration * g_pAKPluginList = NULL;
1486 #define AK_GET_SINK_TYPE_FROM_DEVICE_KEY(_key) ((AkUInt32)(_key & 0xffffffff))
1487 #define AK_GET_DEVICE_ID_FROM_DEVICE_KEY(_key) ((AkUInt32)(_key >> 32))
1489 #endif // _IAK_PLUGIN_H_
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 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 IAkPluginParam * GetInputParam()=0
virtual AkUInt16 GetNumRefillsInVoice()=0
Interface to retrieve contextual information for a mixer.
virtual AKRESULT RegisterPlugin(AkPluginType in_eType, AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreatePluginCallback in_pCreateFunc, AkCreateParamCallback in_pCreateParamFunc)=0
AkCreateFileSourceCallback m_pFileCreateFunc
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
virtual ~IAkPluginParam()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT TimeSkip(AkUInt32 in_uFrames)=0
virtual void * GetCookie() const =0
virtual AkPriority ComputePriorityWithDistance(AkReal32 in_fDistance) const =0
virtual IAkGlobalPluginContext * GlobalContext() const =0
virtual ~IAkGlobalPluginContext()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT Term(IAkPluginMemAlloc *in_pAllocator)=0
Software effect plug-in interface (see How to Create Wwise Sound Engine Effect Plug-ins).
virtual AKRESULT PostMonitorData(void *in_pData, AkUInt32 in_uDataSize)=0
virtual AKRESULT PostMIDIOnEventSync(AkUniqueID in_eventID, AkGameObjectID in_gameObjectID, AkMIDIPost *in_pPosts, AkUInt16 in_uNumPosts)=0
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkEffectPluginContext *in_pEffectPluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
Wwise sound engine source plug-in interface (see How to Create Wwise Sound Engine Source Plug-ins).
virtual AkReal32 GetSpread(AkUInt32 in_uIndex)=0
virtual AkUniqueID GetNodeID() const =0
virtual AkUInt16 GetNumLoops() const =0
virtual void EnableMetering(AkMeteringFlags in_eFlags)=0
virtual ~IAkSinkPluginContext()
Virtual destructor on interface to avoid warnings.
virtual bool SupportMediaRelocation() const
AkCreateParamCallback m_pCreateParamFunc
virtual AKRESULT SetParam(AkPluginParamID in_paramID, const void *in_pValue, AkUInt32 in_uParamSize)=0
virtual AKRESULT Compute3DPositioning(const AkTransform &in_emitter, const AkTransform &in_listener, AkReal32 in_fCenterPerc, AkReal32 in_fSpread, AkReal32 in_fFocus, AkChannelConfig in_inputConfig, AkChannelMask in_uInputChanSel, AkChannelConfig in_outputConfig, AK::SpeakerVolumes::MatrixPtr out_mxVolumes)=0
virtual AkUInt32 GetSampleRate() const =0
virtual void GetPannerPosition(AkVector &out_position)=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
Interface to retrieve information about an input of a mixer.
virtual IAkVoicePluginInfo * GetVoiceInfo()=0
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 AKRESULT IsDataNeeded(AkUInt32 &out_uNumFramesNeeded)=0
bool bIsInPlace
Buffer usage (in-place or not)
virtual AkUInt32 GetIDFromString(const char *in_pszString) const =0
virtual AKRESULT ComputeWeightedAmbisonicsDecodingFromSampledSphere(const AkVector in_samples[], AkUInt32 in_uNumSamples, AkChannelConfig in_cfgAmbisonics, AK::SpeakerVolumes::MatrixPtr out_mxVolume)=0
AkCreatePluginCallback m_pCreateFunc
virtual AkPriority GetPriority() const =0
virtual ~IAkGameObjectPluginInfo()
Virtual destructor on interface to avoid warnings.
virtual ~IAkPluginContextBase()
Virtual destructor on interface to avoid warnings.
PluginRegistration(AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreateFileSourceCallback in_pCreateFile, AkCreateBankSourceCallback in_pCreateBank)
virtual AKRESULT ComputePlanarVBAPGains(AkReal32 in_fAngle, AkChannelConfig in_outputConfig, AkReal32 in_fCenterPerc, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
virtual void GetPluginMedia(AkUInt32 in_dataIndex, AkUInt8 *&out_rpData, AkUInt32 &out_rDataSize)=0
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 AkUniqueID GetAudioNodeID()=0
virtual bool IsStarved()=0
virtual void Execute(AkAudioBuffer *io_pBuffer)=0
virtual AKRESULT StopMIDIOnEventSync(AkUniqueID in_eventID=AK_INVALID_UNIQUE_ID, AkGameObjectID in_gameObjectID=AK_INVALID_GAME_OBJECT)=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)
virtual ~IAkMixerInputContext()
Virtual destructor on interface to avoid warnings.
virtual AkUInt16 GetMaxBufferLength() const =0
bool bCanChangeRate
True for effects whose sample throughput is different between input and output. Effects that can chan...
Emitter-listener pair: Positioning data pertaining to a single pair of emitter and listener.
virtual bool HasListenerRelativeRouting()=0
AkPluginInfo()
Constructor for default values
virtual bool GetMaxAttenuationDistance(AkReal32 &out_fMaxAttenuationDistance)=0
virtual AKRESULT GetGameObjectPosition(AkUInt32 in_uIndex, AkSoundPosition &out_position) const =0
virtual AKRESULT GetPluginInfo(AkPluginInfo &out_rPluginInfo)=0
Software effect plug-in interface for sink (audio end point) plugins.
virtual void SetUserData(void *in_pUserData)=0
virtual bool IsSendModeEffect() const =0
virtual void OnFrameEnd()=0
virtual IAkVoicePluginInfo * GetVoiceInfo()=0
virtual AKRESULT PostMonitorMessage(const char *in_pszError, AK::Monitor::ErrorLevel in_eErrorLevel)=0
Software effect plug-in interface for out-of-place processing (see How to Create Wwise Sound Engine E...
AkReal32 * VectorPtr
Volume vector. Access each element with the standard bracket [] operator.
virtual ~IAkMixerPluginContext()
Virtual destructor on interface to avoid warnings.
virtual Ak3DSpatializationMode Get3DSpatializationMode()=0
virtual AkPlayingID GetPlayingID() const =0
Retrieve the Playing ID of the event corresponding to this voice (if applicable).
virtual AkReal32 GetFocus(AkUInt32 in_uIndex)=0
Configured audio settings
virtual AKRESULT SignalAudioThread()=0
virtual AkReal32 GetEnvelope() const
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, const void *in_pParamsBlock, AkUInt32 in_uBlockSize)=0
virtual bool CanPostMonitorData()=0
virtual AkSpeakerPanningType GetSpeakerPanningType()=0
virtual void Execute(AkAudioBuffer *in_pBuffer, AkUInt32 in_uInOffset, AkAudioBuffer *out_pBuffer)=0
virtual AkMIDIEvent GetMidiEvent() const =0
virtual AkUInt32 GetNum3DPositions()=0
AkPluginType eType
Plug-in type
virtual ~IAkVoicePluginInfo()
Virtual destructor on interface to avoid warnings.
virtual void Consume(AkAudioBuffer *in_pInputBuffer, AkRamp in_gain)=0
virtual AkUInt32 GetBusType()=0
virtual AkConnectionType GetConnectionType()=0
virtual AKRESULT ComputeSphericalVBAPGains(void *in_pPannerData, AkReal32 in_fAzimuth, AkReal32 in_fElevation, AkUInt32 in_uNumChannels, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
virtual AKRESULT InitSphericalVBAP(AK::IAkPluginMemAlloc *in_pAllocator, const AkSphericalCoord *in_SphericalPositions, const AkUInt32 in_NbPoints, void *&out_pPannerData)=0
const AkReal32 * ConstMatrixPtr
Constant volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel(...
virtual IAkPluginParam * Clone(IAkPluginMemAlloc *in_pAllocator)=0
Volume ramp specified by end points "previous" and "next".
virtual const AkAcousticTexture * GetAcousticTexture(AkAcousticTextureID in_AcousticTextureID)=0
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkSinkPluginContext *in_pSinkPluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
virtual AKRESULT ComputeSphericalCoordinates(const AkEmitterListenerPair &in_pair, AkReal32 &out_fAzimuth, AkReal32 &out_fElevation) const =0
virtual AKRESULT GetOutputID(AkUInt32 &out_uOutputID, AkPluginID &out_uDevicePlugin) const =0
virtual AKRESULT Term(IAkPluginMemAlloc *in_pAllocator)=0
virtual AKRESULT TimeSkip(AkUInt32 &)
virtual void Execute(AkAudioBuffer *io_pBuffer)=0
void * m_pRegisterCallbackCookie
virtual ~IAkSourcePluginContext()
Virtual destructor on interface to avoid warnings.
virtual void * GetUserData()=0
virtual AkUniqueID GetNodeID() const =0
Global plugin context used for plugin registration/initialization. Games query this interface from th...
virtual bool GetListeners(AkGameObjectID *out_aListenerIDs, AkUInt32 &io_uSize) const =0
virtual bool IsRenderingOffline() 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 AKRESULT GetParentChannelConfig(AkChannelConfig &out_channelConfig) const =0
virtual AKRESULT SetParamsBlock(const void *in_pParamsBlock, AkUInt32 in_uBlockSize)=0
Software effect plug-in interface for in-place processing (see How to Create Wwise Sound Engine Effec...
virtual AkReal32 GetGameObjectScaling() const =0
virtual AKRESULT RelocateMedia(AkUInt8 *, AkUInt8 *)
virtual AkUniqueID GetBusID()=0
virtual IAkVoicePluginInfo * GetVoiceInfo()=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 AkReal32 GetDownstreamGain()=0
bool bReserved
Legacy bIsAsynchronous plug-in flag, now unused. Preserved for plug-in backward compatibility....
virtual AKRESULT TimeSkip(AkUInt32 &io_uFrames)=0
virtual IAkGameObjectPluginInfo * GetGameObjectInfo()=0
virtual AKRESULT UnregisterGlobalCallback(AkGlobalCallbackFunc in_pCallback, AkUInt32 in_eLocation=AkGlobalCallbackLocation_BeginRender)=0
virtual void ResetStarved()=0
Reset the "starvation" flag after IsStarved() returned true.
AkUInt32 uBuildVersion
Plugin build version, must match the AK_WWISESDK_VERSION_COMBINED macro from AkWwiseSDKVersion....
AkReal32 * MatrixPtr
Volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel().
virtual AKRESULT Reset()=0
virtual ~IAkEffectPlugin()
Virtual destructor on interface to avoid warnings.
virtual ~IAkSinkPlugin()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT GetAudioSettings(AkAudioSettings &out_audioSettings) const =0
virtual IAkPlatformContext * GetPlatformContext() const =0
virtual AKRESULT StopLooping()
virtual AkReal32 GetCenterPerc()=0
PluginRegistration * pNext
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 AKRESULT Get3DPosition(AkUInt32 in_uIndex, AkEmitterListenerPair &out_soundPosition)=0
virtual ~IAkSourcePlugin()
Virtual destructor on interface to avoid warnings.
virtual ~IAkPlugin()
Virtual destructor on interface to avoid warnings.
virtual AKRESULT GetEmitterListenerPair(AkUInt32 in_uIndex, AkEmitterListenerPair &out_emitterListenerPair) const =0
Game object information available to plugins.
virtual AK::IAkPluginMemAlloc * GetAllocator()=0
Get the default allocator for plugins. This is useful for performing global initialization tasks shar...
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkSourcePluginContext *in_pSourcePluginContext, IAkPluginParam *in_pParams, AkAudioFormat &io_rFormat)=0
virtual AKRESULT Seek(AkUInt32)
virtual ~IAkEffectPluginContext()
Virtual destructor on interface to avoid warnings.
virtual AkGameObjectID GetGameObjectID() const =0
Get the ID of the game object.
virtual const AkPlatformInitSettings * GetPlatformInitSettings() const =0
AkGlobalCallbackFunc m_pRegisterCallback
virtual bool IsPrimary()=0
virtual const AkInitSettings * GetInitSettings() const =0
virtual AKRESULT PostMonitorMessage(const char *in_pszError, AK::Monitor::ErrorLevel in_eErrorLevel)=0
virtual SoundEngine::MultiPositionType GetGameObjectMultiPositionType() const =0
static const AkPluginParamID ALL_PLUGIN_DATA_ID
virtual AKRESULT TermSphericalVBAP(AK::IAkPluginMemAlloc *in_pAllocator, void *in_pPannerData)=0
virtual AkUInt32 GetNumEmitterListenerPairs() const =0
virtual Ak3DPositionType Get3DPositionType()=0
virtual AKRESULT RegisterCodec(AkUInt32 in_ulCompanyID, AkUInt32 in_ulPluginID, AkCreateFileSourceCallback in_pFileCreateFunc, AkCreateBankSourceCallback in_pBankCreateFunc)=0
virtual void ComputeAmbisonicsEncoding(AkReal32 in_fAzimuth, AkReal32 in_fElevation, AkChannelConfig in_cfgAmbisonics, AK::SpeakerVolumes::VectorPtr out_vVolumes)=0
virtual AkReal32 GetDuration() const =0
virtual AKRESULT GetSpeakerAngles(AkReal32 *io_pfSpeakerAngles, AkUInt32 &io_uNumAngles, AkReal32 &out_fHeightAngle)=0
const AkReal32 * ConstVectorPtr
Constant volume vector. Access each element with the standard bracket [] operator.
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 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
virtual void GetPluginCustomGameData(void *&out_rpData, AkUInt32 &out_rDataSize)=0
Interface to retrieve contextual information available to all types of plugins.
AkCreateBankSourceCallback m_pBankCreateFunc
virtual AKRESULT GetListenerData(AkGameObjectID in_uListener, AkListener &out_listener) const =0
virtual AkUInt32 GetNumGameObjectPositions() const =0
virtual IAkStreamMgr * GetStreamMgr() const =0
Retrieve the streaming manager access interface.
지원이 필요하신가요?
질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!
지원 페이지를 방문해 주세요
작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요