diff options
author | Max Horn | 2003-09-17 22:41:01 +0000 |
---|---|---|
committer | Max Horn | 2003-09-17 22:41:01 +0000 |
commit | c1a678afeb5100a99030bb51782e5de98d771997 (patch) | |
tree | bae1b38145179bae284a14c983c9541db7644f8c /common/plugins.h | |
parent | 0b16afb067a7b3f09a97507675eaa4872a59df38 (diff) | |
download | scummvm-rg350-c1a678afeb5100a99030bb51782e5de98d771997.tar.gz scummvm-rg350-c1a678afeb5100a99030bb51782e5de98d771997.tar.bz2 scummvm-rg350-c1a678afeb5100a99030bb51782e5de98d771997.zip |
new module 'base'; moved gameDetector.*, main.cpp and base/plugins.* there (this removes the need for an ugly hack in the build system, and is also conceptionally cleaner)
svn-id: r10282
Diffstat (limited to 'common/plugins.h')
-rw-r--r-- | common/plugins.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/common/plugins.h b/common/plugins.h deleted file mode 100644 index 8257bf1a53..0000000000 --- a/common/plugins.h +++ /dev/null @@ -1,83 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2003 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Header$ - * - */ - -#ifndef COMMON_PLUGINS_H -#define COMMON_PLUGINS_H - -#include "common/list.h" - -class Engine; -class GameDetector; -class OSystem; -struct TargetSettings; - -/** - * Abstract base class for the plugin system. - * Subclasses for this can be used to wrap both static and dynamic - * plugins. - */ -class Plugin { -public: - virtual void loadPlugin() {} - virtual void unloadPlugin() {} - - virtual const char *getName() const = 0; - virtual int getVersion() const = 0; - - virtual int countTargets() const; - virtual const TargetSettings *getTargets() const = 0; - virtual const TargetSettings *findTarget(const char *targetName) const; - - virtual Engine *createInstance(GameDetector *detector, OSystem *syst) const = 0; -}; - - -/** List of plugins. */ -typedef ScummVM::List<Plugin *> PluginList; - - -/** - * Instances of this class manage all plugins, including loading them, - * making wrapper objects of class Plugin available, and unloading them. - * - * @todo Add support for dynamic plugins (this may need additional API, e.g. for a plugin path) - */ -class PluginManager { -protected: - PluginList _plugins; - -public: - PluginManager(); - ~PluginManager(); - - void loadPlugins(); - void unloadPlugins(); - - const PluginList &getPlugins() { return _plugins; } -}; - -/** - * Global, shared plugin manager. - */ -extern PluginManager *g_pluginManager; - -#endif |