[Scummvm-cvs-logs] SF.net SVN: scummvm:[34709] scummvm/trunk

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue Sep 30 18:34:46 CEST 2008


Revision: 34709
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34709&view=rev
Author:   fingolfin
Date:     2008-09-30 16:34:38 +0000 (Tue, 30 Sep 2008)

Log Message:
-----------
Modified FilePluginProvider to use FSNodes (instead of raw filenames / paths) in its API

Modified Paths:
--------------
    scummvm/trunk/backends/plugins/dc/dc-provider.cpp
    scummvm/trunk/backends/plugins/dc/dc-provider.h
    scummvm/trunk/backends/plugins/posix/posix-provider.cpp
    scummvm/trunk/backends/plugins/posix/posix-provider.h
    scummvm/trunk/backends/plugins/sdl/sdl-provider.cpp
    scummvm/trunk/backends/plugins/sdl/sdl-provider.h
    scummvm/trunk/backends/plugins/win32/win32-provider.cpp
    scummvm/trunk/backends/plugins/win32/win32-provider.h
    scummvm/trunk/base/plugins.cpp
    scummvm/trunk/base/plugins.h

Modified: scummvm/trunk/backends/plugins/dc/dc-provider.cpp
===================================================================
--- scummvm/trunk/backends/plugins/dc/dc-provider.cpp	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/dc/dc-provider.cpp	2008-09-30 16:34:38 UTC (rev 34709)
@@ -27,6 +27,7 @@
 
 #include "backends/plugins/dc/dc-provider.h"
 #include "backends/plugins/dynamic-plugin.h"
+#include "common/fs.h"
 
 #include "dcloader.h"
 
@@ -83,12 +84,13 @@
 };
 
 
