diff options
Diffstat (limited to 'backends')
-rw-r--r-- | backends/platform/dc/dcmain.cpp | 6 | ||||
-rw-r--r-- | backends/platform/sdl/sdl.cpp | 5 | ||||
-rw-r--r-- | backends/platform/x11/x11.cpp | 5 | ||||
-rw-r--r-- | backends/plugins/dc/dc-provider.cpp | 1 | ||||
-rw-r--r-- | backends/plugins/posix/posix-provider.cpp | 1 | ||||
-rw-r--r-- | backends/plugins/win32/win32-provider.cpp | 1 |
6 files changed, 19 insertions, 0 deletions
diff --git a/backends/platform/dc/dcmain.cpp b/backends/platform/dc/dcmain.cpp index 4b03ec1551..4ba5338dfa 100644 --- a/backends/platform/dc/dcmain.cpp +++ b/backends/platform/dc/dcmain.cpp @@ -31,6 +31,8 @@ #include "DCLauncherDialog.h" #include <common/config-manager.h> +#include "backends/plugins/dc/dc-provider.h" + Icon icon; const char *gGameName; @@ -205,6 +207,10 @@ int main() g_system = new OSystem_Dreamcast(); assert(g_system); +#ifdef DYNAMIC_MODULES + PluginManager::instance().addPluginProvider(new DCPluginProvider()); +#endif + int res = scummvm_main(argc, argv); exit(0); diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 5f76d21c9d..21f5935c58 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -22,6 +22,7 @@ */ #include "backends/platform/sdl/sdl-common.h" +#include "backends/plugins/sdl/sdl-provider.h" #include "common/config-manager.h" #include "common/util.h" #include "base/main.h" @@ -95,6 +96,10 @@ int main(int argc, char *argv[]) { #endif assert(g_system); +#ifdef DYNAMIC_MODULES + PluginManager::instance().addPluginProvider(new SDLPluginProvider()); +#endif + // Invoke the actual ScummVM main entry point: int res = scummvm_main(argc, argv); g_system->quit(); // TODO: Consider removing / replacing this! diff --git a/backends/platform/x11/x11.cpp b/backends/platform/x11/x11.cpp index ce020c7a8e..7db5066c44 100644 --- a/backends/platform/x11/x11.cpp +++ b/backends/platform/x11/x11.cpp @@ -30,6 +30,7 @@ #include "base/main.h" #include "backends/intern.h" #include "backends/platform/x11/x11.h" +#include "backends/plugins/posix/posix-provider.h" #include <stdio.h> #include <assert.h> @@ -62,6 +63,10 @@ int main(int argc, char *argv[]) { g_system = OSystem_X11::create(0, 0); assert(g_system); +#ifdef DYNAMIC_MODULES + PluginManager::instance().addPluginProvider(new POSIXPluginProvider()); +#endif + // Invoke the actual ScummVM main entry point: int res = scummvm_main(argc, argv); g_system->quit(); // TODO: Consider removing / replacing this! diff --git a/backends/plugins/dc/dc-provider.cpp b/backends/plugins/dc/dc-provider.cpp index bf7a607d99..46e4b84674 100644 --- a/backends/plugins/dc/dc-provider.cpp +++ b/backends/plugins/dc/dc-provider.cpp @@ -77,6 +77,7 @@ public: if (_dlHandle) { if (dlclose(_dlHandle) != 0) warning("Failed unloading plugin '%s' (%s)", _filename.c_str(), dlerror()); + _dlHandle = 0; } } }; diff --git a/backends/plugins/posix/posix-provider.cpp b/backends/plugins/posix/posix-provider.cpp index 52bc7751b1..395968918b 100644 --- a/backends/plugins/posix/posix-provider.cpp +++ b/backends/plugins/posix/posix-provider.cpp @@ -70,6 +70,7 @@ public: if (_dlHandle) { if (dlclose(_dlHandle) != 0) warning("Failed unloading plugin '%s' (%s)", _filename.c_str(), dlerror()); + _dlHandle = 0; } } }; diff --git a/backends/plugins/win32/win32-provider.cpp b/backends/plugins/win32/win32-provider.cpp index 5eb607dc71..b88f900027 100644 --- a/backends/plugins/win32/win32-provider.cpp +++ b/backends/plugins/win32/win32-provider.cpp @@ -71,6 +71,7 @@ public: if (_dlHandle) { if (!FreeLibrary((HMODULE)_dlHandle)) warning("Failed unloading plugin '%s'", _filename.c_str()); + _dlHandle = 0; } } }; |