Wwise SDK
_i_ak_mixer_plugin_8h_source
版本
menu_open
link
Wwise SDK 2022.1.12
|
IAkMixerPlugin.h
浏览该文件的文档.
37 /// Software effect plug-in interface for panner/mixer effects (see \ref soundengine_plugins_effects).
42 /// Software effect plug-in initialization. Prepares the effect for data processing, allocates memory and sets up the initial conditions.
43 /// \aknote Memory allocation should be done through appropriate macros (see \ref fx_memory_alloc). \endaknote
57 /// \aknote OnInputDisconnected() may be called between calls to ConsumeInput() and OnMixDone().\endaknote
64 /// \aknote io_pInputBuffer->eState will be set as AK_NoMoreData the last time the given input is processed by ConsumeInput(). Otherwise it is set to AK_DataReady.
66 /// \aknote ConsumeInput() will not be called for frames during which a voice is not audible.\endaknote
72 AkRamp in_baseVolume, ///< Base volume to apply to this input (prev corresponds to the beginning, next corresponds to the end of the buffer). This gain is agnostic of emitter-listener pair-specific contributions (such as distance level attenuation).
73 AkRamp in_emitListVolume, ///< Emitter-listener pair-specific gain. When there are multiple emitter-listener pairs, this volume equals 1, and pair gains are applied directly on the channel volume matrix (accessible via IAkMixerInputContext::GetSpatializedVolumes()). For custom processing of emitter-listener pairs, one should query each pair volume using IAkMixerInputContext::Get3DPosition(), then AkEmitterListenerPair::GetGainForConnectionType().
74 AkAudioBuffer * io_pInputBuffer, ///< Input audio buffer data structure. Plugins should avoid processing data in-place.
75 AkAudioBuffer * io_pMixBuffer ///< Output audio buffer data structure. Stored until call to OnEffectsProcessed().
80 /// After the bus buffer io_pMixBuffer has been pushed to the bus downstream (or the output device),
82 /// \aknote io_pMixBuffer->eState is passed as AK_DataReady for the whole existence of the bus, until the last frame where it will be set to AK_NoMoreData.
83 /// However, mixer plugins are capable of forcing the bus to remain alive for a longer time by changing io_pMixBuffer->eState back to AK_DataReady.
84 /// You may do this in OnMixDone() or in OnEffectsProcessed(). The difference is that effects inserted on the bus will enter their "tail mode" if you
85 /// wait until OnEffectsProcessed() to flip the state to AK_DataReady. This is usually undesirable, so handling this inside OnMixDone() is usually preferred.\endaknote
90 AkAudioBuffer * io_pMixBuffer ///< Output audio buffer data structure. Stored across calls to ConsumeInput().
93 /// This function is called once every audio frame, after all insert effects on the bus have been processed,
95 /// After the bus buffer io_pMixBuffer has been pushed to the bus downstream (or the output device),
97 /// \aknote io_pMixBuffer->eState is passed as AK_DataReady for the whole existence of the bus, until the last frame where it will be set to AK_NoMoreData.
98 /// However, mixer plugins are capable of forcing the bus to remain alive for a longer time by changing io_pMixBuffer->eState back to AK_DataReady.
99 /// You may do this in OnMixDone(), in OnEffectsProcessed() or in OnFrameEnd(). The difference is that effects inserted on the bus will enter their "tail mode" if you
100 /// wait until OnEffectsProcessed() or OnFrameEnd() to flip the state to AK_DataReady. This is usually undesirable, so handling this inside OnMixDone() is usually preferred.\endaknote
109 /// This function is called once every audio frame, after all insert effects on the bus have been processed, and after metering has been processed (if applicable),
111 /// After the bus buffer io_pMixBuffer has been pushed to the bus downstream (or the output device), it is cleared out for the next frame.
113 /// \aknote io_pMixBuffer->eState is passed as AK_DataReady for the whole existence of the bus, until the last frame where it will be set to AK_NoMoreData.
114 /// However, mixer plugins are capable of forcing the bus to remain alive for a longer time by changing io_pMixBuffer->eState back to AK_DataReady.
115 /// You may do this in OnMixDone(), in OnEffectsProcessed() or in OnFrameEnd(). The difference is that effects inserted on the bus will enter their "tail mode" if you
116 /// wait until OnEffectsProcessed() or OnFrameEnd() to flip the state to AK_DataReady. This is usually undesirable, so handling this inside OnMixDone() is usually preferred.\endaknote
117 /// \aknote This function is called after metering gets computed on io_pMixBuffer. You may access the result in in_pMetering. Metering has to be enabled with AK::IAkMixerPluginContext::EnableMetering().
125 AkMetering * in_pMetering ///< Struct containing metering data computed on io_pMixBuffer. May be NULL if metering is not enabled.
Interface to retrieve contextual information for a mixer.
Definition: IAkPlugin.h:442
Definition: IAkPlugin.h:619
virtual void ConsumeInput(IAkMixerInputContext *in_pInputContext, AkRamp in_baseVolume, AkRamp in_emitListVolume, AkAudioBuffer *io_pInputBuffer, AkAudioBuffer *io_pMixBuffer)=0
Definition: IAkPlugin.h:914
Software effect plug-in interface for panner/mixer effects (see 创建声音引擎效果器插件).
Definition: IAkMixerPlugin.h:39
virtual void OnEffectsProcessed(AkAudioBuffer *io_pMixBuffer)=0
virtual void OnFrameEnd(AkAudioBuffer *io_pMixBuffer, AkMetering *in_pMetering)=0
Definition: IAkPluginMemAlloc.h:43
virtual void OnMixDone(AkAudioBuffer *io_pMixBuffer)=0
virtual AKRESULT Init(IAkPluginMemAlloc *in_pAllocator, IAkMixerPluginContext *in_pMixerPluginContext, IAkPluginParam *in_pParams, AkAudioFormat &in_rFormat)=0
Struct containing metering information about a buffer. Depending on when this struct is generated,...
Definition: AkCommonDefs.h:203
Definition: AkCommonDefs.h:454
virtual void OnInputConnected(IAkMixerInputContext *in_pInput)=0
This function is called whenever a new input is connected to the underlying mixing bus.
virtual void OnInputDisconnected(IAkMixerInputContext *in_pInput)=0
Definition: IAkPlugin.h:690