-Plugin* DCPluginProvider::createPlugin(const Common::String &filename) const {
-	return new DCPlugin(filename);
+Plugin* DCPluginProvider::createPlugin(const Common::FilesystemNode &node) const {
+	return new DCPlugin(node.getPath());
 }
 
-bool DCPluginProvider::isPluginFilename(const Common::String &filename) const {
+bool DCPluginProvider::isPluginFilename(const Common::FilesystemNode &node) const {
 	// Check the plugin suffix
+	Common::String filename = node.getName();
 	if (!filename.hasSuffix(".PLG"))
 		return false;
 

Modified: scummvm/trunk/backends/plugins/dc/dc-provider.h
===================================================================
--- scummvm/trunk/backends/plugins/dc/dc-provider.h	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/dc/dc-provider.h	2008-09-30 16:34:38 UTC (rev 34709)
@@ -32,9 +32,9 @@
 
 class DCPluginProvider : public FilePluginProvider {
 protected:
-	Plugin* createPlugin(const Common::String &filename) const;
+	Plugin* createPlugin(const Common::FilesystemNode &node) const;
 
-	bool isPluginFilename(const Common::String &filename) const;
+	bool isPluginFilename(const Common::FilesystemNode &node) const;
 
 	virtual void addCustomDirectories(Common::StringList &dirs) const {
 		dirs.push_back("/");

Modified: scummvm/trunk/backends/plugins/posix/posix-provider.cpp
===================================================================
--- scummvm/trunk/backends/plugins/posix/posix-provider.cpp	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/posix/posix-provider.cpp	2008-09-30 16:34:38 UTC (rev 34709)
@@ -27,6 +27,7 @@
 
 #include "backends/plugins/posix/posix-provider.h"
 #include "backends/plugins/dynamic-plugin.h"
+#include "common/fs.h"
 
 #include <dlfcn.h>
 
@@ -78,8 +79,8 @@
 };
 
 
-Plugin* POSIXPluginProvider::createPlugin(const Common::String &filename) const {
-	return new POSIXPlugin(filename);
+Plugin* POSIXPluginProvider::createPlugin(const Common::FilesystemNode &node) const {
+	return new POSIXPlugin(node.getPath());
 }
 
 

Modified: scummvm/trunk/backends/plugins/posix/posix-provider.h
===================================================================
--- scummvm/trunk/backends/plugins/posix/posix-provider.h	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/posix/posix-provider.h	2008-09-30 16:34:38 UTC (rev 34709)
@@ -32,7 +32,7 @@
 
 class POSIXPluginProvider : public FilePluginProvider {
 protected:
-	Plugin* createPlugin(const Common::String &filename) const;
+	Plugin* createPlugin(const Common::FilesystemNode &node) const;
 };
 
 #endif // defined(DYNAMIC_MODULES) && defined(UNIX)

Modified: scummvm/trunk/backends/plugins/sdl/sdl-provider.cpp
===================================================================
--- scummvm/trunk/backends/plugins/sdl/sdl-provider.cpp	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/sdl/sdl-provider.cpp	2008-09-30 16:34:38 UTC (rev 34709)
@@ -27,6 +27,7 @@
 
 #include "backends/plugins/sdl/sdl-provider.h"
 #include "backends/plugins/dynamic-plugin.h"
+#include "common/fs.h"
 
 #include "SDL.h"
 #include "SDL_loadso.h"
@@ -78,8 +79,8 @@
 };
 
 
-Plugin* SDLPluginProvider::createPlugin(const Common::String &filename) const {
-	return new SDLPlugin(filename);
+Plugin* SDLPluginProvider::createPlugin(const Common::FilesystemNode &node) const {
+	return new SDLPlugin(node.getPath());
 }
 
 

Modified: scummvm/trunk/backends/plugins/sdl/sdl-provider.h
===================================================================
--- scummvm/trunk/backends/plugins/sdl/sdl-provider.h	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/sdl/sdl-provider.h	2008-09-30 16:34:38 UTC (rev 34709)
@@ -32,7 +32,7 @@
 
 class SDLPluginProvider : public FilePluginProvider {
 protected:
-	Plugin* createPlugin(const Common::String &filename) const;
+	Plugin* createPlugin(const Common::FilesystemNode &node) const;
 };
 
 #endif // defined(DYNAMIC_MODULES) && defined(UNIX)

Modified: scummvm/trunk/backends/plugins/win32/win32-provider.cpp
===================================================================
--- scummvm/trunk/backends/plugins/win32/win32-provider.cpp	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/win32/win32-provider.cpp	2008-09-30 16:34:38 UTC (rev 34709)
@@ -27,6 +27,7 @@
 
 #include "backends/plugins/win32/win32-provider.h"
 #include "backends/plugins/dynamic-plugin.h"
+#include "common/fs.h"
 
 #include <windows.h>
 
@@ -96,12 +97,13 @@
 };
 
 
-Plugin* Win32PluginProvider::createPlugin(const Common::String &filename) const {
-	return new Win32Plugin(filename);
+Plugin* Win32PluginProvider::createPlugin(const Common::FilesystemNode &node) const {
+	return new Win32Plugin(node.getPath());
 }
 
-bool Win32PluginProvider::isPluginFilename(const Common::String &filename) const {
+bool Win32PluginProvider::isPluginFilename(const Common::FilesystemNode &node) const {
 	// Check the plugin suffix
+	Common::String filename = node.getName();
 	if (!filename.hasSuffix(".dll"))
 		return false;
 

Modified: scummvm/trunk/backends/plugins/win32/win32-provider.h
===================================================================
--- scummvm/trunk/backends/plugins/win32/win32-provider.h	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/backends/plugins/win32/win32-provider.h	2008-09-30 16:34:38 UTC (rev 34709)
@@ -32,9 +32,9 @@
 
 class Win32PluginProvider : public FilePluginProvider {
 protected:
-	Plugin* createPlugin(const Common::String &filename) const;
+	Plugin* createPlugin(const Common::FilesystemNode &node) const;
 
-	bool isPluginFilename(const Common::String &filename) const;
+	bool isPluginFilename(const Common::FilesystemNode &node) const;
 
 	virtual void addCustomDirectories(Common::StringList &dirs) const {}
 };

Modified: scummvm/trunk/base/plugins.cpp
===================================================================
--- scummvm/trunk/base/plugins.cpp	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/base/plugins.cpp	2008-09-30 16:34:38 UTC (rev 34709)
@@ -231,8 +231,8 @@
 		}
 
 		for (Common::FSList::const_iterator i = files.begin(); i != files.end(); ++i) {
-			if (isPluginFilename(i->getName())) {
-				pl.push_back(createPlugin(i->getPath()));
+			if (isPluginFilename(*i)) {
+				pl.push_back(createPlugin(*i));
 			}
 		}
 	}
@@ -240,7 +240,9 @@
 	return pl;
 }
 
-bool FilePluginProvider::isPluginFilename(const Common::String &filename) const {
+bool FilePluginProvider::isPluginFilename(const Common::FilesystemNode &node) const {
+	Common::String filename = node.getName();
+
 #ifdef PLUGIN_PREFIX
 	// Check the plugin prefix
 	if (!filename.hasPrefix(PLUGIN_PREFIX))

Modified: scummvm/trunk/base/plugins.h
===================================================================
--- scummvm/trunk/base/plugins.h	2008-09-30 16:23:35 UTC (rev 34708)
+++ scummvm/trunk/base/plugins.h	2008-09-30 16:34:38 UTC (rev 34709)
@@ -32,6 +32,7 @@
 
 namespace Common {
 	class FSList;
+	class FilesystemNode;
 }
 
 
@@ -238,19 +239,19 @@
 	 * Subclasses of FilePluginProvider have to at least overload this method.
 	 * If the file is not found, or does not contain loadable code, 0 is returned instead.
 	 *
-	 * @param filename	the name of the loadable code module
+	 * @param node	the FSNode of the loadable code module
 	 * @return	a pointer to a Plugin instance, or 0 if an error occurred.
 	 */
-	virtual Plugin *createPlugin(const Common::String &filename) const = 0;
+	virtual Plugin *createPlugin(const Common::FilesystemNode &node) const = 0;
 
 	/**
-	 * Check if the supplied filename corresponds to a loadable plugin file in
-	 * the current platform.
+	 * Check if the supplied file corresponds to a loadable plugin file in
+	 * the current platform. Usually, this will just check the file name.
 	 *
-	 * @param filename	the name of the file to check
+	 * @param node	the FSNode of the file to check
 	 * @return	true if the filename corresponds to a plugin, false otherwise
 	 */
-	virtual bool isPluginFilename(const Common::String &filename) const;
+	virtual bool isPluginFilename(const Common::FilesystemNode &node) const;
 
 	/**
 	 * Optionally add to the list of directories to be searched for


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list