aboutsummaryrefslogtreecommitdiff
path: root/backends/fs/ds
diff options
context:
space:
mode:
authorJames Brown2006-07-09 13:10:45 +0000
committerJames Brown2006-07-09 13:10:45 +0000
commit0e66c43c709c81d2f7351f3b53bca74e6896a0be (patch)
treee50bd67dcf5669b559927b4ddab57ceaa4b1e59d /backends/fs/ds
parentf35f4a4d1c41a8d186621b912b985dd5d796632a (diff)
downloadscummvm-rg350-0e66c43c709c81d2f7351f3b53bca74e6896a0be.tar.gz
scummvm-rg350-0e66c43c709c81d2f7351f3b53bca74e6896a0be.tar.bz2
scummvm-rg350-0e66c43c709c81d2f7351f3b53bca74e6896a0be.zip
Fix some more duplicated files, and unify case for rpc include
svn-id: r23459
Diffstat (limited to 'backends/fs/ds')
-rw-r--r--backends/fs/ds/ds-fs.cpp868
-rw-r--r--backends/fs/ds/ds-fs.h178
2 files changed, 0 insertions, 1046 deletions
diff --git a/backends/fs/ds/ds-fs.cpp b/backends/fs/ds/ds-fs.cpp
index 8032267e83..e2f0065e1d 100644
--- a/backends/fs/ds/ds-fs.cpp
+++ b/backends/fs/ds/ds-fs.cpp
@@ -866,871 +866,3 @@ AbstractFilesystemNode* AbstractFilesystemNode::getNodeForPath(const String& pat
return new DS::DSFileSystemNode(path);
}
}
-/* ScummVMDS - Scumm Interpreter DS Port
- * Copyright (C) 2002-2004 The ScummVM project and Neil Millstone
- *
- * 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.
- *
- */
-
-
-#include "stdafx.h"
-#include "str.h"
-#include "fs.h"
-#include "common/util.h"
-#include <NDS/ARM9/console.h> //basic print funcionality
-#include "ds-fs.h"
-#include "dsmain.h"
-#include "gba_nds_fat.h"
-
-namespace DS {
-
-//////////////////////////////////////////////////////////////
-// DSFileSystemNode - Flash ROM file system using Zip files
-//////////////////////////////////////////////////////////////
-
-ZipFile* DSFileSystemNode::_zipFile = NULL;
-char currentDir[128];
-
-DSFileSystemNode::DSFileSystemNode() {
- _displayName = "ds:/";
- _path = "ds:/";
- _isValid = true;
- _isDirectory = true;
- _path = "ds:/";
-
-/* if (!_archive) {
- _archive = (GBFS_FILE *) find_first_gbfs_file(scummdata);
- if (!_archive) consolePrintf("No GBFS archive found!\n");
- }*/
-
- if (!_zipFile) {
- _zipFile = new ZipFile();
- }
-}
-
-DSFileSystemNode::DSFileSystemNode(const String& path) {
-// consolePrintf("--%s ",path.c_str());
-
- char disp[128];
- char* pathStr = (char *) path.c_str();
-
-
- int lastSlash = 3;
- for (int r = 0; r < (int) strlen(pathStr) - 1; r++) {
- if (path[r] == '\\') {
- lastSlash = r;
- }
- }
-
- strcpy(disp, pathStr + lastSlash + 1);
-
- _displayName = String(disp);
- _path = path;
-// _isValid = true;
-// _isDirectory = false;
-
-
-
- if (!strncmp(pathStr, "ds:/", 4)) {
- pathStr += 4;
- }
-
-
- if (*pathStr == '\0') {
- _isValid = true;
- _isDirectory = true;
- return;
- }
-
- _zipFile->setAllFilesVisible(true);
- if (_zipFile->findFile(pathStr)) {
- _isValid = true;
- _isDirectory = _zipFile->isDirectory();
- } else {
- _isValid = false;
- _isDirectory = false;
- }
- _zipFile->setAllFilesVisible(false);
-
-// consolePrintf("%s - Found: %d, Dir: %d\n", pathStr, _isValid, _isDirectory);
-}
-
-DSFileSystemNode::DSFileSystemNode(const String& path, bool isDir) {
-// consolePrintf("--%s ",path.c_str());
-
- char disp[128];
- char* pathStr = (char *) path.c_str();
- int lastSlash = 3;
- for (int r = 0; r < (int) strlen(pathStr) - 1; r++) {
- if (path[r] == '\\') {
- lastSlash = r;
- }
- }
-
- strcpy(disp, pathStr + lastSlash + 1);
-
- _displayName = String(disp);
- _path = path;
- _isValid = true;
- _isDirectory = isDir;
-
-// consolePrintf("Found: %d, Dir: %d\n", _isValid, _isDirectory);
-}
-
-DSFileSystemNode::DSFileSystemNode(const DSFileSystemNode* node) {
-
-}
-
-AbstractFilesystemNode* DSFileSystemNode::parent() const {
-// consolePrintf("parent\n");
- DSFileSystemNode *p;
-
- if (_path != "ds:/") {
- char *path = (char *) _path.c_str();
- int lastSlash = 4;
-
- for (int r = 4; r < (int) strlen((char *) path); r++) {
- if (path[r] == '\\') {
- lastSlash = r;
- }
- }
-
- p = new DSFileSystemNode(String(path, lastSlash));
- ((DSFileSystemNode *) (p))->_isDirectory = true;
- } else {
- p = new DSFileSystemNode();
- }
-
- return p;
-
-}
-
-
-AbstractFilesystemNode *DSFileSystemNode::child(const Common::String& name) const {
- if (_path.lastChar() == '\\') {
- return new DSFileSystemNode(_path + name);
- } else {
- return new DSFileSystemNode(_path + "\\" + name);
- }
-
- return NULL;
-}
-
-
-bool DSFileSystemNode::listDir(AbstractFSList &dirList, ListMode mode) const {
-// consolePrintf("Listdir\n");
-
-
-// consolePrintf("Directory\n");
-
-
- char temp[128];
- strcpy(temp, _path.c_str());
-
-// consolePrintf("This dir: %s\n", temp);
-
- if ((temp[0] == 'd') && (temp[1] == 's') && (temp[2] == ':') && (temp[3] == '/')) {
- if (strlen(temp) != 4) {
- _zipFile->changeDirectory(&temp[4]);
- } else {
- _zipFile->changeToRoot();
-
-/* // This is the root dir, so add the RAM folder
- DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/ram");
- dsfsn->_isDirectory = true;
- dirList->push_back(wrap(dsfsn));*/
- }
- } else {
- _zipFile->changeDirectory(temp);
- }
-
-
-
- if (_zipFile->restartFile()) {
- do {
- char name[128];
- _zipFile->getFileName(name);
-
-// consolePrintf("file: %s\n", name);
- if ( (_zipFile->isDirectory() && ((mode == FilesystemNode::kListDirectoriesOnly) || (mode == FilesystemNode::kListAll)) )
- || (!_zipFile->isDirectory() && ((mode == FilesystemNode::kListFilesOnly) || (mode == FilesystemNode::kListAll)) ) )
- {
- DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/" + String(name), _zipFile->isDirectory());
- dsfsn->_isDirectory = _zipFile->isDirectory();
- dirList.push_back((dsfsn));
- }
-
- } while (_zipFile->skipFile());
- }
-
- return true;
-}
-
-
-
-
-/////////////////////////////////////////////////////////////////////////
-// GBAMPFileSystemNode - File system using GBA Movie Player and CF card
-/////////////////////////////////////////////////////////////////////////
-
-GBAMPFileSystemNode::GBAMPFileSystemNode() {
- _displayName = "mp:/";
- _path = "mp:/";
- _isValid = true;
- _isDirectory = true;
- _path = "mp:/";
-}
-
-GBAMPFileSystemNode::GBAMPFileSystemNode(const String& path) {
-// consolePrintf("'%s'",path.c_str());
-
- char disp[128];
- char* pathStr = (char *) path.c_str();
- int lastSlash = 3;
- for (int r = 0; r < (int) strlen(pathStr) - 1; r++) {
- if ((path[r] == '\\') || (path[r] == '/')) {
- lastSlash = r;
- }
- }
-
- strcpy(disp, pathStr + lastSlash + 1);
-
- char check[128];
- int success;
-
- memset(check, 0, 128);
- if (strlen(pathStr) > 3) {
- strcpy(check, pathStr + 3);
- if (check[strlen(check) - 1] == '/') {
- check[strlen(check) - 1] = 0;
- }
- success = FAT_FileExists(check);
- } else {
- success = FT_DIR;
- }
-// consolePrintf("Path: %s (%d)\n", check, success);
-
- _displayName = String(disp);
- _path = path;
- _isValid = success == FT_FILE;
- _isDirectory = success == FT_DIR;
-}
-
-GBAMPFileSystemNode::GBAMPFileSystemNode(const String& path, bool isDirectory) {
-// consolePrintf("'%s'",path.c_str());
-
- char disp[128];
- char* pathStr = (char *) path.c_str();
- int lastSlash = 3;
- for (int r = 0; r < (int) strlen(pathStr) - 1; r++) {
- if ((path[r] == '\\') || (path[r] == '/')) {
- lastSlash = r;
- }
- }
-
- strcpy(disp, pathStr + lastSlash + 1);
-
- _displayName = String(disp);
- _path = path;
- _isValid = true;
- _isDirectory = isDirectory;
-}
-
-
-GBAMPFileSystemNode::GBAMPFileSystemNode(const GBAMPFileSystemNode* node) {
-
-}
-
-
-AbstractFilesystemNode* GBAMPFileSystemNode::parent() const {
-// consolePrintf("parent\n");
- GBAMPFileSystemNode *p;
-
- if (_path != "mp:/") {
- char *path = (char *) _path.c_str();
- int lastSlash = 4;
-
- for (int r = 4; r < (int) strlen((char *) path); r++) {
- if (path[r] == '/') {
- lastSlash = r;
- }
- }
-
- p = new GBAMPFileSystemNode(String(path, lastSlash));
- p->_isDirectory = true;
- } else {
- p = new GBAMPFileSystemNode();
- }
-
- return p;
-
-}
-
-AbstractFilesystemNode *GBAMPFileSystemNode::child(const Common::String& name) const {
- if (_path.lastChar() == '\\') {
- return new DSFileSystemNode(_path + name);
- } else {
- return new DSFileSystemNode(_path + "\\" + name);
- }
-
- return NULL;
-}
-
-bool GBAMPFileSystemNode::listDir(AbstractFSList& dirList, ListMode mode) const {
-// consolePrintf("Listdir\n");
-
- enum { TYPE_NO_MORE = 0, TYPE_FILE = 1, TYPE_DIR = 2 };
-
- char temp[128], fname[128], *path, *pathTemp;
- strcpy(temp, _path.c_str());
-
- path = temp + 3;
-
- pathTemp = path;
- while (*pathTemp) {
- if (*pathTemp == '\\') {
- *pathTemp = '/';
- }
- pathTemp++;
- }
-
-
-// consolePrintf("This dir: %s\n", path);
- FAT_chdir(path);
-
- int entryType = FAT_FindFirstFile(fname);
-
- while (entryType != TYPE_NO_MORE) {
-
- if ( ((entryType == TYPE_DIR) && ((mode == FilesystemNode::kListDirectoriesOnly) || (mode == FilesystemNode::kListAll)))
- || ((entryType == TYPE_FILE) && ((mode == FilesystemNode::kListFilesOnly) || (mode == FilesystemNode::kListAll))) ) {
- GBAMPFileSystemNode* dsfsn;
-
- if (strcmp(fname, ".") && strcmp(fname, "..")) {
-
- if (!strcmp(path, "/")) {
- dsfsn = new GBAMPFileSystemNode("mp:" + String(path) + String(fname), entryType == TYPE_DIR);
- } else {
- dsfsn = new GBAMPFileSystemNode("mp:" + String(path) + String("/") + String(fname), entryType == TYPE_DIR);
- }
-
-// dsfsn->_isDirectory = entryType == DIR;
- dirList.push_back((dsfsn));
- }
-
-
- } else {
-// consolePrintf("Skipping %s\n", fname);
- }
-
- entryType = FAT_FindNextFile(fname);
- }
-
-// consolePrintf("No more");
-
- FAT_chdir("/");
-
- return true;
-}
-
-
-// Stdio replacements
-#define MAX_FILE_HANDLES 32
-
-bool inited = false;
-DS::fileHandle handle[MAX_FILE_HANDLES];
-
-FILE* std_fopen(const char* name, const char* mode) {
-
-
-
- if (!inited) {
- for (int r = 0; r < MAX_FILE_HANDLES; r++) {
- handle[r].used = false;
- }
- inited = true;
- currentDir[0] = '\0';
- }
-
-
-
-
- char* realName = (char *) name;
-
- // Remove file system prefix
- if ((name[0] == 'd') && (name[1] == 's') && (name[2] == ':') && (name[3] == '/')) {
- realName += 4;
- }
-
- if ((name[0] == 'm') && (name[1] == 'p') && (name[2] == ':') && (name[3] == '/')) {
- realName += 4;
- }
-
-// consolePrintf("Open file:");
-// consolePrintf("'%s', [%s]", realName, mode);
-
-
- if (DS::isGBAMPAvailable()) {
- FAT_chdir("/");
-
- char* p = realName;
- while (*p) {
- if (*p == '\\') *p = '/';
- p++;
- }
-
- FAT_FILE* result = FAT_fopen(realName, mode);
-
- if (result == 0) {
-// consolePrintf("Error code %d\n", result);
- //consolePrintf("Opening file %s\n", realName);
- } else {
-// consolePrintf("Opened file %d\n", result);
- }
-// MT_memoryReport();
-
- return (fileHandle *) result;
- }
-
-
- // Fail to open file for writing. It's in ROM!
-
- // Allocate a file handle
- int r = 0;
- while (handle[r].used) r++;
-
- if (strchr(mode, 'w')) {
-// consolePrintf("Writing %s\n", realName);
- handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, true);
- } else {
-// consolePrintf("Reading %s\n", realName);
- handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, false);
- }
-
-
- if (handle[r].sramFile) {
- handle[r].used = true;
- handle[r].pos = 0;
- handle[r].data = NULL;
- handle[r].size = handle[r].sramFile->getSize();
-// consolePrintf("Found it");
- return &handle[r];
- }
-
-// consolePrintf("Not in SRAM!");
-
- char* data;
-
- ZipFile* zip = DSFileSystemNode::getZip();
- if (!zip) {
-// consolePrintf("No zip yet!");
- return NULL;
- }
-
- // Grab the data if it exists
-
- zip->setAllFilesVisible(true);
-
- if (currentDir[0] != 0) {
- char nameWithPath[128];
- sprintf(nameWithPath, "%s\%s", currentDir, realName);
- strcpy(realName, nameWithPath);
- }
-
-// consolePrintf("fopen(%s, %s)\n", realName, name);
-
- if (zip->findFile(realName)) {
- data = zip->getFile();
- zip->setAllFilesVisible(false);
-
- // Allocate a file handle
- int r = 0;
- while (handle[r].used) r++;
-
-
- handle[r].used = true;
- handle[r].pos = 0;
- handle[r].data = data;
- handle[r].size = zip->getFileSize();
-
-// consolePrintf("Opened file %d: %s (%s) ", r, realName, name);
- return &handle[r];
- } else {
- zip->setAllFilesVisible(false);
-// consolePrintf("Not found: %s (%s) ", realName, name);
- return NULL;
- }
-}
-void std_fclose(FILE* handle) {
-
- if (DS::isGBAMPAvailable()) {
- FAT_fclose((FAT_FILE *) handle);
- return;
- }
-
- handle->used = false;
- if (handle->sramFile) {
- delete handle->sramFile;
- handle->sramFile = NULL;
- }
-}
-
-size_t std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle) {
-
-// consolePrintf("fread %d,%d %d ", size, numItems, ptr);
-
-
-
- if (DS::isGBAMPAvailable()) {
-
-
- int bytes = FAT_fread((void *) ptr, size, numItems, (FAT_FILE *) handle);
- if (!std_feof(handle)) {
- return numItems;
- } else {
-// consolePrintf("Read past end of file: %d read out of %d\n", bytes / size, numItems);
- return bytes / size;
- }
- return numItems;
-
-/* int item = 0;
- u8* data = (u8 *) ptr;
- while ((item < numItems) && (!FAT_feof((FAT_FILE *) handle))) {
-
-
- int bytes = 0;
- while ((bytes < size) && (!FAT_feof((FAT_FILE *) handle))) {
- *data++ = FAT_fgetc((FAT_FILE *) handle);
- bytes++;
- }
-
- item++;
-
- }
-
- return item;*/
-
-
- int items = 0;
-
- //for (int r = 0; r < numItems; r++) {
- if (!std_feof(handle)) {
-
-
-
-/* for (int t = 0; t < size; t++) {
- if (feof(handle)) eof = true;
- *(((char *) (ptr)) + r * size + t) = getc(handle);
- }*/
- int left = size * numItems;;
- int bytesRead = -1;
- while ((left > 0) && (!FAT_feof((FAT_FILE *) handle))) {
- int amount = left > 8192? 8192: left;
-// do {
- bytesRead = FAT_fread((void *) ptr, 1, amount, (FAT_FILE *) handle);
- /* if (bytesRead == 0) {
- consolePrintf("Pos:%d items:%d num:%d amount:%d read:%d\n", ftell(handle), items, numItems, amount, bytesRead);
- left++;
-
- int pos = ftell(handle);
-
- fseek(handle, 0, SEEK_SET);
- int c = getc(handle);
- fseek(handle, pos - 1024, SEEK_SET);
- fread(ptr, 1024, 1, handle);
- swiWaitForVBlank();
- //while (true);
- }*/
- //} while (bytesRead == 0);
- left -= bytesRead;
- ptr = ((char *) (ptr)) + bytesRead;
- }
-
- items = numItems - (left / size);
-
-
-
-
-// FAT_fread((void *) ptr, size, 1, ((int) (handle)) - 1);
- // ptr = ((char *) (ptr)) + size;
-
- }
- //}
-
-// consolePrintf("...done %d \n", items)
-
- return items;
-
- }
-
- if (handle->sramFile) {
- int bytes = 0;
- int result = 1;
- //consolePrintf("fread size=", size * numItems);
- for (int r = 0; (r < (s32) size * (s32) numItems) && (result > 0); r++) {
- result = handle->sramFile->read((void *) ( ((char *) (ptr)) + r), 1);
- bytes += result;
- //consolePrintf("'%d',", ((char *) (ptr))[0]);
- }
-
- handle->pos += bytes;
-
- return bytes / size;
- }
-
-
- if (handle->pos + size * numItems > handle->size) {
- numItems = (handle->size - handle->pos) / size;
- if (numItems < 0) numItems = 0;
- }
-
-// consolePrintf("read %d ", size * numItems);
-
- memcpy((void *) ptr, handle->data + handle->pos, size * numItems);
-
- handle->pos += size * numItems;
-
-
- return numItems;
-}
-
-size_t std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle) {
- if ((handle == stdin)) return 0;
-
- if ((handle == stderr) || (handle == stdout)) {
-// consolePrintf((char *) ptr);
- return size;
- }
-
- //consolePrintf("fwrite size=%d\n", size * numItems);
-
- if (DS::isGBAMPAvailable()) {
-
- FAT_fwrite(((char *) (ptr)), size, numItems, (FAT_FILE *) handle);
- return numItems;
-
- int length = size * numItems;
- int pos = 0;
-
- while (pos < length) {
- int amount = length > 512? 512: length;
-
- FAT_fwrite(((char *) (ptr)) + pos, 1, amount, (FAT_FILE *) handle);
- length -= amount;
- pos += amount;
- }
-
- return numItems;
- }
-
-
- if (handle->sramFile) {
- handle->sramFile->write(ptr, size);
- return size;
- } else {
- return 0;
- }
-}
-
-void std_fprintf(FILE* handle, const char* fmt, ...) {
- consolePrintf(fmt);
-}
-
-bool std_feof(FILE* handle) {
-// consolePrintf("feof ");
-
- if (DS::isGBAMPAvailable()) {
- return FAT_feof((FAT_FILE *) handle);
- }
-
- if (handle->sramFile) {
- return handle->sramFile->eos();
- }
-
-// consolePrintf("feof %s", handle->pos >= handle->size? "true": "false");
- return handle->pos >= handle->size;
-}
-
-void std_fflush(FILE* handle) {
-// consolePrintf("fflush ");
-}
-
-char* std_fgets(char* str, int size, FILE* file) {
-// consolePrintf("fgets file=%d ", file);
-
- if (DS::isGBAMPAvailable()) {
-
- char* s = str;
- while ((*s++ = std_getc(file)) >= 32) {
-// consolePrintf("%d ", *s);
- }
- *s = 0;
-
-// consolePrintf("Read:%s\n", str);
-
- return str;
- }
-
-
- if (file->sramFile) {
- file->pos--;
- int p = -1;
- do {
- file->pos++;
- p++;
- file->sramFile->read((char *) &str[p], 1);
-// consolePrintf("%d,", str[p]);
- } while ((str[p] >= 32) && (!feof(file)) && (p < size));
- str[p + 1] = 0;
- file->pos++;
-// consolePrintf("Read:%s\n", str);
- return str;
- }
-
- return NULL;
-}
-
-long int std_ftell(FILE* handle) {
-
- if (DS::isGBAMPAvailable()) {
- return FAT_ftell((FAT_FILE *) handle);
- }
-
- return handle->pos;
-}
-
-int std_fseek(FILE* handle, long int offset, int whence) {
-// consolePrintf("fseek %d %d ", offset, whence);
-
- if (DS::isGBAMPAvailable()) {
- return FAT_fseek((FAT_FILE *) handle, offset, whence);
- }
-
-
- switch (whence) {
- case SEEK_CUR: {
- handle->pos += offset;
- break;
- }
-
- case SEEK_SET: {
- handle->pos = offset;
- break;
- }
-
- case SEEK_END: {
- handle->pos = handle->size + offset;
- break;
- }
-
- default: {
- handle->pos = offset;
- break;
- }
-
- }
-
- return 0;
-}
-
-void std_clearerr(FILE* handle) {
-// consolePrintf("clearerr ");
-}
-
-int std_getc(FILE* handle) {
-
- if (DS::isGBAMPAvailable()) {
- char c;
- FAT_fread(&c, 1, 1, (FAT_FILE *) handle);
-
- return c;
- }
-
-// consolePrintf("fgetc ");
- return 0; // Not supported yet
-}
-
-char* std_getcwd(char* dir, int dunno) {
-// consolePrintf("getcwd ");
- dir[0] = '\0';
- return dir; // Not supported yet
-}
-
-void std_cwd(char* dir) {
- char buffer[128];
- strcpy(buffer, dir);
- char* realName = buffer;
-
- if (DS::isGBAMPAvailable()) {
- if ((strlen(dir) >= 4) && (dir[0] == 'm') && (dir[1] == 'p') && (dir[2] == ':') && (dir[3] == '/')) {
- realName += 4;
- }
-
- // consolePrintf("Real cwd:%d\n", realName);
-
- char* p = realName;
- while (*p) {
- if (*p == '\\') *p = '/';
- p++;
- }
-
- // consolePrintf("Real cwd:%d\n", realName);
- FAT_chdir(realName);
- } else {
- if ((strlen(dir) >= 4) && (dir[0] == 'd') && (dir[1] == 's') && (dir[2] == ':') && (dir[3] == '/')) {
- realName += 4;
- }
-
- char* p = realName;
- while (*p) {
- if (*p == '\\') *p = '/';
- p++;
- }
-
- strcpy(currentDir, realName);
- if (*(currentDir + strlen(currentDir) - 1) == '/') {
- *(currentDir + strlen(currentDir) - 1) = '\0';
- }
- consolePrintf("CWD: %s\n", currentDir);
- }
-}
-
-int std_ferror(FILE* handle) {
- return 0;
-}
-
-} // namespace DS
-
-// These functions are added to AbstractFileSystemNode and are therefore outside
-// the DS namespace.
-
-AbstractFilesystemNode *AbstractFilesystemNode::getCurrentDirectory() {
-// consolePrintf("New node");
-
- if (DS::isGBAMPAvailable()) {
- return new DS::GBAMPFileSystemNode();
- } else {
- return new DS::DSFileSystemNode();
- }
-}
-
-AbstractFilesystemNode* AbstractFilesystemNode::getNodeForPath(const String& path) {
- if (DS::isGBAMPAvailable()) {
- return new DS::GBAMPFileSystemNode(path);
- } else {
- return new DS::DSFileSystemNode(path);
- }
-} \ No newline at end of file
diff --git a/backends/fs/ds/ds-fs.h b/backends/fs/ds/ds-fs.h
index 9b5f1fbad0..b9957a5c69 100644
--- a/backends/fs/ds/ds-fs.h
+++ b/backends/fs/ds/ds-fs.h
@@ -176,181 +176,3 @@ int std_ferror(FILE* handle);
}
#endif
-/* ScummVMDS - Scumm Interpreter DS Port
- * Copyright (C) 2002-2004 The ScummVM project and Neil Millstone
- *
- * 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.
- *
- */
-
-#ifndef _DS_FS_H
-#define _DS_FS_H
-
-
-#include "stdafx.h"
-#include "common/array.h"
-#include "common/str.h"
-
-//#include <NDS/ARM9/console.h>
-#include "fs.h"
-#include "zipreader.h"
-#include "ramsave.h"
-#include "scummconsole.h"
-#include "gba_nds_fat.h"
-#include "backends/fs/abstract-fs.h"
-//#include "backends/fs/fs.h"
-
-// Fix name clash with FOTAQ engine, cutaway.h
-#undef MAX_FILENAME_LENGTH
-// This class is used when a Flash cart is in use
-
-namespace DS {
-
-class DSFileSystemNode : public AbstractFilesystemNode {
-protected:
- static ZipFile* _zipFile;
-
- typedef class Common::String String;
-
- String _displayName;
- bool _isDirectory;
- bool _isValid;
- String _path;
- int _refCountVal;
-
-public:
- DSFileSystemNode();
- DSFileSystemNode(const String &path);
- DSFileSystemNode(const DSFileSystemNode *node);
- DSFileSystemNode(const String& path, bool isDir);
-
- virtual String displayName() const { return _displayName; }
- virtual bool isValid() const { return _isValid; }
- virtual bool isDirectory() const { return _isDirectory; }
- virtual String path() const { return _path; }
-
- virtual bool listDir(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly) const;
- virtual AbstractFilesystemNode *parent() const;
- virtual AbstractFilesystemNode *clone() const { return new DSFileSystemNode(this); }
- virtual AbstractFilesystemNode *child(const Common::String& name) const;
- static ZipFile* getZip() { return _zipFile; }
-};
-
-
-// This class is used when the GBAMP (GBA Movie Player) is used with a CompactFlash card
-
-class GBAMPFileSystemNode : public AbstractFilesystemNode {
-protected:
- typedef class Common::String String;
-
- String _displayName;
- bool _isDirectory;
- bool _isValid;
- String _path;
-
- int _refCountVal;
-
-public:
- GBAMPFileSystemNode();
- GBAMPFileSystemNode(const String &path);
- GBAMPFileSystemNode(const String &path, bool isDirectory);
- GBAMPFileSystemNode(const GBAMPFileSystemNode *node);
-
- virtual String displayName() const { return _displayName; }
- virtual bool isValid() const { return _isValid; }
- virtual bool isDirectory() const { return _isDirectory; }
- virtual String path() const { return _path; }
- virtual bool listDir(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly) const;
- virtual AbstractFilesystemNode *parent() const;
- virtual AbstractFilesystemNode *clone() const { return new GBAMPFileSystemNode(this); }
- virtual AbstractFilesystemNode *child(const Common::String& name) const;
-
-};
-
-
-// File reading
-
-
-struct fileHandle {
- int pos;
- bool used;
- char* data;
- int size;
-
- DSSaveFile* sramFile;
-};
-
-// These functions replease the standard library functions of the same name.
-// As this header is included after the standard one, I have the chance to #define
-// all of these to my own code.
-//
-// A #define is the only way, as redefinig the functions would cause linker errors.
-
-// These functions need to be #undef'ed, as their definition is done with #includes
-#undef feof
-#undef stderr
-#undef stdout
-#undef stdin
-#undef clearerr
-#undef getc
-#undef ferror
-
-#define stdout ((DS::fileHandle*) -1)
-#define stderr ((DS::fileHandle*) -2)
-#define stdin ((DS::fileHandle*) -3)
-
-#define FILE DS::fileHandle
-//#define size_t int
-
-//#define FAT_chdir FAT_CWD
-
-FILE* std_fopen(const char* name, const char* mode);
-void std_fclose(FILE* handle);
-size_t std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle);
-size_t std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle);
-void std_fprintf(FILE* handle, const char* fmt, ...);
-bool std_feof(FILE* handle);
-void std_fflush(FILE* handle);
-char* std_fgets(char* str, int size, FILE* file);
-long int std_ftell(FILE* handle);
-int std_fseek(FILE* handle, long int offset, int whence);
-void std_clearerr(FILE* handle);
-int std_getc(FILE* handle);
-char* std_getcwd(char* dir, int dunno);
-void std_cwd(char* dir);
-int std_ferror(FILE* handle);
-
-// Only functions used in the ScummVM source have been defined here!
-#define fopen(name, mode) DS::std_fopen(name, mode)
-#define fclose(handle) DS::std_fclose(handle)
-#define fread(ptr, size, items, file) DS::std_fread(ptr, size, items, file)
-#define fwrite(ptr, size, items, file) DS::std_fwrite(ptr, size, items, file)
-#define feof(handle) DS::std_feof(handle)
-//#define fprintf(file, fmt, ...) DS::fprintf(file, fmt, ##__VA_ARGS__)
-#define fprintf(file, fmt, ...) { char str[128]; sprintf(str, fmt, ##__VA_ARGS__); DS::std_fwrite(str, strlen(str), 1, file); }
-#define printf(fmt, ...) consolePrintf(fmt, ##__VA_ARGS__)
-#define fflush(file) DS::std_fflush(file)
-#define fgets(str, size, file) DS::std_fgets(str, size, file)
-#define ftell(handle) DS::std_ftell(handle)
-#define fseek(handle, offset, whence) DS::std_fseek(handle, offset, whence)
-#define clearerr(handle) DS::std_clearerr(handle)
-#define getc(handle) DS::std_getc(handle)
-#define getcwd(dir, dunno) DS::std_getcwd(dir, dunno)
-#define ferror(handle) DS::std_ferror(handle)
-
-
-}
-
-#endif