diff options
| author | Max Horn | 2008-02-04 13:14:52 +0000 | 
|---|---|---|
| committer | Max Horn | 2008-02-04 13:14:52 +0000 | 
| commit | 3cd1e60e7adb6ca8e25aaf8b66222c2fe7fb5fab (patch) | |
| tree | 7722a14a6b22035ddcceac37bd72249a2c189764 | |
| parent | 5fb7f7a4d66c48be928440c3142b196a479ca94c (diff) | |
| download | scummvm-rg350-3cd1e60e7adb6ca8e25aaf8b66222c2fe7fb5fab.tar.gz scummvm-rg350-3cd1e60e7adb6ca8e25aaf8b66222c2fe7fb5fab.tar.bz2 scummvm-rg350-3cd1e60e7adb6ca8e25aaf8b66222c2fe7fb5fab.zip  | |
Moved common code from Plugin subclasses to class Plugin itself
svn-id: r30787
| -rw-r--r-- | backends/plugins/dynamic-plugin.h | 33 | ||||
| -rw-r--r-- | base/plugins.cpp | 64 | ||||
| -rw-r--r-- | base/plugins.h | 30 | 
3 files changed, 50 insertions, 77 deletions
diff --git a/backends/plugins/dynamic-plugin.h b/backends/plugins/dynamic-plugin.h index 81d7fbc4c5..410e21c3a8 100644 --- a/backends/plugins/dynamic-plugin.h +++ b/backends/plugins/dynamic-plugin.h @@ -33,44 +33,11 @@  class DynamicPlugin : public Plugin {  protected:  	typedef void (*VoidFunc)(); -  	typedef MetaEngine *(*MetaAllocFunc)(); -	MetaEngine *_metaengine; -  	virtual VoidFunc findSymbol(const char *symbol) = 0;  public: -	DynamicPlugin() : _metaengine(0) {} - -	const char *getName() const { -		return _metaengine->getName(); -	} - -	const char *getCopyright() const { -		return _metaengine->getCopyright(); -	} - -	PluginError createInstance(OSystem *syst, Engine **engine) const { -		return _metaengine->createInstance(syst, engine); -	} - -	GameList getSupportedGames() const { -		return _metaengine->getSupportedGames(); -	} - -	GameDescriptor findGame(const char *gameid) const { -		return _metaengine->findGame(gameid); -	} - -	GameList detectGames(const FSList &fslist) const { -		return _metaengine->detectGames(fslist); -	} - -	SaveStateList listSaves(const char *target) const { -		return _metaengine->listSaves(target); -	} -  	virtual bool loadPlugin() {  		// Query the plugin's name  		MetaAllocFunc metaAlloc = (MetaAllocFunc)findSymbol("PLUGIN_MetaEngine_alloc"); diff --git a/base/plugins.cpp b/base/plugins.cpp index da6fe36826..4364cd0215 100644 --- a/base/plugins.cpp +++ b/base/plugins.cpp @@ -28,49 +28,49 @@  #include "engines/metaengine.h" -#ifndef DYNAMIC_MODULES -class StaticPlugin : public Plugin { -	MetaEngine *_metaengine; -public: -	StaticPlugin(MetaEngine *metaengine) -		: _metaengine(metaengine) { -		assert(_metaengine); -	} +const char *Plugin::getName() const { +	return _metaengine->getName(); +} -	~StaticPlugin() { -		delete _metaengine; -	} +const char *Plugin::getCopyright() const { +	return _metaengine->getCopyright(); +} -	virtual bool loadPlugin()		{ return true; } -	virtual void unloadPlugin()		{} +PluginError Plugin::createInstance(OSystem *syst, Engine **engine) const { +	return _metaengine->createInstance(syst, engine); +} -	const char *getName() const { -		return _metaengine->getName(); -	} +GameList Plugin::getSupportedGames() const { +	return _metaengine->getSupportedGames(); +} -	const char *getCopyright() const { -		return _metaengine->getCopyright(); -	} +GameDescriptor Plugin::findGame(const char *gameid) const { +	return _metaengine->findGame(gameid); +} -	PluginError createInstance(OSystem *syst, Engine **engine) const { -		return _metaengine->createInstance(syst, engine); -	} +GameList Plugin::detectGames(const FSList &fslist) const { +	return _metaengine->detectGames(fslist); +} -	GameList getSupportedGames() const { -		return _metaengine->getSupportedGames(); -	} +SaveStateList Plugin::listSaves(const char *target) const { +	return _metaengine->listSaves(target); +} -	GameDescriptor findGame(const char *gameid) const { -		return _metaengine->findGame(gameid); -	} -	GameList detectGames(const FSList &fslist) const { -		return _metaengine->detectGames(fslist); +#ifndef DYNAMIC_MODULES +class StaticPlugin : public Plugin { +public: +	StaticPlugin(MetaEngine *metaengine) { +		assert(metaengine); +		_metaengine = metaengine;  	} -	SaveStateList listSaves(const char *target) const { -		return _metaengine->listSaves(target); +	~StaticPlugin() { +		delete _metaengine;  	} + +	virtual bool loadPlugin()		{ return true; } +	virtual void unloadPlugin()		{}  };  class StaticPluginProvider : public PluginProvider { diff --git a/base/plugins.h b/base/plugins.h index 9f8383f165..bc65a13644 100644 --- a/base/plugins.h +++ b/base/plugins.h @@ -44,24 +44,30 @@ class OSystem;   * plugins.   */  class Plugin { +protected: +	MetaEngine *_metaengine; +  public: -	virtual ~Plugin() {} +	Plugin() : _metaengine(0) {} +	virtual ~Plugin() { +		//if (isLoaded()) +			//unloadPlugin(); +	}  //	virtual bool isLoaded() const = 0;	// TODO -	virtual bool loadPlugin() = 0; -	virtual void unloadPlugin() = 0; - -	virtual const char *getName() const = 0; -	virtual const char *getCopyright() const = 0; -//	virtual int getVersion() const	{ return 0; }	// TODO! +	virtual bool loadPlugin() = 0;	// TODO: Rename to load() ? +	virtual void unloadPlugin() = 0;	// TODO: Rename to unload() ? -	virtual GameList getSupportedGames() const = 0; -	virtual GameDescriptor findGame(const char *gameid) const = 0; -	virtual GameList detectGames(const FSList &fslist) const = 0; +	const char *getName() const; +	const char *getCopyright() const; -	virtual SaveStateList listSaves(const char *target) const = 0; +//	virtual int getVersion() const	{ return 0; }	// TODO! -	virtual PluginError createInstance(OSystem *syst, Engine **engine) const = 0; +	PluginError createInstance(OSystem *syst, Engine **engine) const; +	GameList getSupportedGames() const; +	GameDescriptor findGame(const char *gameid) const; +	GameList detectGames(const FSList &fslist) const; +	SaveStateList listSaves(const char *target) const;  };  | 
