Table of Contents

virtual void AK::IAkMixerEffectPlugin::ConsumeInput ( IAkMixerInputContext in_pInputContext,
AkRamp  in_baseVolume,
AkRamp  in_emitListVolume,
AkAudioBuffer io_pInputBuffer,
AkAudioBuffer io_pMixBuffer  
) [pure virtual]

This function is called whenever an input (voice or bus) needs to be mixed. During an audio frame, ConsumeInput() will be called for each input that need to be mixed.

Note.gif
Note: 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. Mixers cannot make an input remain alive by changing their state.
Note.gif
Note: ConsumeInput() will not be called for frames during which a voice is not audible.
See also:
Parameters:
in_pInputContext  Context for this input. Carries non-audio data.
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).
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().
io_pInputBuffer  Input audio buffer data structure. Plugins should avoid processing data in-place.
io_pMixBuffer  Output audio buffer data structure. Stored until call to OnEffectsProcessed().