From 3afe9c0b9ee24a5c0389f338affc1612e3d19675 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 11 Mar 2008 17:24:34 +0000 Subject: Added OSystem_SDL::getFilesystemFactory() svn-id: r31107 --- backends/platform/sdl/sdl.cpp | 28 ++++++++++++++++++++++++++++ backends/platform/sdl/sdl.h | 1 + common/system.cpp | 31 +++++++------------------------ 3 files changed, 36 insertions(+), 24 deletions(-) diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 5ef31f9253..6b785f2409 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -38,6 +38,20 @@ #define SAMPLES_PER_SEC 22050 //#define SAMPLES_PER_SEC 44100 +/* + * Include header files needed for the getFilesystemFactory() method. + */ +#if defined(__amigaos4__) + #include "backends/fs/amigaos4/amigaos4-fs-factory.h" +#elif defined(__SYMBIAN32__) + // TODO: Move this to the symbian source code + #include "backends/fs/symbian/symbian-fs-factory.h" +#elif defined(UNIX) + #include "backends/fs/posix/posix-fs-factory.h" +#elif defined(WIN32) + #include "backends/fs/windows/windows-fs-factory.h" +#endif + static Uint32 timer_handler(Uint32 interval, void *param) { ((DefaultTimerManager *)param)->handler(); @@ -212,6 +226,20 @@ Common::SaveFileManager *OSystem_SDL::getSavefileManager() { return _savefile; } +FilesystemFactory *OSystem_SDL::getFilesystemFactory() { + #if defined(__amigaos4__) + return &AmigaOSFilesystemFactory::instance(); + #elif defined(__SYMBIAN32__) + return &SymbianFilesystemFactory::instance(); + #elif defined(UNIX) + return &POSIXFilesystemFactory::instance(); + #elif defined(WIN32) + return &WindowsFilesystemFactory::instance(); + #else + #error Unknown and unsupported backend in OSystem_SDL::getFilesystemFactory + #endif +} + void OSystem_SDL::setWindowCaption(const char *caption) { SDL_WM_SetCaption(caption, caption); } diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index 1ddd74693c..e77dcbf540 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -196,6 +196,7 @@ public: #endif virtual Common::SaveFileManager *getSavefileManager(); + virtual FilesystemFactory *getFilesystemFactory(); protected: bool _inited; diff --git a/common/system.cpp b/common/system.cpp index 05c56bdd52..73119da9e6 100644 --- a/common/system.cpp +++ b/common/system.cpp @@ -133,15 +133,12 @@ void OSystem::getTimeAndDate(struct tm &t) const { } /* - * All the following includes choose, at compile time, which specific backend will be used - * during the execution of the ScummVM. + * Include header files needed for the getFilesystemFactory() method. * - * TODO: Remove these gradually and instead move the getFilesystemFactory() implementatios - * to the respective backends. + * TODO: Remove these gradually and move the getFilesystemFactory() implementations + * to the respective backends. Then turn it into a pure virtual method of OSystem. */ -#if defined(__amigaos4__) - #include "backends/fs/amigaos4/amigaos4-fs-factory.h" -#elif defined(__DS__) +#if defined(__DS__) #include "backends/fs/ds/ds-fs-factory.h" #elif defined(__GP32__) #include "backends/fs/gp32/gp32-fs-factory.h" @@ -153,20 +150,12 @@ void OSystem::getTimeAndDate(struct tm &t) const { #include "backends/fs/ps2/ps2-fs-factory.h" #elif defined(__PSP__) #include "backends/fs/psp/psp-fs-factory.h" -#elif defined(__SYMBIAN32__) - #include "backends/fs/symbian/symbian-fs-factory.h" -#elif defined(UNIX) - #include "backends/fs/posix/posix-fs-factory.h" -#elif defined(WIN32) - #include "backends/fs/windows/windows-fs-factory.h" #endif FilesystemFactory *OSystem::getFilesystemFactory() { - #if defined(__amigaos4__) - return &AmigaOSFilesystemFactory::instance(); - #elif defined(__DC__) - // The DC port overrides this function... - abort(); + #if defined(__amigaos4__) || defined(__DC__) || defined(__SYMBIAN32__) || defined(UNIX) || defined(WIN32) + // These ports already implement this function, so it should never be called. + return 0; #elif defined(__DS__) return &DSFilesystemFactory::instance(); #elif defined(__GP32__) @@ -179,12 +168,6 @@ FilesystemFactory *OSystem::getFilesystemFactory() { return &Ps2FilesystemFactory::instance(); #elif defined(__PSP__) return &PSPFilesystemFactory::instance(); - #elif defined(__SYMBIAN32__) - return &SymbianFilesystemFactory::instance(); - #elif defined(UNIX) - return &POSIXFilesystemFactory::instance(); - #elif defined(WIN32) - return &WindowsFilesystemFactory::instance(); #else #error Unknown and unsupported backend in OSystem::getFilesystemFactory #endif -- cgit v1.2.3