Added version checking to plugins.
This commit is contained in:
parent
48d264d0be
commit
fbd3ecabb4
|
@ -6,7 +6,7 @@
|
|||
|
||||
namespace cAudio
|
||||
{
|
||||
typedef bool (*pluginInstallFunc)(ILogger* logger);
|
||||
typedef bool (*pluginInstallFunc)(ILogger* logger, const char* version);
|
||||
typedef const char* (*pluginNameFunc)();
|
||||
typedef void (*pluginUninstallFunc)();
|
||||
|
||||
|
@ -32,7 +32,7 @@ namespace cAudio
|
|||
}
|
||||
~cAudioPlugin() { }
|
||||
|
||||
virtual bool installPlugin(ILogger* logger);
|
||||
virtual bool installPlugin(ILogger* logger, const char* version);
|
||||
virtual const char* getPluginName();
|
||||
virtual void uninstallPlugin();
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
namespace cAudio
|
||||
{
|
||||
|
||||
bool cAudioPlugin::installPlugin(ILogger* logger)
|
||||
bool cAudioPlugin::installPlugin(ILogger* logger, const char* version)
|
||||
{
|
||||
if(initFunc)
|
||||
return initFunc(logger);
|
||||
return initFunc(logger, version);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "../Headers/cUtils.h"
|
||||
#include "../include/cAudioPlatform.h"
|
||||
#include "../Headers/cAudioPlugin.h"
|
||||
#include "../include/cAudioDefines.h"
|
||||
|
||||
namespace cAudio
|
||||
{
|
||||
|
@ -33,7 +34,7 @@ bool cPluginManager::installPlugin(IAudioPlugin* plugin, const char* name)
|
|||
if(theName.empty())
|
||||
theName = plugin->getPluginName();
|
||||
|
||||
if(plugin->installPlugin(getLogger()))
|
||||
if(plugin->installPlugin(getLogger(), CAUDIO_VERSION))
|
||||
{
|
||||
RegisteredPlugins[theName] = plugin;
|
||||
return true;
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace cAudio
|
|||
IAudioPlugin() { }
|
||||
~IAudioPlugin() { }
|
||||
|
||||
virtual bool installPlugin(ILogger* logger) = 0;
|
||||
virtual bool installPlugin(ILogger* logger, const char* version) = 0;
|
||||
virtual const char* getPluginName() = 0;
|
||||
virtual void uninstallPlugin() = 0;
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "cAudioPlatform.h"
|
||||
|
||||
#define CAUDIO_VERSION "2.0.0"
|
||||
|
||||
//Global define for exporting the library
|
||||
#ifndef CAUDIO_STATIC_LIB
|
||||
|
||||
|
|
|
@ -5,10 +5,15 @@
|
|||
#include "ILogger.h"
|
||||
|
||||
//Will be called on initial install of the plugin, use this for any first time initialization.
|
||||
extern "C" CAUDIO_API bool InstallPlugin(cAudio::ILogger* logger)
|
||||
extern "C" CAUDIO_API bool InstallPlugin(cAudio::ILogger* logger, const char* version)
|
||||
{
|
||||
//This plugin has no first time initialization to do, so this is an easy function
|
||||
return true;
|
||||
//First, double check that this copy of cAudio matches what we were compiled against
|
||||
if(strcmp(CAUDIO_VERSION, version) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//Must return a unique name that identifies this plugin.
|
||||
|
|
Loading…
Reference in New Issue