目录

include/AK/SoundEngine/Common/IAkMixerPlugin.h

Go to the documentation of this file.
00001 
00002 //
00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
00004 //
00006 
00009 
00010 #ifndef _IAK_MIXER_PLUGIN_H_
00011 #define _IAK_MIXER_PLUGIN_H_
00012 
00013 #include <AK/SoundEngine/Common/IAkPlugin.h>
00014 
00015 namespace AK
00016 {
00018     class IAkMixerEffectPlugin : public IAkPlugin
00019     {
00020     public:
00021 
00024         virtual AKRESULT Init( 
00025             IAkPluginMemAlloc *         in_pAllocator,              
00026             IAkMixerPluginContext *     in_pMixerPluginContext,     
00027             IAkPluginParam *            in_pParams,                 
00028             AkAudioFormat &             in_rFormat                  
00029             ) = 0;
00030 
00032         virtual void OnInputConnected( 
00033             IAkMixerInputContext * in_pInput            
00034             ) = 0;
00035         
00038         virtual void OnInputDisconnected( 
00039             IAkMixerInputContext * in_pInput            
00040             ) = 0;
00041 
00050         virtual void ConsumeInput( 
00051             IAkMixerInputContext *  in_pInputContext,   
00052             AkRamp                  in_baseVolume,      
00053             AkRamp                  in_emitListVolume,  
00054             AkAudioBuffer *         io_pInputBuffer,    
00055             AkAudioBuffer *         io_pMixBuffer       
00056             ) = 0;
00057 
00069         virtual void OnMixDone( 
00070             AkAudioBuffer *         io_pMixBuffer       
00071             ) = 0;
00072 
00085         virtual void OnEffectsProcessed( 
00086             AkAudioBuffer *         io_pMixBuffer       
00087             ) = 0;
00088 
00103         virtual void OnFrameEnd(
00104             AkAudioBuffer *         io_pMixBuffer,      
00105             IAkMetering *           in_pMetering        
00106             ) = 0;
00107     };
00108 }
00109 #endif // _IAK_MIXER_PLUGIN_H_