2010-02-09 06:58:27 +01:00
|
|
|
#ifndef CAUDIOPLUGIN_H_INCLUDED
|
|
|
|
#define CAUDIOPLUGIN_H_INCLUDED
|
|
|
|
|
|
|
|
#include "../include/IAudioPlugin.h"
|
2010-02-10 05:46:00 +01:00
|
|
|
#include "../include/ILogger.h"
|
2010-02-09 06:58:27 +01:00
|
|
|
|
|
|
|
namespace cAudio
|
|
|
|
{
|
2010-02-10 05:59:10 +01:00
|
|
|
typedef bool (*pluginInstallFunc)(ILogger* logger, const char* version);
|
2010-02-09 06:58:27 +01:00
|
|
|
typedef const char* (*pluginNameFunc)();
|
|
|
|
typedef void (*pluginUninstallFunc)();
|
|
|
|
|
|
|
|
typedef void (*pluginOnCreateAudioManager)(IAudioManager*);
|
|
|
|
typedef void (*pluginOnCreateAudioCapture)(IAudioCapture*);
|
|
|
|
|
|
|
|
typedef void (*pluginOnDestroyAudioManager)(IAudioManager*);
|
|
|
|
typedef void (*pluginOnDestroyAudioCapture)(IAudioCapture*);
|
|
|
|
|
|
|
|
//Simply acts as a shim between dll functions and IAudioPlugin
|
|
|
|
class cAudioPlugin : public IAudioPlugin
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
cAudioPlugin()
|
|
|
|
{
|
|
|
|
initFunc = 0x0;
|
|
|
|
nameFunc = 0x0;
|
|
|
|
uninstalledFunc = 0x0;
|
|
|
|
createAudioManagerFunc = 0x0;
|
|
|
|
createAudioCaptureFunc = 0x0;
|
|
|
|
destroyAudioManagerFunc = 0x0;
|
|
|
|
destroyAudioCaptureFunc = 0x0;
|
|
|
|
}
|
|
|
|
~cAudioPlugin() { }
|
|
|
|
|
2010-02-10 05:59:10 +01:00
|
|
|
virtual bool installPlugin(ILogger* logger, const char* version);
|
2010-02-09 06:58:27 +01:00
|
|
|
virtual const char* getPluginName();
|
|
|
|
virtual void uninstallPlugin();
|
|
|
|
|
|
|
|
virtual void onCreateAudioManager(IAudioManager* manager);
|
|
|
|
virtual void onCreateAudioCapture(IAudioCapture* capture);
|
|
|
|
|
|
|
|
virtual void onDestroyAudioManager(IAudioManager* manager);
|
|
|
|
virtual void onDestoryAudioCapture(IAudioCapture* capture);
|
|
|
|
|
|
|
|
pluginInstallFunc initFunc;
|
|
|
|
pluginNameFunc nameFunc;
|
|
|
|
pluginUninstallFunc uninstalledFunc;
|
|
|
|
|
|
|
|
pluginOnCreateAudioManager createAudioManagerFunc;
|
|
|
|
pluginOnCreateAudioCapture createAudioCaptureFunc;
|
|
|
|
|
|
|
|
pluginOnDestroyAudioManager destroyAudioManagerFunc;
|
|
|
|
pluginOnDestroyAudioCapture destroyAudioCaptureFunc;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //! CAUDIOPLUGIN_H_INCLUDED
|