aboutsummaryrefslogtreecommitdiff
path: root/base/plugins.h
diff options
context:
space:
mode:
authorMax Horn2003-10-08 22:10:59 +0000
committerMax Horn2003-10-08 22:10:59 +0000
commit6e09d35090ab1fa600c5fe1e2f2006ffb0e9c131 (patch)
treec13a909e2c682464735c09ef81f4adbb923c6115 /base/plugins.h
parentd1773647159f9ef1393d7a1d33204de5886edce5 (diff)
downloadscummvm-rg350-6e09d35090ab1fa600c5fe1e2f2006ffb0e9c131.tar.gz
scummvm-rg350-6e09d35090ab1fa600c5fe1e2f2006ffb0e9c131.tar.bz2
scummvm-rg350-6e09d35090ab1fa600c5fe1e2f2006ffb0e9c131.zip
turned PluginManager into a proper singleton
svn-id: r10688
Diffstat (limited to 'base/plugins.h')
-rw-r--r--base/plugins.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/base/plugins.h b/base/plugins.h
index a463861c7b..3e989f66b4 100644
--- a/base/plugins.h
+++ b/base/plugins.h
@@ -24,6 +24,7 @@
#define COMMON_PLUGINS_H
#include "common/list.h"
+#include "common/singleton.h"
class Engine;
class GameDetector;
@@ -84,25 +85,22 @@ typedef Common::List<Plugin *> PluginList;
*
* @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