2011-05-19 06:36:14 +02:00
# ifndef IAUDIOPLUGIN_H_INCLUDED
# define IAUDIOPLUGIN_H_INCLUDED
# include "IRefCounted.h"
# include "IAudioManager.h"
# include "IAudioCapture.h"
# include "ILogger.h"
namespace cAudio
{
//! Interface for all plugins in cAudio.
class IAudioPlugin : public IRefCounted
{
public :
IAudioPlugin ( ) { }
~ IAudioPlugin ( ) { }
//! Called to initialize the plugin. Use this for any initial setup that needs to be done.
/**
\ param logger : Pointer to the logger singleton .
\ return True if plugin initialization was successful , false if there was an error . */
virtual bool installPlugin ( ILogger * logger ) = 0 ;
//! Called to retrieve a name to register this plugin under if the user didn't specify one (or the plugin was auto-loaded).
/**
\ return Name of the plugin . */
virtual const char * getPluginName ( ) = 0 ;
//! Called to shutdown the plugin and do any final cleanup. This is the last function call cAudio will give you before your plugin is completely removed.
virtual void uninstallPlugin ( ) = 0 ;
//! Called on creation of an Audio Playback Manager.
/** Use this to register any decoders or event handlers that you'd like to add to the engine.
\ param manager : Pointer to the newly created manager . */
virtual void onCreateAudioManager ( IAudioManager * manager ) { }
//! Called on creation of an Audio Capture Manager.
/** Use this to register any event handlers that you'd like to add to the engine.
\ param capture : Pointer to the newly created capture interface . */
virtual void onCreateAudioCapture ( IAudioCapture * capture ) { }
//! Called on destruction of an Audio Playback Manager.
/** Use this to remove anything you added to the playback manger earlier.
\ param manager : Pointer to the soon to be destroyed playback interface . */
virtual void onDestroyAudioManager ( IAudioManager * manager ) { }
//! Called on destruction of an Audio Capture Manager.
/** Use this to remove anything you added to a capture manger earlier.
\ param capture : Pointer to the soon to be destroyed capture interface . */
virtual void onDestoryAudioCapture ( IAudioCapture * capture ) { }
} ;
} ;
2011-05-19 06:24:29 +02:00
# endif //! IAUDIOPLUGIN_H_INCLUDED