From 4e63968994aec8d402f41733686002e77d906647 Mon Sep 17 00:00:00 2001 From: Chris Apers Date: Sat, 4 Nov 2006 16:22:58 +0000 Subject: Fixed and updated Palm save manager svn-id: r24602 --- backends/platform/PalmOS/Src/be_base.cpp | 5 +- backends/platform/PalmOS/Src/be_save.cpp | 95 +------------------------------- backends/platform/PalmOS/Src/be_save.h | 34 ++++++++++++ backends/saves/default/default-saves.cpp | 2 +- 4 files changed, 38 insertions(+), 98 deletions(-) create mode 100755 backends/platform/PalmOS/Src/be_save.h (limited to 'backends') diff --git a/backends/platform/PalmOS/Src/be_base.cpp b/backends/platform/PalmOS/Src/be_base.cpp index 503f9fe8a4..b1e16c62ee 100644 --- a/backends/platform/PalmOS/Src/be_base.cpp +++ b/backends/platform/PalmOS/Src/be_base.cpp @@ -23,10 +23,9 @@ */ #include "be_base.h" +#include "be_save.h" #include "common/config-file.h" #include "common/config-manager.h" - -#include "backends/saves/default/default-saves.h" #include "backends/timer/default/default-timer.h" #include "sound/mixer.h" @@ -101,7 +100,7 @@ void OSystem_PalmBase::initBackend() { // Create the savefile manager, if none exists yet (we check for this to // allow subclasses to provide their own). if (_saveMgr == 0) { - _saveMgr = new DefaultSaveFileManager(); + _saveMgr = new PalmSaveFileManager(); } // Create and hook up the mixer, if none exists yet (we check for this to diff --git a/backends/platform/PalmOS/Src/be_save.cpp b/backends/platform/PalmOS/Src/be_save.cpp index 074e13347d..dcad1c7a6c 100644 --- a/backends/platform/PalmOS/Src/be_save.cpp +++ b/backends/platform/PalmOS/Src/be_save.cpp @@ -24,90 +24,7 @@ #include "be_base.h" #include "common/savefile.h" - -// SaveFile class - -class PalmSaveFile : public Common::SaveFile { -private: - FILE *fh; -public: - PalmSaveFile(const char *filename, bool saveOrLoad) { - fh = ::fopen(filename, (saveOrLoad? "wb" : "rb")); - } - ~PalmSaveFile() { - if (fh) ::fclose(fh); - } - - bool eos() const { return feof(fh) != 0; } - bool ioFailed() const { return ferror(fh) != 0; } - void clearIOFailed() { clearerr(fh); } - - bool isOpen() const { return fh != NULL; } - - uint32 read(void *buf, uint32 size); - uint32 write(const void *buf, uint32 size); - - uint32 pos() const { - assert(fh); - return ftell(fh); - } - uint32 size() const { - assert(fh); - uint32 oldPos = ftell(fh); - fseek(fh, 0, SEEK_END); - uint32 length = ftell(fh); - fseek(fh, oldPos, SEEK_SET); - return length; - } - void seek(int32 offs, int whence = SEEK_SET) { - assert(fh); - fseek(fh, offs, whence); - } -}; - -uint32 PalmSaveFile::read(void *buf, uint32 size) { - // we must return the size, where fread return nitems upon success ( 1 <=> size) - if (fh) return (::fread(buf, 1, size, fh)); - return 0; -} - -uint32 PalmSaveFile::write(const void *buf, uint32 size) { - // we must return the size, where fwrite return nitems upon success ( 1 <=> size) - if (fh) return ::fwrite(buf, 1, size, fh); - return 0; -} - - - - - -// SaveFileManager class - -class PalmSaveFileManager : public Common::SaveFileManager { -public: - virtual Common::OutSaveFile *openForSaving(const char *filename) { - return openSavefile(filename, true); - } - virtual Common::InSaveFile *openForLoading(const char *filename) { - return openSavefile(filename, false); - } - - Common::SaveFile *openSavefile(const char *filename, bool saveOrLoad); - void listSavefiles(const char *prefix, bool *marks, int num); - -protected: - Common::SaveFile *makeSaveFile(const char *filename, bool saveOrLoad); -}; - -Common::SaveFile *PalmSaveFileManager::openSavefile(const char *filename, bool saveOrLoad) { - char buf[256]; - - strcpy(buf, getSavePath()); - strcat(buf, "/"); - strcat(buf, filename); - - return makeSaveFile(buf, saveOrLoad); -} +#include "be_save.h" void PalmSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num) { FileRef fileRef; @@ -147,13 +64,3 @@ void PalmSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num VFSFileClose(fileRef); } - -Common::SaveFile *PalmSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) { - PalmSaveFile *sf = new PalmSaveFile(filename, saveOrLoad); - - if (!sf->isOpen()) { - delete sf; - sf = 0; - } - return sf; -} diff --git a/backends/platform/PalmOS/Src/be_save.h b/backends/platform/PalmOS/Src/be_save.h new file mode 100755 index 0000000000..8a11389e8b --- /dev/null +++ b/backends/platform/PalmOS/Src/be_save.h @@ -0,0 +1,34 @@ +/* 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 BACKEND_SAVES_PALM_H +#define BACKEND_SAVES_PALM_H + +#include "common/stdafx.h" +#include "saves/default/default-saves.h" + +class PalmSaveFileManager : public DefaultSaveFileManager { +public: + void listSavefiles(const char *prefix, bool *marks, int num); +}; + +#endif diff --git a/backends/saves/default/default-saves.cpp b/backends/saves/default/default-saves.cpp index 36eb5a3dfc..d62cdb6cb0 100644 --- a/backends/saves/default/default-saves.cpp +++ b/backends/saves/default/default-saves.cpp @@ -161,7 +161,7 @@ static void join_paths(const char *filename, const char *directory, if (buf[dirLen-1] != ':' && buf[dirLen-1] != '/') #endif -#if !defined(__GP32__) && !defined(PALMOS_MODE) +#if !defined(__GP32__) strncat(buf, "/", bufsize-1); // prevent double / #endif } -- cgit v1.2.3