[Scummvm-cvs-logs] CVS: scummvm/base plugins.cpp,1.10,1.11 plugins.h,1.3,1.4 gameDetector.cpp,1.14,1.15 main.cpp,1.13,1.14

Max Horn fingolfin at users.sourceforge.net
Wed Oct 8 15:12:07 CEST 2003


Update of /cvsroot/scummvm/scummvm/base
In directory sc8-pr-cvs1:/tmp/cvs-serv8697/base

Modified Files:
	plugins.cpp plugins.h gameDetector.cpp main.cpp 
Log Message:
turned PluginManager into a proper singleton

Index: plugins.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/base/plugins.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- plugins.cpp	2 Oct 2003 22:52:57 -0000	1.10
+++ plugins.cpp	8 Oct 2003 22:10:58 -0000	1.11
@@ -74,12 +74,6 @@
 #pragma mark -
 
 
-PluginManager	*g_pluginManager = 0;
-
-
-#pragma mark -
-
-
 int Plugin::countTargets() const {
 	const TargetSettings *target = getTargets();
 	int count;

Index: plugins.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/base/plugins.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- plugins.h	2 Oct 2003 17:43:00 -0000	1.3
+++ plugins.h	8 Oct 2003 22:10:58 -0000	1.4
@@ -24,6 +24,7 @@
 #define COMMON_PLUGINS_H
 
 #include "common/list.h"
+#include "common/singleton.h"
 
 class Engine;
 class GameDetector;
@@ -84,25 +85,22 @@
  *
  * @todo Add support for dynamic plugins (this may need additional API, e.g. for a plugin path)
  */
-class PluginManager {
-protected:
+using Common::Singleton;
+class PluginManager : public Singleton<PluginManager> {
+private:
 	PluginList _plugins;
 	
 	bool tryLoadPlugin(Plugin *plugin);
 	
-public:
+	friend class Singleton<PluginManager>;
 	PluginManager();
 	~PluginManager();
 	
+public:
 	void loadPlugins();
 	void unloadPlugins();
 	
 	const PluginList &getPlugins()	{ return _plugins; }
 };
-
-/**
- * Global, shared plugin manager.
- */
-extern PluginManager	*g_pluginManager;
 
 #endif

Index: gameDetector.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/base/gameDetector.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- gameDetector.cpp	8 Oct 2003 21:59:21 -0000	1.14
+++ gameDetector.cpp	8 Oct 2003 22:10:58 -0000	1.15
@@ -238,7 +238,7 @@
 	//    what this code does, but without the "Config" column.
 	// 2) List all available (configured) targets, including those with custom
 	//    names, e.g. "monkey-mac", "skycd-demo", ...
-	const PluginList &plugins = g_pluginManager->getPlugins();
+	const PluginList &plugins = PluginManager::instance().getPlugins();
 	const TargetSettings *v;
 
 	printf("Game             Full Title                                            \n"
@@ -262,7 +262,7 @@
 const TargetSettings *GameDetector::findTarget(const String &targetName, const Plugin **plugin) const {
 	// Find the TargetSettings for this target
 	const TargetSettings *target;
-	const PluginList &plugins = g_pluginManager->getPlugins();
+	const PluginList &plugins = PluginManager::instance().getPlugins();
 	
 	PluginList::ConstIterator iter = plugins.begin();
 	for (iter = plugins.begin(); iter != plugins.end(); ++iter) {

Index: main.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/base/main.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- main.cpp	8 Oct 2003 21:59:21 -0000	1.13
+++ main.cpp	8 Oct 2003 22:10:59 -0000	1.14
@@ -237,8 +237,7 @@
 	ConfMan.set("versioninfo", gScummVMVersion, "scummvm");
 	
 	// Load the plugins
-	g_pluginManager = new PluginManager();
-	g_pluginManager->loadPlugins();
+	PluginManager::instance().loadPlugins();
 
 	// Parse the command line information
 	GameDetector detector;





More information about the Scummvm-git-logs mailing list