Wwise SDK 2022.1.8
_i_ak_mixer_plugin_8h_source
Version
menu_open
link
Wwise SDK 2022.1.8
|
IAkMixerPlugin.h
Go to the documentation of this file.
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 Creating Sound Engine Effect Plug-ins...
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
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise