aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorMax Horn2006-06-24 08:07:48 +0000
committerMax Horn2006-06-24 08:07:48 +0000
commitd210b19aec69d34711e5d473e6e4e5081955b02e (patch)
tree3346e4ab55138bffc74c614faf862bcff10b896c /backends
parent72a4747dd64461e4bca819f5a246c84518b7ff8d (diff)
downloadscummvm-rg350-d210b19aec69d34711e5d473e6e4e5081955b02e.tar.gz
scummvm-rg350-d210b19aec69d34711e5d473e6e4e5081955b02e.tar.bz2
scummvm-rg350-d210b19aec69d34711e5d473e6e4e5081955b02e.zip
Move backends/fs/fs.h and .cpp to common/fs/fs.h and .cpp
Rationale: backend implementations belong to backends/, but portable APIs meant to be used by high level code is for common / sound / graphics / ... (compare also with backends/midi vs. sound/mididrv.h) svn-id: r23274
Diffstat (limited to 'backends')
-rw-r--r--backends/dc/selector.cpp2
-rw-r--r--backends/fs/abstract-fs.h2
-rw-r--r--backends/fs/amigaos4/amigaos4-fs.cpp1
-rw-r--r--backends/fs/dc/dc-fs.cpp1
-rw-r--r--backends/fs/fs.cpp143
-rw-r--r--backends/fs/fs.h172
-rw-r--r--backends/fs/gp32/gp32-fs.cpp1
-rw-r--r--backends/fs/morphos/abox-fs.cpp1
-rw-r--r--backends/fs/palmos/palmos-fs.cpp1
-rw-r--r--backends/fs/posix/posix-fs.cpp1
-rw-r--r--backends/fs/ps2/ps2-fs.cpp1
-rw-r--r--backends/fs/psp/psp_fs.cpp1
-rw-r--r--backends/fs/symbian/symbian-fs.cpp1
-rw-r--r--backends/fs/windows/windows-fs.cpp1
-rw-r--r--backends/module.mk1
-rw-r--r--backends/wince/CELauncherDialog.h4
16 files changed, 3 insertions, 331 deletions
diff --git a/backends/dc/selector.cpp b/backends/dc/selector.cpp
index 2932e36065..5aa5829da8 100644
--- a/backends/dc/selector.cpp
+++ b/backends/dc/selector.cpp
@@ -25,7 +25,7 @@
#include <common/scummsys.h>
#include <base/engine.h>
#include <base/plugins.h>
-#include <backends/fs/fs.h>
+#include <common/fs.h>
#include "dc.h"
#include "icon.h"
#include "label.h"
diff --git a/backends/fs/abstract-fs.h b/backends/fs/abstract-fs.h
index fb4f83216b..9b3e473103 100644
--- a/backends/fs/abstract-fs.h
+++ b/backends/fs/abstract-fs.h
@@ -25,7 +25,7 @@
#include "common/array.h"
#include "common/str.h"
-#include "backends/fs/fs.h"
+#include "common/fs.h"
class AbstractFilesystemNode;
diff --git a/backends/fs/amigaos4/amigaos4-fs.cpp b/backends/fs/amigaos4/amigaos4-fs.cpp
index e4eca97713..d87e7d6497 100644
--- a/backends/fs/amigaos4/amigaos4-fs.cpp
+++ b/backends/fs/amigaos4/amigaos4-fs.cpp
@@ -38,7 +38,6 @@
#include "base/engine.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#define ENTER() /* debug(6, "Enter") */
#define LEAVE() /* debug(6, "Leave") */
diff --git a/backends/fs/dc/dc-fs.cpp b/backends/fs/dc/dc-fs.cpp
index 7a3289e971..479beb538f 100644
--- a/backends/fs/dc/dc-fs.cpp
+++ b/backends/fs/dc/dc-fs.cpp
@@ -24,7 +24,6 @@
#include "common/stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <ronin/cdfs.h>
#include <stdio.h>
diff --git a/backends/fs/fs.cpp b/backends/fs/fs.cpp
deleted file mode 100644
index 2daa362196..0000000000
--- a/backends/fs/fs.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2002-2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#include "common/stdafx.h"
-
-#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
-#include "common/util.h"
-
-
-FilesystemNode::FilesystemNode(AbstractFilesystemNode *realNode) {
- _realNode = realNode;
- _refCount = new int(1);
-}
-
-FilesystemNode::FilesystemNode() {
- _realNode = 0;
- _refCount = 0;
-}
-
-FilesystemNode::FilesystemNode(const FilesystemNode &node) {
- _realNode = node._realNode;
- _refCount = node._refCount;
- if (_refCount)
- ++(*_refCount);
-}
-
-FilesystemNode::FilesystemNode(const Common::String &p) {
- if (p.empty() || p == ".")
- _realNode = AbstractFilesystemNode::getCurrentDirectory();
- else
- _realNode = AbstractFilesystemNode::getNodeForPath(p);
- _refCount = new int(1);
-}
-
-FilesystemNode::~FilesystemNode() {
- decRefCount();
-}
-
-void FilesystemNode::decRefCount() {
- if (_refCount) {
- assert(*_refCount > 0);
- --(*_refCount);
- if (*_refCount == 0) {
- delete _refCount;
- delete _realNode;
- }
- }
-}
-
-FilesystemNode &FilesystemNode::operator =(const FilesystemNode &node) {
- if (node._refCount)
- ++(*node._refCount);
-
- decRefCount();
-
- _realNode = node._realNode;
- _refCount = node._refCount;
-
- return *this;
-}
-
-FilesystemNode FilesystemNode::getParent() const {
- if (_realNode == 0)
- return *this;
-
- AbstractFilesystemNode *node = _realNode->parent();
- if (node == 0) {
- return *this;
- } else {
- return FilesystemNode(node);
- }
-}
-
-FilesystemNode FilesystemNode::getChild(const String &name) const {
- if (_realNode == 0)
- return *this;
-
- assert(_realNode->isDirectory());
- AbstractFilesystemNode *node = _realNode->child(name);
- return FilesystemNode(node);
-}
-
-bool FilesystemNode::listDir(FSList &fslist, ListMode mode) const {
- if (!_realNode || !_realNode->isDirectory())
- return false;
-
- AbstractFSList tmp;
-
- if (!_realNode->listDir(tmp, mode))
- return false;
-
- fslist.clear();
- for (AbstractFSList::iterator i = tmp.begin(); i != tmp.end(); ++i) {
- fslist.push_back(FilesystemNode(*i));
- }
-
- return true;
-}
-
-Common::String FilesystemNode::displayName() const {
- assert(_realNode);
- return _realNode->displayName();
-}
-
-bool FilesystemNode::isDirectory() const {
- if (_realNode == 0)
- return false;
- return _realNode->isDirectory();
-}
-
-Common::String FilesystemNode::path() const {
- assert(_realNode);
- return _realNode->path();
-}
-
-
-bool FilesystemNode::operator< (const FilesystemNode& node) const
-{
- if (isDirectory() && !node.isDirectory())
- return true;
- if (!isDirectory() && node.isDirectory())
- return false;
- return scumm_stricmp(displayName().c_str(), node.displayName().c_str()) < 0;
-}
diff --git a/backends/fs/fs.h b/backends/fs/fs.h
deleted file mode 100644
index 0e271b5fc9..0000000000
--- a/backends/fs/fs.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2002-2006 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#ifndef BACKENDS_FS_H
-#define BACKENDS_FS_H
-
-#include "common/array.h"
-#include "common/str.h"
-
-class FilesystemNode;
-class AbstractFilesystemNode;
-
-
-/**
- * List of multiple file system nodes. E.g. the contents of a given directory.
- * This is subclass instead of just a typedef so that we can use forward
- * declarations of it in other places.
- */
-class FSList : public Common::Array<FilesystemNode> {};
-
-
-/*
- * FilesystemNode provides an abstraction for file pathes, allowing for portable
- * file system browsing. To this ends, multiple or single roots have to be supported
- * (compare Unix with a single root, Windows with multiple roots C:, D:, ...).
- *
- * To this end, we abstract away from paths; implementations can be based on
- * paths (and it's left to them whether / or \ or : is the path separator :-);
- * but it is also possible to use inodes or vrefs (MacOS 9) or anything else.
- *
- * NOTE: Backends still have to provide a way to extract a path from a FSIntern
- *
- * You may ask now: "isn't this cheating? Why do we go through all this when we use
- * a path in the end anyway?!?".
- * Well, for once as long as we don't provide our own file open/read/write API, we
- * still have to use fopen(). Since all our targets already support fopen(), it should
- * be possible to get a fopen() compatible string for any file system node.
- *
- * Secondly, with this abstraction layer, we still avoid a lot of complications based on
- * differences in FS roots, different path separators, or even systems with no real
- * paths (MacOS 9 doesn't even have the notion of a "current directory").
- * And if we ever want to support devices with no FS in the classical sense (Palm...),
- * we can build upon this.
- */
-class FilesystemNode {
- typedef Common::String String;
-private:
- AbstractFilesystemNode *_realNode;
- int *_refCount;
-
- FilesystemNode(AbstractFilesystemNode *realNode);
-
-public:
- /**
- * Flag to tell listDir() which kind of files to list.
- */
- enum ListMode {
- kListFilesOnly = 1,
- kListDirectoriesOnly = 2,
- kListAll = 3
- };
-
- /**
- * Create a new invalid FilesystemNode. In other words, isValid() for that
- * node returns false, and if you try to get it's path, an assert is
- * triggered.
- */
- FilesystemNode();
-
- /**
- * Create a new FilesystemNode referring to the specified path. This is
- * the counterpart to the path() method.
- *
- * If path is empty or equals ".", then a node representing the "current
- * directory" will be created. If that is not possible (since e.g. the
- * operating system doesn't support the concept), some other directory is
- * used (usually the root directory).
- */
- FilesystemNode(const String &path);
-
- /**
- * Copy constructor.
- */
- FilesystemNode(const FilesystemNode &node);
-
- /**
- * Destructor.
- */
- virtual ~FilesystemNode();
-
- /**
- * Copy operator.
- */
- FilesystemNode &operator =(const FilesystemNode &node);
-
- /**
- * Get the parent node of this node. If this node has no parent node,
- * then it returns a duplicate of this node.
- */
- FilesystemNode getParent() const;
-
- /**
- * Fetch a child node of this node, with the given name. Only valid for
- * directory nodes (an assertion is triggered otherwise). If no no child
- * node with the given name exists, an invalid node is returned.
- */
- FilesystemNode getChild(const String &name) const;
-
- /**
- * Return a list of child nodes of this directory node. If called on a node
- * that does not represent a directory, false is returned.
- * @return true if succesful, false otherwise (e.g. when the directory does not exist).
- * @todo Rename this to listChildren or getChildren.
- */
- virtual bool listDir(FSList &fslist, ListMode mode = kListDirectoriesOnly) const;
-
- /**
- * Return a human readable string for this node, usable for display (e.g.
- * in the GUI code). Do *not* rely on it being usable for anything else,
- * like constructing paths!
- * @return the display name
- */
- virtual String displayName() const;
-
- /**
- * Is this node pointing to a directory?
- * @todo Currently we assume that a valid node that is not a directory
- * automatically is a file (ignoring things like symlinks). That might
- * actually be OK... but we could still add an isFile method. Or even replace
- * isValid and isDirectory by a getType() method that can return values like
- * kDirNodeType, kFileNodeType, kInvalidNodeType.
- */
- virtual bool isDirectory() const;
-
- /**
- * Return a string representation of the file which can be passed to fopen(),
- * and is suitable for archiving (i.e. writing to the config file).
- * This will usually be a 'path' (hence the name of the method), but can
- * be anything that fulfilly the above criterions.
- */
- virtual String path() const;
-
- /**
- * Compare the name of this node to the name of another. Directories
- * go before normal files.
- */
- bool operator< (const FilesystemNode& node) const;
-
-protected:
- void decRefCount();
-};
-
-
-#endif
diff --git a/backends/fs/gp32/gp32-fs.cpp b/backends/fs/gp32/gp32-fs.cpp
index 41900f71f6..9e59a8ccdd 100644
--- a/backends/fs/gp32/gp32-fs.cpp
+++ b/backends/fs/gp32/gp32-fs.cpp
@@ -26,7 +26,6 @@
#include "stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
class GP32FilesystemNode : public AbstractFilesystemNode {
protected:
diff --git a/backends/fs/morphos/abox-fs.cpp b/backends/fs/morphos/abox-fs.cpp
index a51a683773..33a54b514e 100644
--- a/backends/fs/morphos/abox-fs.cpp
+++ b/backends/fs/morphos/abox-fs.cpp
@@ -27,7 +27,6 @@
#include "base/engine.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
/*
* Implementation of the ScummVM file system API based on the MorphOS A-Box API.
diff --git a/backends/fs/palmos/palmos-fs.cpp b/backends/fs/palmos/palmos-fs.cpp
index e1effd0838..6163689e63 100644
--- a/backends/fs/palmos/palmos-fs.cpp
+++ b/backends/fs/palmos/palmos-fs.cpp
@@ -23,7 +23,6 @@
#include "common/stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp
index 3fa7711ccd..cd5d0209b8 100644
--- a/backends/fs/posix/posix-fs.cpp
+++ b/backends/fs/posix/posix-fs.cpp
@@ -24,7 +24,6 @@
#include "common/stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#ifdef MACOSX
#include <sys/types.h>
diff --git a/backends/fs/ps2/ps2-fs.cpp b/backends/fs/ps2/ps2-fs.cpp
index 9fe021f355..6c4e218c01 100644
--- a/backends/fs/ps2/ps2-fs.cpp
+++ b/backends/fs/ps2/ps2-fs.cpp
@@ -20,7 +20,6 @@
*/
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <kernel.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/backends/fs/psp/psp_fs.cpp b/backends/fs/psp/psp_fs.cpp
index 893e4b7310..d0bf07f85a 100644
--- a/backends/fs/psp/psp_fs.cpp
+++ b/backends/fs/psp/psp_fs.cpp
@@ -26,7 +26,6 @@
#include "base/engine.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <sys/stat.h>
#include <unistd.h>
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index 6be8302f98..aa8e854125 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -25,7 +25,6 @@
#if defined (__SYMBIAN32__)
#include "common/stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <dirent.h>
#include <eikenv.h>
diff --git a/backends/fs/windows/windows-fs.cpp b/backends/fs/windows/windows-fs.cpp
index d37d2501d9..4c5cd44f49 100644
--- a/backends/fs/windows/windows-fs.cpp
+++ b/backends/fs/windows/windows-fs.cpp
@@ -23,7 +23,6 @@
#include "common/stdafx.h"
#include "backends/fs/abstract-fs.h"
-#include "backends/fs/fs.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
diff --git a/backends/module.mk b/backends/module.mk
index 491c338c32..e59d76cb88 100644
--- a/backends/module.mk
+++ b/backends/module.mk
@@ -1,7 +1,6 @@
MODULE := backends
MODULE_OBJS := \
- fs/fs.o \
fs/posix/posix-fs.o \
fs/morphos/abox-fs.o \
fs/windows/windows-fs.o \
diff --git a/backends/wince/CELauncherDialog.h b/backends/wince/CELauncherDialog.h
index 7cb54a3f56..e2d85da8dc 100644
--- a/backends/wince/CELauncherDialog.h
+++ b/backends/wince/CELauncherDialog.h
@@ -23,10 +23,8 @@
#ifndef CELAUNCHERDIALOG
#define CELAUNCHERDIALOG
-#include "backends/fs/fs.h"
-
#include "base/plugins.h"
-
+#include "common/fs.h"
#include "gui/launcher.h"
class CELauncherDialog : public GUI::LauncherDialog {