[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