diff options
-rw-r--r-- | backends/base-backend.cpp | 4 | ||||
-rw-r--r-- | backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp | 58 | ||||
-rw-r--r-- | backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h | 41 | ||||
-rw-r--r-- | backends/module.mk | 1 | ||||
-rw-r--r-- | backends/platform/samsungtv/main.cpp | 9 | ||||
-rw-r--r-- | backends/platform/samsungtv/samsungtv.cpp | 39 | ||||
-rw-r--r-- | backends/platform/samsungtv/samsungtv.h | 13 | ||||
-rw-r--r-- | backends/platform/sdl/main.cpp | 1 | ||||
-rw-r--r-- | backends/platform/sdl/posix/posix.cpp | 3 | ||||
-rw-r--r-- | backends/saves/posix/posix-saves.cpp | 2 |
10 files changed, 128 insertions, 43 deletions
diff --git a/backends/base-backend.cpp b/backends/base-backend.cpp index f349cc8005..d742261f0c 100644 --- a/backends/base-backend.cpp +++ b/backends/base-backend.cpp @@ -61,12 +61,8 @@ void BaseBackend::fillScreen(uint32 col) { #if defined(UNIX) -#if defined(SAMSUNGTV) -#define DEFAULT_CONFIG_FILE "/dtv/usb/sda1/.scummvmrc" -#else #define DEFAULT_CONFIG_FILE ".scummvmrc" #endif -#endif #if !defined(UNIX) #define DEFAULT_CONFIG_FILE "scummvm.ini" diff --git a/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp new file mode 100644 index 0000000000..b929b5fe27 --- /dev/null +++ b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp @@ -0,0 +1,58 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#include "backends/platform/samsungtv/samsungtv.h" +#include "backends/events/samsungtvsdl/samsungtvsdl-events.h" +#include "backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h" + +#if defined(SAMSUNGTV) + +SamsungTVSdlGraphicsManager::SamsungTVSdlGraphicsManager(SdlEventSource *sdlEventSource) + : SdlGraphicsManager(sdlEventSource) { +} + +bool SamsungTVSdlGraphicsManager::hasFeature(OSystem::Feature f) { + return + (f == OSystem::kFeatureAspectRatioCorrection) || + (f == OSystem::kFeatureCursorHasPalette); +} + +void SamsungTVSdlGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) { + switch (f) { + case OSystem::kFeatureAspectRatioCorrection: + SdlGraphicsManager::setFeatureState(f, enable); + break; + default: + break; + } +} + +bool SamsungTVSdlGraphicsManager::getFeatureState(OSystem::Feature f) { + switch (f) { + case OSystem::kFeatureAspectRatioCorrection: + return SdlGraphicsManager::getFeatureState(f); + default: + return false; + } +} + +#endif diff --git a/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h new file mode 100644 index 0000000000..dc65c3a696 --- /dev/null +++ b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h @@ -0,0 +1,41 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#ifndef BACKENDS_GRAPHICS_SAMSUNGTV_H +#define BACKENDS_GRAPHICS_SAMSUNGTV_H + +#if defined(SAMSUNGTV) + +#include "backends/graphics/sdl/sdl-graphics.h" + +class SamsungTVSdlGraphicsManager : public SdlGraphicsManager { +public: + SamsungTVSdlGraphicsManager(SdlEventSource *sdlEventSource); + + bool hasFeature(OSystem::Feature f); + void setFeatureState(OSystem::Feature f, bool enable); + bool getFeatureState(OSystem::Feature f); +}; + +#endif + +#endif diff --git a/backends/module.mk b/backends/module.mk index cd0e2a56de..f669f85ba2 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -31,6 +31,7 @@ MODULE_OBJS := \ graphics/opengl/opengl-graphics.o \ graphics/openglsdl/openglsdl-graphics.o \ graphics/openpandora/op-graphics.o \ + graphics/samsungtvsdl/samsungtvsdl-graphics.o \ graphics/sdl/sdl-graphics.o \ graphics/symbiansdl/symbiansdl-graphics.o \ graphics/wincesdl/wincesdl-graphics.o \ diff --git a/backends/platform/samsungtv/main.cpp b/backends/platform/samsungtv/main.cpp index 3beb97165f..4f3291613d 100644 --- a/backends/platform/samsungtv/main.cpp +++ b/backends/platform/samsungtv/main.cpp @@ -18,11 +18,10 @@ * 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$ - * */ +#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h + #include "backends/platform/samsungtv/samsungtv.h" #include "backends/plugins/sdl/sdl-provider.h" #include "base/main.h" @@ -39,7 +38,7 @@ extern "C" int Game_Main(char *path, char *) { assert(g_system); // Pre initialize the backend - ((OSystem_SDL_SamsungTV *)g_system)->init(); + ((OSystem_POSIX *)g_system)->init(); #ifdef DYNAMIC_MODULES PluginManager::instance().addPluginProvider(new SDLPluginProvider()); @@ -49,7 +48,7 @@ extern "C" int Game_Main(char *path, char *) { int res = scummvm_main(0, 0); // Free OSystem - delete g_system; + delete (OSystem_SDL_SamsungTV *)g_system; return res; } diff --git a/backends/platform/samsungtv/samsungtv.cpp b/backends/platform/samsungtv/samsungtv.cpp index 4d6dca7403..1b978d0121 100644 --- a/backends/platform/samsungtv/samsungtv.cpp +++ b/backends/platform/samsungtv/samsungtv.cpp @@ -18,25 +18,17 @@ * 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 "backends/platform/samsungtv/samsungtv.h" #include "backends/events/samsungtvsdl/samsungtvsdl-events.h" +#include "backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h" #if defined(SAMSUNGTV) OSystem_SDL_SamsungTV::OSystem_SDL_SamsungTV() : - OSystem_POSIX("/dtv/usb/sda1/.scummvmrc") { -} - -bool OSystem_SDL_SamsungTV::hasFeature(Feature f) { - return - (f == OSystem::kFeatureAspectRatioCorrection) || - (f == OSystem::kFeatureCursorHasPalette); + OSystem_POSIX("/mtd_rwarea/.scummvmrc") { } void OSystem_SDL_SamsungTV::initBackend() { @@ -44,27 +36,22 @@ void OSystem_SDL_SamsungTV::initBackend() { if (_eventSource == 0) _eventSource = new SamsungTVSdlEventSource(); + if (_graphicsManager == 0) + _graphicsManager = new SamsungTVSdlGraphicsManager(_eventSource); + // Call parent implementation of this method - OSystem_SDL::initBackend(); + OSystem_POSIX::initBackend(); } -void OSystem_SDL_SamsungTV::setFeatureState(Feature f, bool enable) { - switch (f) { - case OSystem::kFeatureAspectRatioCorrection: - _graphicsManager->setFeatureState(f, enable); - break; - default: - break; - } +void OSystem_SDL_SamsungTV::quit() { + delete this; } -bool OSystem_SDL_SamsungTV::getFeatureState(Feature f) { - switch (f) { - case OSystem::kFeatureAspectRatioCorrection: - return _graphicsManager->getFeatureState(f); - default: - return false; - } +void OSystem_SDL_SamsungTV::fatalError() { + delete this; + // FIXME + warning("fatal error"); + for (;;) {} } #endif diff --git a/backends/platform/samsungtv/samsungtv.h b/backends/platform/samsungtv/samsungtv.h index bccb6baee9..b7a78a96cd 100644 --- a/backends/platform/samsungtv/samsungtv.h +++ b/backends/platform/samsungtv/samsungtv.h @@ -18,14 +18,13 @@ * 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 PLATFORM_SDL_SAMSUNGTV_H #define PLATFORM_SDL_SAMSUNGTV_H +#if defined(SAMSUNGTV) + #include "backends/platform/sdl/posix/posix.h" class OSystem_SDL_SamsungTV : public OSystem_POSIX { @@ -33,10 +32,10 @@ public: OSystem_SDL_SamsungTV(); virtual void initBackend(); - - virtual bool hasFeature(Feature f); - virtual void setFeatureState(Feature f, bool enable); - virtual bool getFeatureState(Feature f); + virtual void quit(); + virtual void fatalError(); }; #endif + +#endif diff --git a/backends/platform/sdl/main.cpp b/backends/platform/sdl/main.cpp index 14cfaaee57..871fb2c531 100644 --- a/backends/platform/sdl/main.cpp +++ b/backends/platform/sdl/main.cpp @@ -36,6 +36,7 @@ !defined(DINGUX) && \ !defined(CAANOO) && \ !defined(LINUXMOTO) && \ + !defined(SAMSUNGTV) && \ !defined(OPENPANDORA) #include "backends/platform/sdl/sdl.h" diff --git a/backends/platform/sdl/posix/posix.cpp b/backends/platform/sdl/posix/posix.cpp index 71a88265a0..e15c09fec7 100644 --- a/backends/platform/sdl/posix/posix.cpp +++ b/backends/platform/sdl/posix/posix.cpp @@ -81,6 +81,9 @@ Common::WriteStream *OSystem_POSIX::createLogFile() { #else logFile += "/.scummvm"; #endif +#ifdef SAMSUNGTV + logFile = "/mtd_ram"; +#endif struct stat sb; diff --git a/backends/saves/posix/posix-saves.cpp b/backends/saves/posix/posix-saves.cpp index be870abb6e..8d2ca363b3 100644 --- a/backends/saves/posix/posix-saves.cpp +++ b/backends/saves/posix/posix-saves.cpp @@ -48,7 +48,7 @@ POSIXSaveFileManager::POSIXSaveFileManager() { // Register default savepath based on HOME #if defined(SAMSUNGTV) - ConfMan.registerDefault("savepath", "/dtv/usb/sda1/.scummvm"); + ConfMan.registerDefault("savepath", "/mtd_wiselink/scummvm/savegames"); #else Common::String savePath; const char *home = getenv("HOME"); |