From 872d672c335febce0c1d5dff3843b00c0016fce2 Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Thu, 2 Jun 2011 10:03:01 +0200 Subject: SDL: Allow building with current SDL 1.3hg --- backends/platform/sdl/sdl-sys.h | 23 ++++++++++++++++++++++- backends/platform/sdl/sdl.cpp | 16 +++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl-sys.h b/backends/platform/sdl/sdl-sys.h index 63bfc58617..ca3c586e03 100644 --- a/backends/platform/sdl/sdl-sys.h +++ b/backends/platform/sdl/sdl-sys.h @@ -27,7 +27,7 @@ // fashion, even on the Symbian port. // Moreover, it contains a workaround for the fact that SDL_rwops.h uses // a FILE pointer in one place, which conflicts with common/forbidden.h. - +// The SDL 1.3 headers also include strings.h #include "common/scummsys.h" @@ -39,6 +39,16 @@ typedef struct { int FAKE; } FAKE_FILE; #define FILE FAKE_FILE #endif +#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcasecmp) +#undef strcasecmp +#define strcasecmp FAKE_strcasecmp +#endif + +#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strncasecmp) +#undef strncasecmp +#define strncasecmp FAKE_strncasecmp +#endif + #if defined(__SYMBIAN32__) #include #else @@ -51,4 +61,15 @@ typedef struct { int FAKE; } FAKE_FILE; #define FILE FORBIDDEN_SYMBOL_REPLACEMENT #endif +#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcasecmp) +#undef strcasecmp +#define strcasecmp FORBIDDEN_SYMBOL_REPLACEMENT +#endif + +#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strncasecmp) +#undef strncasecmp +#define strncasecmp FORBIDDEN_SYMBOL_REPLACEMENT +#endif + + #endif diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index ecaeabf4e1..7972b19689 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -34,7 +34,14 @@ #include "common/textconsole.h" #include "backends/saves/default/default-saves.h" + +// Audio CD support was removed with SDL 1.3 +#if SDL_VERSION_ATLEAST(1, 3, 0) +#include "backends/audiocd/default/default-audiocd.h" +#else #include "backends/audiocd/sdl/sdl-audiocd.h" +#endif + #include "backends/events/sdl/sdl-events.h" #include "backends/mutex/sdl/sdl-mutex.h" #include "backends/timer/sdl/sdl-timer.h" @@ -182,8 +189,15 @@ void OSystem_SDL::initBackend() { _mixerManager->init(); } - if (_audiocdManager == 0) + if (_audiocdManager == 0) { + // Audio CD support was removed with SDL 1.3 +#if SDL_VERSION_ATLEAST(1, 3, 0) + _audiocdManager = new DefaultAudioCDManager(); +#else _audiocdManager = new SdlAudioCDManager(); +#endif + + } // Setup a custom program icon. setupIcon(); -- cgit v1.2.3 From 11cfa0d357193826fdf27b9f6fe07e71038d5eef Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Thu, 2 Jun 2011 10:34:41 +0200 Subject: PS3: Initial version of the PlayStation 3 backend --- backends/platform/sdl/main.cpp | 1 + backends/platform/sdl/module.mk | 6 +++ backends/platform/sdl/posix/posix-main.cpp | 2 +- backends/platform/sdl/ps3/ps3-main.cpp | 49 ++++++++++++++++++ backends/platform/sdl/ps3/ps3.cpp | 79 ++++++++++++++++++++++++++++++ backends/platform/sdl/ps3/ps3.h | 47 ++++++++++++++++++ 6 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 backends/platform/sdl/ps3/ps3-main.cpp create mode 100644 backends/platform/sdl/ps3/ps3.cpp create mode 100644 backends/platform/sdl/ps3/ps3.h (limited to 'backends/platform') diff --git a/backends/platform/sdl/main.cpp b/backends/platform/sdl/main.cpp index 1992bdd3f2..3947d010c4 100644 --- a/backends/platform/sdl/main.cpp +++ b/backends/platform/sdl/main.cpp @@ -34,6 +34,7 @@ !defined(CAANOO) && \ !defined(LINUXMOTO) && \ !defined(SAMSUNGTV) && \ + !defined(PLAYSTATION3) && \ !defined(OPENPANDORA) #include "backends/platform/sdl/sdl.h" diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk index efc5168d5b..e67bf859d6 100644 --- a/backends/platform/sdl/module.mk +++ b/backends/platform/sdl/module.mk @@ -29,6 +29,12 @@ MODULE_OBJS += \ amigaos/amigaos.o endif +ifdef PLAYSTATION3 +MODULE_OBJS += \ + ps3/ps3-main.o \ + ps3/ps3.o +endif + # We don't use rules.mk but rather manually update OBJS and MODULE_DIRS. MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) OBJS := $(MODULE_OBJS) $(OBJS) diff --git a/backends/platform/sdl/posix/posix-main.cpp b/backends/platform/sdl/posix/posix-main.cpp index f78e001398..3bf7a5138a 100644 --- a/backends/platform/sdl/posix/posix-main.cpp +++ b/backends/platform/sdl/posix/posix-main.cpp @@ -22,7 +22,7 @@ #include "common/scummsys.h" -#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) +#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) && !defined(PLAYSTATION3) #include "backends/platform/sdl/posix/posix.h" #include "backends/plugins/sdl/sdl-provider.h" diff --git a/backends/platform/sdl/ps3/ps3-main.cpp b/backends/platform/sdl/ps3/ps3-main.cpp new file mode 100644 index 0000000000..ba548a3749 --- /dev/null +++ b/backends/platform/sdl/ps3/ps3-main.cpp @@ -0,0 +1,49 @@ +/* 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 "common/scummsys.h" + +#include "backends/platform/sdl/ps3/ps3.h" +#include "backends/plugins/sdl/sdl-provider.h" +#include "base/main.h" + +int main(int argc, char *argv[]) { + + // Create our OSystem instance + g_system = new OSystem_PS3(); + assert(g_system); + + // Pre initialize the backend + ((OSystem_PS3 *)g_system)->init(); + +#ifdef DYNAMIC_MODULES + PluginManager::instance().addPluginProvider(new SDLPluginProvider()); +#endif + + // Invoke the actual ScummVM main entry point: + int res = scummvm_main(argc, argv); + + // Free OSystem + delete (OSystem_PS3 *)g_system; + + return res; +} diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp new file mode 100644 index 0000000000..49739b8ba7 --- /dev/null +++ b/backends/platform/sdl/ps3/ps3.cpp @@ -0,0 +1,79 @@ +/* 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. + * + */ + +#define FORBIDDEN_SYMBOL_EXCEPTION_mkdir +#define FORBIDDEN_SYMBOL_EXCEPTION_time_h //On IRIX, sys/stat.h includes sys/time.h +#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h + +#include "common/scummsys.h" +#include "common/config-manager.h" +#include "backends/platform/sdl/ps3/ps3.h" +#include "backends/graphics/surfacesdl/surfacesdl-graphics.h" +#include "backends/saves/default/default-saves.h" +#include "backends/fs/ps3/ps3-fs-factory.h" + +#include +#include + +int access(const char *pathname, int mode) { + struct stat sb; + + if (stat(pathname, &sb) == -1) { + return -1; + } + + return 0; +} + +OSystem_PS3::OSystem_PS3(Common::String baseConfigName) + : _baseConfigName(baseConfigName) { +} + +void OSystem_PS3::init() { + // Initialze File System Factory + _fsFactory = new PS3FilesystemFactory(); + + // Invoke parent implementation of this method + OSystem_SDL::init(); +} + +void OSystem_PS3::initBackend() { + ConfMan.registerDefault("joystick_num", 0); + ConfMan.registerDefault("fullscreen", true); + ConfMan.registerDefault("aspect_ratio", true); + + // Create the savefile manager + if (_savefileManager == 0) + _savefileManager = new DefaultSaveFileManager(PREFIX "/saves"); + + // Invoke parent implementation of this method + OSystem_SDL::initBackend(); +} + +Common::String OSystem_PS3::getDefaultConfigFileName() { + return PREFIX "/" + _baseConfigName; +} + +Common::WriteStream *OSystem_PS3::createLogFile() { + Common::FSNode file(PREFIX "/scummvm.log"); + return file.createWriteStream(); +} diff --git a/backends/platform/sdl/ps3/ps3.h b/backends/platform/sdl/ps3/ps3.h new file mode 100644 index 0000000000..daed7599a9 --- /dev/null +++ b/backends/platform/sdl/ps3/ps3.h @@ -0,0 +1,47 @@ +/* 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 PLATFORM_SDL_PS3_H +#define PLATFORM_SDL_PS3_H + +#include "backends/platform/sdl/sdl.h" + +class OSystem_PS3 : public OSystem_SDL { +public: + // Let the subclasses be able to change _baseConfigName in the constructor + OSystem_PS3(Common::String baseConfigName = "scummvm.ini"); + virtual ~OSystem_PS3() {} + + virtual void init(); + virtual void initBackend(); + +protected: + // Base string for creating the default path and filename + // for the configuration file + Common::String _baseConfigName; + + virtual Common::String getDefaultConfigFileName(); + + virtual Common::WriteStream *createLogFile(); +}; + +#endif -- cgit v1.2.3 From 8bd78b6325213695116c1494c65795406d797b0b Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Thu, 2 Jun 2011 19:43:44 +0200 Subject: PS3: Add a SDL 1.3 mixer, for use with the PS3 backend. SDL 1.3 allows converting from the S16SYS sound format to F32MSB, which is required by the PS3. --- backends/platform/sdl/ps3/ps3.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp index 49739b8ba7..32be580f6e 100644 --- a/backends/platform/sdl/ps3/ps3.cpp +++ b/backends/platform/sdl/ps3/ps3.cpp @@ -30,6 +30,7 @@ #include "backends/graphics/surfacesdl/surfacesdl-graphics.h" #include "backends/saves/default/default-saves.h" #include "backends/fs/ps3/ps3-fs-factory.h" +#include "backends/mixer/sdl13/sdl13-mixer.h" #include #include @@ -65,6 +66,14 @@ void OSystem_PS3::initBackend() { if (_savefileManager == 0) _savefileManager = new DefaultSaveFileManager(PREFIX "/saves"); + // Create the mixer manager + if (_mixer == 0) { + _mixerManager = new Sdl13MixerManager(); + + // Setup and start mixer + _mixerManager->init(); + } + // Invoke parent implementation of this method OSystem_SDL::initBackend(); } -- cgit v1.2.3 From 6633a06519bfc0a826e1e1664b88c4dd413abbeb Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Sat, 4 Jun 2011 12:54:37 +0200 Subject: PS3: Map joypad buttons to features. Enable the virtual keyboard. --- backends/platform/sdl/ps3/ps3.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp index 32be580f6e..16722ccdb7 100644 --- a/backends/platform/sdl/ps3/ps3.cpp +++ b/backends/platform/sdl/ps3/ps3.cpp @@ -30,6 +30,7 @@ #include "backends/graphics/surfacesdl/surfacesdl-graphics.h" #include "backends/saves/default/default-saves.h" #include "backends/fs/ps3/ps3-fs-factory.h" +#include "backends/events/ps3sdl/ps3sdl-events.h" #include "backends/mixer/sdl13/sdl13-mixer.h" #include @@ -58,7 +59,8 @@ void OSystem_PS3::init() { } void OSystem_PS3::initBackend() { - ConfMan.registerDefault("joystick_num", 0); + ConfMan.set("joystick_num", 0); + ConfMan.set("vkeybdpath", PREFIX "/data"); ConfMan.registerDefault("fullscreen", true); ConfMan.registerDefault("aspect_ratio", true); @@ -74,6 +76,10 @@ void OSystem_PS3::initBackend() { _mixerManager->init(); } + // Event source + if (_eventSource == 0) + _eventSource = new PS3SdlEventSource(); + // Invoke parent implementation of this method OSystem_SDL::initBackend(); } -- cgit v1.2.3 From 8a5bda72cca58314c639432d5ab718a70fd42b90 Mon Sep 17 00:00:00 2001 From: Julien Date: Sun, 5 Jun 2011 05:50:40 +0800 Subject: BACKENDS/GRAPHICS: Silence non zero-terminated terminated buffers warnings by initializing the buffers to 0 --- backends/platform/sdl/sdl.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 3f85b1a564..96d65c5eb2 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -413,6 +413,7 @@ void OSystem_SDL::setupIcon() { for (i = 0; i < ncols; i++) { unsigned char code; char color[32]; + memset(color, 0, sizeof(color)); unsigned int col; if (sscanf(scummvm_icon[1 + i], "%c c %s", &code, color) != 2) { warning("Wrong format of scummvm_icon[%d] (%s)", 1 + i, scummvm_icon[1 + i]); -- cgit v1.2.3 From 7fa3a8bbffc625232cd24252cf501e2c2b7b2a55 Mon Sep 17 00:00:00 2001 From: Julien Date: Mon, 6 Jun 2011 01:45:21 +0800 Subject: BACKENDS: Add better error handling to OSystem_Win32::getDefaultConfigFileName() --- backends/platform/sdl/win32/win32.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp index 5b02a20abc..814f1955fe 100644 --- a/backends/platform/sdl/win32/win32.cpp +++ b/backends/platform/sdl/win32/win32.cpp @@ -155,18 +155,31 @@ Common::String OSystem_Win32::getDefaultConfigFileName() { error("Unable to access user profile directory"); strcat(configFile, "\\Application Data"); - CreateDirectory(configFile, NULL); + + // If the directory already exists (as it should in most cases), + // we don't want to fail, but we need to stop on other errors (such as ERROR_PATH_NOT_FOUND) + if (!CreateDirectory(configFile, NULL)) { + if (GetLastError() != ERROR_ALREADY_EXISTS) + error("Cannot create Application data folder"); + } } strcat(configFile, "\\ScummVM"); - CreateDirectory(configFile, NULL); + if (!CreateDirectory(configFile, NULL)) { + if (GetLastError() != ERROR_ALREADY_EXISTS) + error("Cannot create ScummVM application data folder"); + } + strcat(configFile, "\\" DEFAULT_CONFIG_FILE); FILE *tmp = NULL; if ((tmp = fopen(configFile, "r")) == NULL) { // Check windows directory char oldConfigFile[MAXPATHLEN]; - GetWindowsDirectory(oldConfigFile, MAXPATHLEN); + uint ret = GetWindowsDirectory(oldConfigFile, MAXPATHLEN); + if (ret == 0 || ret > MAXPATHLEN) + error("Cannot retrieve the path of the Windows directory"); + strcat(oldConfigFile, "\\" DEFAULT_CONFIG_FILE); if ((tmp = fopen(oldConfigFile, "r"))) { strcpy(configFile, oldConfigFile); @@ -178,7 +191,10 @@ Common::String OSystem_Win32::getDefaultConfigFileName() { } } else { // Check windows directory - GetWindowsDirectory(configFile, MAXPATHLEN); + uint ret = GetWindowsDirectory(configFile, MAXPATHLEN); + if (ret == 0 || ret > MAXPATHLEN) + error("Cannot retrieve the path of the Windows directory"); + strcat(configFile, "\\" DEFAULT_CONFIG_FILE); } -- cgit v1.2.3 From eecd61e33d4c15fcfc1cd9abb72c1e85fcd7a647 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Thu, 23 Jun 2011 10:52:39 -0400 Subject: ANDROID: Allow use of abort() in JNI class --- backends/platform/android/jni.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp index c4daf24e16..e3b4ef7401 100644 --- a/backends/platform/android/jni.cpp +++ b/backends/platform/android/jni.cpp @@ -22,8 +22,9 @@ #if defined(__ANDROID__) -// Allow use of stuff in +// Allow use of stuff in and abort() #define FORBIDDEN_SYMBOL_EXCEPTION_time_h +#define FORBIDDEN_SYMBOL_EXCEPTION_abort // Disable printf override in common/forbidden.h to avoid // clashes with log.h from the Android SDK. -- cgit v1.2.3 From b3d8e426c258cc20cacfa1ab5f4613e40bd10c76 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Thu, 23 Jun 2011 11:00:47 -0400 Subject: WII: Allow use of abort in OSystem_Wii class --- backends/platform/wii/osystem_gfx.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'backends/platform') diff --git a/backends/platform/wii/osystem_gfx.cpp b/backends/platform/wii/osystem_gfx.cpp index 859e3a1395..443e738a4a 100644 --- a/backends/platform/wii/osystem_gfx.cpp +++ b/backends/platform/wii/osystem_gfx.cpp @@ -20,6 +20,7 @@ */ #define FORBIDDEN_SYMBOL_EXCEPTION_printf +#define FORBIDDEN_SYMBOL_EXCEPTION_abort #include -- cgit v1.2.3 From eb8db120b26ed42700e891d9cdd7dd88ce0f26e6 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sat, 25 Jun 2011 01:00:07 +0200 Subject: WINCE: Hide toolbar when returning to game list --- backends/platform/wince/CELauncherDialog.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/wince/CELauncherDialog.cpp b/backends/platform/wince/CELauncherDialog.cpp index 9c832dd585..dd6076e0af 100644 --- a/backends/platform/wince/CELauncherDialog.cpp +++ b/backends/platform/wince/CELauncherDialog.cpp @@ -24,6 +24,7 @@ #define FORBIDDEN_SYMBOL_ALLOW_ALL #include "backends/platform/wince/wince-sdl.h" +#include "backends/graphics/wincesdl/wincesdl-graphics.h" #include "CELauncherDialog.h" @@ -34,6 +35,7 @@ #include "gui/browser.h" #include "gui/message.h" #include "gui/ThemeEval.h" +#include "gui/widgets/list.h" #include "common/config-manager.h" @@ -63,9 +65,13 @@ public: }; CELauncherDialog::CELauncherDialog() : GUI::LauncherDialog() { + ((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->reset_panel(); } void CELauncherDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { + if ((cmd == 'STRT') || (cmd == kListItemActivatedCmd) || (cmd == kListItemDoubleClickedCmd)) { + ((WINCESdlGraphicsManager *)((OSystem_SDL *)g_system)->getGraphicsManager())->init_panel(); + } LauncherDialog::handleCommand(sender, cmd, data); if (cmd == 'ABOU') { CEAboutDialog about; -- cgit v1.2.3 From f300c172f08c8982e451f7d335792e15cbc7f6b6 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sun, 26 Jun 2011 02:09:54 +0200 Subject: WINCE: Fix timer manager --- backends/platform/wince/wince-sdl.cpp | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp index 9b1ffe817c..ec222c6fc1 100644 --- a/backends/platform/wince/wince-sdl.cpp +++ b/backends/platform/wince/wince-sdl.cpp @@ -353,9 +353,9 @@ void drawError(char *error) { } // ******************************************************************************************** -static DefaultTimerManager *_int_timer = NULL; static Uint32 timer_handler_wrapper(Uint32 interval) { - _int_timer->handler(); + DefaultTimerManager *tm = (DefaultTimerManager *)g_system->getTimerManager(); + tm->handler(); return interval; } @@ -379,21 +379,15 @@ void OSystem_WINCE3::initBackend() { ((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager); - - // FIXME: This timer manager is *not accesible* from the outside. - // Instead the timer manager setup by OSystem_SDL is visible on the outside. - // Since the WinCE backend actually seems to work, my guess is that - // SDL_AddTimer works after all and the following code is redundant. - // However it may be, this must be resolved one way or another. - - // Create the timer. CE SDL does not support multiple timers (SDL_AddTimer). + // Create the timer (but remove the timer manager from the SDL backend first). + // CE SDL does not support multiple timers (SDL_AddTimer). // We work around this by using the SetTimer function, since we only use // one timer in scummvm (for the time being) - _int_timer = new DefaultTimerManager(); - //_timerID = NULL; // OSystem_SDL will call removetimer with this, it's ok + delete _timerManager; + _timerManager = new DefaultTimerManager(); SDL_SetTimer(10, &timer_handler_wrapper); - // Chain init + // Call parent implementation of this method OSystem_SDL::initBackend(); // Initialize global key mapping @@ -404,9 +398,6 @@ void OSystem_WINCE3::initBackend() { GUI_Actions::Instance()->saveMapping(); // write defaults } - // Call parent implementation of this method - //OSystem_SDL::initBackend(); - _inited = true; } -- cgit v1.2.3 From 7983b1cce3fb5831f7437ea689b951ac7cd9c5a3 Mon Sep 17 00:00:00 2001 From: Littleboy Date: Sun, 26 Jun 2011 19:51:52 -0400 Subject: BACKENDS: Add special Win32 path to set SDL window icon We bypass SDL_WM_SetIcon and setup the window icon using the embedded icon, with the default path as a fallback. This allows us to use an antialised icon with alpha transparency (which the default included icon doesn't have) on Windows XP and later --- backends/platform/sdl/win32/win32.cpp | 24 ++++++++++++++++++++++++ backends/platform/sdl/win32/win32.h | 1 + 2 files changed, 25 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp index 814f1955fe..420ed2465b 100644 --- a/backends/platform/sdl/win32/win32.cpp +++ b/backends/platform/sdl/win32/win32.cpp @@ -34,6 +34,8 @@ #undef ARRAYSIZE // winnt.h defines ARRAYSIZE, but we want our own one... #include +#include // For setting the icon + #include "backends/platform/sdl/win32/win32.h" #include "backends/fs/windows/windows-fs-factory.h" #include "backends/taskbar/win32/win32-taskbar.h" @@ -137,6 +139,28 @@ bool OSystem_Win32::displayLogFile() { return false; } +void OSystem_Win32::setupIcon() { + HMODULE handle = GetModuleHandle(NULL); + HICON ico = LoadIcon(handle, MAKEINTRESOURCE(1001 /* IDI_ICON */)); + if (ico) { + SDL_SysWMinfo wminfo; + SDL_VERSION(&wminfo.version); + if (SDL_GetWMInfo(&wminfo)) { + // Replace the handle to the icon associated with the window class by our custom icon + SetClassLongPtr(wminfo.window, GCLP_HICON, (ULONG_PTR)ico); + + // Since there wasn't any default icon, we can't use the return value from SetClassLong + // to check for errors (it would be 0 in both cases: error or no previous value for the + // icon handle). Instead we check for the last-error code value. + if (GetLastError() == ERROR_SUCCESS) + return; + } + } + + // If no icon has been set, fallback to default path + OSystem_SDL::setupIcon(); +} + Common::String OSystem_Win32::getDefaultConfigFileName() { char configFile[MAXPATHLEN]; diff --git a/backends/platform/sdl/win32/win32.h b/backends/platform/sdl/win32/win32.h index ef7b6af3f1..cc2fc51d36 100644 --- a/backends/platform/sdl/win32/win32.h +++ b/backends/platform/sdl/win32/win32.h @@ -46,6 +46,7 @@ protected: */ Common::String _logFilePath; + virtual void setupIcon(); virtual Common::String getDefaultConfigFileName(); virtual Common::WriteStream *createLogFile(); }; -- cgit v1.2.3 From 0a9b9fe08f3b5fa8f9a505887fccd88b42f7f1b9 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Mon, 27 Jun 2011 02:00:33 +0200 Subject: WINCE: Added option to disable panel toggling with double tap on top of screen --- backends/platform/wince/CEActionsPocket.cpp | 3 ++- backends/platform/wince/CEActionsSmartphone.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp index a4786d330d..194f855e98 100644 --- a/backends/platform/wince/CEActionsPocket.cpp +++ b/backends/platform/wince/CEActionsPocket.cpp @@ -137,6 +137,7 @@ void CEActionsPocket::initInstanceGame() { bool is_tinsel = (gameid == "tinsel"); bool is_cruise = (gameid == "cruise"); bool is_made = (gameid == "made"); + bool is_sci = (gameid == "sci"); GUI_Actions::initInstanceGame(); @@ -219,7 +220,7 @@ void CEActionsPocket::initInstanceGame() { // Key bind method _action_enabled[POCKET_ACTION_BINDKEYS] = true; // Disable double-tap right-click for convenience - if (is_tinsel || is_cruise) + if (is_tinsel || is_cruise || is_sci) if (!ConfMan.hasKey("no_doubletap_rightclick")) { ConfMan.setBool("no_doubletap_rightclick", true); ConfMan.flushToDisk(); diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp index b12dadabb6..c6456d3eb5 100644 --- a/backends/platform/wince/CEActionsSmartphone.cpp +++ b/backends/platform/wince/CEActionsSmartphone.cpp @@ -128,6 +128,7 @@ void CEActionsSmartphone::initInstanceGame() { bool is_tinsel = (gameid == "tinsel"); bool is_cruise = (gameid == "cruise"); bool is_made = (gameid == "made"); + bool is_sci = (gameid == "sci"); GUI_Actions::initInstanceGame(); @@ -185,7 +186,7 @@ void CEActionsSmartphone::initInstanceGame() { // Bind keys _action_enabled[SMARTPHONE_ACTION_BINDKEYS] = true; // Disable double-tap right-click for convenience - if (is_tinsel || is_cruise) + if (is_tinsel || is_cruise || is_sci) if (!ConfMan.hasKey("no_doubletap_rightclick")) { ConfMan.setBool("no_doubletap_rightclick", true); ConfMan.flushToDisk(); -- cgit v1.2.3 From eae06884b6c6da23b7932ceba65e435d9be6ef82 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Thu, 30 Jun 2011 11:17:58 +1000 Subject: WIN32: Add option to disable the console window, keeping the current default of enabling the console window. --- backends/platform/sdl/win32/win32.cpp | 60 ++++++++++++----------------------- backends/platform/sdl/win32/win32.h | 1 + 2 files changed, 22 insertions(+), 39 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp index 420ed2465b..c1b6c853e4 100644 --- a/backends/platform/sdl/win32/win32.cpp +++ b/backends/platform/sdl/win32/win32.cpp @@ -24,6 +24,7 @@ #define FORBIDDEN_SYMBOL_ALLOW_ALL #include "common/scummsys.h" +#include "common/config-manager.h" #include "common/error.h" #include "common/textconsole.h" @@ -44,46 +45,7 @@ #define DEFAULT_CONFIG_FILE "scummvm.ini" -//#define HIDE_CONSOLE - -#ifdef HIDE_CONSOLE -struct SdlConsoleHidingWin32 { - DWORD myPid; - DWORD myTid; - HWND consoleHandle; -}; - -// console hiding for win32 -static BOOL CALLBACK initBackendFindConsoleWin32Proc(HWND hWnd, LPARAM lParam) { - DWORD pid, tid; - SdlConsoleHidingWin32 *variables = (SdlConsoleHidingWin32 *)lParam; - tid = GetWindowThreadProcessId(hWnd, &pid); - if ((tid == variables->myTid) && (pid == variables->myPid)) { - variables->consoleHandle = hWnd; - return FALSE; - } - return TRUE; -} - -#endif - void OSystem_Win32::init() { -#ifdef HIDE_CONSOLE - // console hiding for win32 - SdlConsoleHidingWin32 consoleHidingWin32; - consoleHidingWin32.consoleHandle = 0; - consoleHidingWin32.myPid = GetCurrentProcessId(); - consoleHidingWin32.myTid = GetCurrentThreadId(); - EnumWindows (initBackendFindConsoleWin32Proc, (LPARAM)&consoleHidingWin32); - - if (!ConfMan.getBool("show_console")) { - if (consoleHidingWin32.consoleHandle) { - // We won't find a window with our TID/PID in case we were started from command-line - ShowWindow(consoleHidingWin32.consoleHandle, SW_HIDE); - } - } -#endif - // Initialize File System Factory _fsFactory = new WindowsFilesystemFactory(); @@ -96,6 +58,26 @@ void OSystem_Win32::init() { OSystem_SDL::init(); } +void OSystem_Win32::initBackend() { + // Console window is enabled by default on Windows + ConfMan.registerDefault("console", true); + + // Enable or disable the window console window + if (ConfMan.getBool("console")) { + if (AllocConsole()) { + freopen("CONIN$","r",stdin); + freopen("CONOUT$","w",stdout); + freopen("CONOUT$","w",stderr); + } + SetConsoleTitle("ScummVM Status Window"); + } else { + FreeConsole(); + } + + // Invoke parent implementation of this method + OSystem_SDL::initBackend(); +} + bool OSystem_Win32::hasFeature(Feature f) { if (f == kFeatureDisplayLogFile) diff --git a/backends/platform/sdl/win32/win32.h b/backends/platform/sdl/win32/win32.h index cc2fc51d36..b56997a63b 100644 --- a/backends/platform/sdl/win32/win32.h +++ b/backends/platform/sdl/win32/win32.h @@ -28,6 +28,7 @@ class OSystem_Win32 : public OSystem_SDL { public: virtual void init(); + virtual void initBackend(); virtual void addSysArchivesToSearchSet(Common::SearchSet &s, int priority = 0); -- cgit v1.2.3 From aa0f307e06e5aae3b12f9f15b350dc81b30d61de Mon Sep 17 00:00:00 2001 From: Ori Avtalion Date: Tue, 28 Jun 2011 02:06:23 +0300 Subject: ALL: Require DECLARE_SINGLETON to be used in the Common namepsace Silences the clang warning: static data member specialization of '_singleton' must originally be declared in namespace 'Common'; accepted as a C++0x extension [-Wc++0x-extensions] Wrapping "namespace Common {}" around the macro assignment causes clang to complain about a spurious semicolon, and removing the semicolon at the end of the macro causes some editors to misbehave. Changing the requirement of using the macro in one namespace (the global) to another (Common) seems a small price to pay to silence a warning. --- backends/platform/psp/display_manager.cpp | 2 ++ backends/platform/psp/powerman.cpp | 2 ++ backends/platform/psp/rtc.cpp | 2 ++ 3 files changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/psp/display_manager.cpp b/backends/platform/psp/display_manager.cpp index e945dca4a8..422805714f 100644 --- a/backends/platform/psp/display_manager.cpp +++ b/backends/platform/psp/display_manager.cpp @@ -62,7 +62,9 @@ const OSystem::GraphicsMode DisplayManager::_supportedModes[] = { // Class VramAllocator ----------------------------------- +namespace Common { DECLARE_SINGLETON(VramAllocator); +} //#define __PSP_DEBUG_FUNCS__ /* For debugging the stack */ //#define __PSP_DEBUG_PRINT__ diff --git a/backends/platform/psp/powerman.cpp b/backends/platform/psp/powerman.cpp index fe9dcfa673..b72d05809d 100644 --- a/backends/platform/psp/powerman.cpp +++ b/backends/platform/psp/powerman.cpp @@ -30,7 +30,9 @@ //#define __PSP_DEBUG_PRINT__ #include "backends/platform/psp/trace.h" +namespace Common { DECLARE_SINGLETON(PowerManager); +} // Function to debug the Power Manager (we have no output to screen) inline void PowerManager::debugPM() { diff --git a/backends/platform/psp/rtc.cpp b/backends/platform/psp/rtc.cpp index 3d6d4295a6..6c8e919986 100644 --- a/backends/platform/psp/rtc.cpp +++ b/backends/platform/psp/rtc.cpp @@ -34,7 +34,9 @@ // Class PspRtc --------------------------------------------------------------- +namespace Common { DECLARE_SINGLETON(PspRtc); +} void PspRtc::init() { // init our starting ticks uint32 ticks[2]; -- cgit v1.2.3 From 669db0e15d0d5f0fb176415a244330fe2b0ddce2 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Fri, 1 Jul 2011 01:14:56 +0200 Subject: WINCE: Update port specific README --- backends/platform/wince/README-WinCE.txt | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index c48d9ca998..8f1262051a 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -1,10 +1,26 @@ ScummVM Windows CE FAQ -Last updated: 2011-05-27 -Release version: 1.3.0 +Last updated: 2011-07-01 +Release version: 1.3.1 ------------------------------------------------------------------------ New in this version ------------------- +1.3.1: +- Fix for Normal2xAspect scaler which was causing screen update issues in some + games. +- Fix for Normal1xAspect scaler which caused problems in the bottom part of the + screen when toolbar was hidden. +- Fix for freelook mode. +- Fix for timer manager, caused timing issues in some games. +- Activated runtime language detection for ScummVM gui. +- Toolbar is now hidden when returning to the game list. +- Double-tap right-click emulation is now turned off for SCI games by default. +- Added a new option "no_doubletap_paneltoggle" for scummvm.ini to disable + toolbar toggling when double-tapping on the top part of the screen. +- SDL library related fixes: + * Fix for screen/mouse-cursor rotation issues (fixes erratic touchscreen + behaviour) + * Fix for hardware keyboard on some devices (HTC Touch Pro, etc.) 1.3.0: This is the first official Windows CE release since 1.1.1. -- cgit v1.2.3 From 12f38459e49f3a21573a664daa7cdf12cb267586 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 1 Jul 2011 23:10:48 +0200 Subject: BACKENDS: Fix compilation of PS2 backend. --- backends/platform/ps2/systemps2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/ps2/systemps2.cpp b/backends/platform/ps2/systemps2.cpp index d3acd06089..5b75ce8914 100644 --- a/backends/platform/ps2/systemps2.cpp +++ b/backends/platform/ps2/systemps2.cpp @@ -66,7 +66,7 @@ #include "engines/engine.h" -#include "graphics/font.h" +#include "graphics/fonts/bdf.h" #include "graphics/surface.h" #include "icon.h" -- cgit v1.2.3 From 23dd778a16bd610cce0a3fbc3b37543c0e75e6dd Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 1 Jul 2011 23:36:35 +0200 Subject: BACKENDS: Fix PS2 backend compilation for real. --- backends/platform/ps2/systemps2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/ps2/systemps2.cpp b/backends/platform/ps2/systemps2.cpp index 5b75ce8914..c75d7493a2 100644 --- a/backends/platform/ps2/systemps2.cpp +++ b/backends/platform/ps2/systemps2.cpp @@ -96,7 +96,7 @@ OSystem_PS2 *g_systemPs2; #define FOREVER 2147483647 namespace Graphics { - extern const NewFont g_sysfont; + extern const BdfFont g_sysfont; }; PS2Device detectBootPath(const char *elfPath, char *bootPath); -- cgit v1.2.3 From b00586df8253a645d4d7a59b68ffa208cb86ee7c Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sun, 3 Jul 2011 22:34:20 +0200 Subject: MACOSX: Add i18n support for Mac OSX application menu --- backends/platform/sdl/macosx/appMenu_osx.h | 32 +++++++++ backends/platform/sdl/macosx/appMenu_osx.mm | 100 ++++++++++++++++++++++++++++ backends/platform/sdl/macosx/macosx.cpp | 12 ++++ backends/platform/sdl/module.mk | 3 +- 4 files changed, 146 insertions(+), 1 deletion(-) create mode 100755 backends/platform/sdl/macosx/appMenu_osx.h create mode 100755 backends/platform/sdl/macosx/appMenu_osx.mm (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appMenu_osx.h b/backends/platform/sdl/macosx/appMenu_osx.h new file mode 100755 index 0000000000..005414b789 --- /dev/null +++ b/backends/platform/sdl/macosx/appMenu_osx.h @@ -0,0 +1,32 @@ +/* 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 APPMENU_OSX_H +#define APPMENU_OSX_H + +#if defined(MACOSX) + +void replaceApplicationMenuItems(); + +#endif // MACOSX + +#endif diff --git a/backends/platform/sdl/macosx/appMenu_osx.mm b/backends/platform/sdl/macosx/appMenu_osx.mm new file mode 100755 index 0000000000..e39815fbd9 --- /dev/null +++ b/backends/platform/sdl/macosx/appMenu_osx.mm @@ -0,0 +1,100 @@ +/* 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. + * + */ + +#if defined(MACOSX) + +#include "backends/platform/sdl/macosx/appMenu_osx.h" +#include "common/translation.h" + +#include + +void replaceApplicationMenuItems() { + + // Code mainly copied and adapted from SDLmain.m + NSMenu *appleMenu; + NSMenu *windowMenu; + NSMenuItem *menuItem; + + // For some reason [[NSApp mainMenu] removeAllItems] doesn't work and crashes, so we need + // to remove the SDL generated menus one by one + [[NSApp mainMenu] removeItemAtIndex:0]; // Remove application menu + [[NSApp mainMenu] removeItemAtIndex:0]; // Remove "Windows" menu + + // Create new application menu + appleMenu = [[NSMenu alloc] initWithTitle:@""]; + + // Get current encoding + NSStringEncoding *stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); + + // Add "About ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; + + // Add seperator + [appleMenu addItem:[NSMenuItem separatorItem]]; + + // Add "Hide ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide ScummVM") encoding:stringEncoding] action:@selector(hide:) keyEquivalent:@"h"]; + + // Add "Hide Others" menu item + menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide Others") encoding:stringEncoding] action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; + [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; + + // Add "Show All" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Show All") encoding:stringEncoding] action:@selector(unhideAllApplications:) keyEquivalent:@""]; + + // Add seperator + [appleMenu addItem:[NSMenuItem separatorItem]]; + + // Add "Quit ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Quit ScummVM") encoding:stringEncoding] action:@selector(terminate:) keyEquivalent:@"q"]; + + // Put application menu into the menubar + menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; + [menuItem setSubmenu:appleMenu]; + [[NSApp mainMenu] addItem:menuItem]; + + // Tell the application object that this is now the application menu + [NSApp setAppleMenu:appleMenu]; + + + // Create new "Window" menu + windowMenu = [[NSMenu alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding]]; + + // Add "Minimize" menu item + menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Minimize") encoding:stringEncoding] action:@selector(performMiniaturize:) keyEquivalent:@"m"]; + [windowMenu addItem:menuItem]; + + // Put menu into the menubar + menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding] action:nil keyEquivalent:@""]; + [menuItem setSubmenu:windowMenu]; + [[NSApp mainMenu] addItem:menuItem]; + + // Tell the application object that this is now the window menu. + [NSApp setWindowsMenu:windowMenu]; + + // Finally give up our references to the objects + [appleMenu release]; + [windowMenu release]; + [menuItem release]; +} + +#endif // MACOSX diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index 817f61e864..e263192c82 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -29,9 +29,12 @@ #include "backends/platform/sdl/macosx/macosx.h" #include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h" +#include "backends/platform/sdl/macosx/appMenu_osx.h" #include "common/archive.h" +#include "common/config-manager.h" #include "common/fs.h" +#include "common/translation.h" #include "ApplicationServices/ApplicationServices.h" // for LSOpenFSRef #include "CoreFoundation/CoreFoundation.h" // for CF* stuff @@ -51,6 +54,15 @@ void OSystem_MacOSX::initBackend() { _mixerManager->init(); } +#ifdef USE_TRANSLATION + // We need to initialize the translataion manager here for the following + // call to replaceApplicationMenuItems() work correctly + TransMan.setLanguage(ConfMan.get("gui_language").c_str()); +#endif // USE_TRANSLATION + + // Replace the SDL generated menu items with our own translated ones on Mac-OSX + replaceApplicationMenuItems(); + // Invoke parent implementation of this method OSystem_POSIX::initBackend(); } diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk index e67bf859d6..34631c372d 100644 --- a/backends/platform/sdl/module.mk +++ b/backends/platform/sdl/module.mk @@ -14,7 +14,8 @@ endif ifdef MACOSX MODULE_OBJS += \ macosx/macosx-main.o \ - macosx/macosx.o + macosx/macosx.o \ + macosx/appMenu_osx.o endif ifdef WIN32 -- cgit v1.2.3 From e3558e56d7b94fce8a561eb52c4c02c73ab74091 Mon Sep 17 00:00:00 2001 From: dhewg Date: Thu, 7 Jul 2011 15:22:53 +0200 Subject: PS3: Fix comment --- backends/platform/sdl/ps3/ps3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp index 16722ccdb7..33586ce693 100644 --- a/backends/platform/sdl/ps3/ps3.cpp +++ b/backends/platform/sdl/ps3/ps3.cpp @@ -21,7 +21,7 @@ */ #define FORBIDDEN_SYMBOL_EXCEPTION_mkdir -#define FORBIDDEN_SYMBOL_EXCEPTION_time_h //On IRIX, sys/stat.h includes sys/time.h +#define FORBIDDEN_SYMBOL_EXCEPTION_time_h // sys/stat.h includes sys/time.h #define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h #include "common/scummsys.h" -- cgit v1.2.3 From 5757fc577e2b69716814ceef8b357c20e74fff0c Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Thu, 7 Jul 2011 17:42:24 +0100 Subject: GPH: Add note to the README stored with 'mmuhack.o' for the GP2X explaining why the binary object is in the source tree. --- backends/platform/gph/devices/gp2x/mmuhack/README | 116 +++++++++++++++++++++ .../platform/gph/devices/gp2x/mmuhack/readme.txt | 110 ------------------- 2 files changed, 116 insertions(+), 110 deletions(-) create mode 100644 backends/platform/gph/devices/gp2x/mmuhack/README delete mode 100644 backends/platform/gph/devices/gp2x/mmuhack/readme.txt (limited to 'backends/platform') diff --git a/backends/platform/gph/devices/gp2x/mmuhack/README b/backends/platform/gph/devices/gp2x/mmuhack/README new file mode 100644 index 0000000000..6db7d81845 --- /dev/null +++ b/backends/platform/gph/devices/gp2x/mmuhack/README @@ -0,0 +1,116 @@ +PLEASE NOTE: + +The binary object 'mmuhack.o' is stored in the source tree as it is very awkward to +build it manually each time and would require the use of 2 toolchains to do so. + +Notes on how to rebuild from the included source can be found below. + +About +----- + +This is a module for GP2X 2.4 based Linux kernel, created for developers to use in their +programs. + +Normally the upper 32MB is uncached. This means that reads/writes on the memory +are always done via the physical memory modules rather than the much faster +memory built into the processor (called 'cache'). Access to the upper 32MB can +be sped up by Squidge's MMU hack. The easiest way to use the MMU hack is to add +and load the MMU hack kernel module into your program. + +Note: Building this module requries a GP2X 'kernel' toolchain (i.e. GCC 2.95.* +for the GP2X stock, 3.* for Open2X). + +You can't build this module with the GCC 4 based application toolchains. + +Operation +--------- + +When loaded into kernel, this module creates /dev/mmuhack device. Whenever +a program opens that device using open() call, the module traverses all +memory, which was allocated in 0x02000000-0x03ffffff range by the program via +using mmap() system call. While doing that, it marks all encountered memory +as bufferable and cacheable. + +The most common use of this is to remove the framebuffer access bottleneck. +Note that, however, by making the framebuffer cacheable you can cause display +artifacts. This can happen because parts of your framebuffer may stay in CPU +cache and not to be written back to the physical memory. The display +controller only fetches data from the physical memory, so you get incomplete +image (the memory will most likely contain data from previous frame, so these +artifacts are better visible during fade effects). The easy way to fix this +is by using a special ARM Linux system call, which flushes the cache (forces +the CPU to write data in cache to the physical memory (see section "Flushing +the cache")). + +Using this module affects the whole upper memory area. But in some situations +this may be not desirable, for example when using ARM940 core in your program +(ether using 940 libraries like ogg940 and gpu940, or using your custom code, +which needs uncacheable memory for communication and such). If you need part +of your upper memory to be cached, and other part not, you should mmap() that +memory (which you want to be uncached) _after_ doing open("/dev/mmuhack"). +Another way is to modify mmuhack.c to suit your needs and rebuild the module. + + +Usage +----- + +The very first thing to do is to load the kernel module (mmuhack.o) into the +running kernel. But before that you should try to unload mmuhack module, +because other program might have left a different version loaded with +different memory configuration, which may not suit your program. + +system("/sbin/rmmod mmuhack"); +system("/sbin/insmod mmuhack.o"); + +Now you can assume the module is loaded into kernel and open /dev/mmuhack +device. You don't need to worry about previous calls failing, because in that +case open() will simply fail and nothing bad will happen. + +IMPORTANT: you _must_ do the open() call _after_ you initialize your graphics +library or allocate your memory, because it can only work with memory which is +already allocated, it won't affect memory you or your lib allocates after the +open() call. + +int mmufd = open("/dev/mmuhack", O_RDWR); +if(mmufd < 0) +{ + printf("MMU hack failed"); +} +else +{ + printf("MMU hack loaded"); + close(mmufd); +} + +If the above call succeeded, you are all done. +I recommend to unload the module when your program exits, because the other +program may want to load a different mmuhack.o and may fail, because you left +your mmuhack.o loaded (it does not get unloaded automatically on exit). + +system("/sbin/rmmod mmuhack"); + + +Flushing the cache +------------------ + +If using mmuhack.o causes your program to display artifacts (see "Operation" +section for explanation), you will need to flush the CPU cache. This should +be done after finishing every frame and just before flipping your display +buffer/surface. You will need to add flush_uppermem_cache.s file to your +Makefile/project and add a call to flush_uppermem_cache() just before final +framebuffer flip or blit. + +flush_uppermem_cache() has 3 parameters. First param is the start address, +second param is the end address, third one should always be 0. The addresses +should be virtual ones (most often pointers to the start/end of your +framebuffer). Example: + +flush_uppermem_cache(screen_surface->pixels, screen_surface->pixels + 320*240, 0); + + +Credits +------- + +Original idea/implementation: Squidge (this whole thing is also known as squidgehack) +Kernel module: NK +Documentation: notaz diff --git a/backends/platform/gph/devices/gp2x/mmuhack/readme.txt b/backends/platform/gph/devices/gp2x/mmuhack/readme.txt deleted file mode 100644 index bea49d7d6d..0000000000 --- a/backends/platform/gph/devices/gp2x/mmuhack/readme.txt +++ /dev/null @@ -1,110 +0,0 @@ -About ------ - -This is a module for GP2X 2.4 based Linux kernel, created for developers to use in their -programs. - -Normally the upper 32MB is uncached. This means that reads/writes on the memory -are always done via the physical memory modules rather than the much faster -memory built into the processor (called 'cache'). Access to the upper 32MB can -be sped up by Squidge's MMU hack. The easiest way to use the MMU hack is to add -and load the MMU hack kernel module into your program. - -Note: Building this module requries a GP2X 'kernel' toolchain (i.e. GCC 2.95.* -for the GP2X stock, 3.* for Open2X). - -You can't build this module with the GCC 4 based application toolchains. - -Operation ---------- - -When loaded into kernel, this module creates /dev/mmuhack device. Whenever -a program opens that device using open() call, the module traverses all -memory, which was allocated in 0x02000000-0x03ffffff range by the program via -using mmap() system call. While doing that, it marks all encountered memory -as bufferable and cacheable. - -The most common use of this is to remove the framebuffer access bottleneck. -Note that, however, by making the framebuffer cacheable you can cause display -artifacts. This can happen because parts of your framebuffer may stay in CPU -cache and not to be written back to the physical memory. The display -controller only fetches data from the physical memory, so you get incomplete -image (the memory will most likely contain data from previous frame, so these -artifacts are better visible during fade effects). The easy way to fix this -is by using a special ARM Linux system call, which flushes the cache (forces -the CPU to write data in cache to the physical memory (see section "Flushing -the cache")). - -Using this module affects the whole upper memory area. But in some situations -this may be not desirable, for example when using ARM940 core in your program -(ether using 940 libraries like ogg940 and gpu940, or using your custom code, -which needs uncacheable memory for communication and such). If you need part -of your upper memory to be cached, and other part not, you should mmap() that -memory (which you want to be uncached) _after_ doing open("/dev/mmuhack"). -Another way is to modify mmuhack.c to suit your needs and rebuild the module. - - -Usage ------ - -The very first thing to do is to load the kernel module (mmuhack.o) into the -running kernel. But before that you should try to unload mmuhack module, -because other program might have left a different version loaded with -different memory configuration, which may not suit your program. - -system("/sbin/rmmod mmuhack"); -system("/sbin/insmod mmuhack.o"); - -Now you can assume the module is loaded into kernel and open /dev/mmuhack -device. You don't need to worry about previous calls failing, because in that -case open() will simply fail and nothing bad will happen. - -IMPORTANT: you _must_ do the open() call _after_ you initialize your graphics -library or allocate your memory, because it can only work with memory which is -already allocated, it won't affect memory you or your lib allocates after the -open() call. - -int mmufd = open("/dev/mmuhack", O_RDWR); -if(mmufd < 0) -{ - printf("MMU hack failed"); -} -else -{ - printf("MMU hack loaded"); - close(mmufd); -} - -If the above call succeeded, you are all done. -I recommend to unload the module when your program exits, because the other -program may want to load a different mmuhack.o and may fail, because you left -your mmuhack.o loaded (it does not get unloaded automatically on exit). - -system("/sbin/rmmod mmuhack"); - - -Flushing the cache ------------------- - -If using mmuhack.o causes your program to display artifacts (see "Operation" -section for explanation), you will need to flush the CPU cache. This should -be done after finishing every frame and just before flipping your display -buffer/surface. You will need to add flush_uppermem_cache.s file to your -Makefile/project and add a call to flush_uppermem_cache() just before final -framebuffer flip or blit. - -flush_uppermem_cache() has 3 parameters. First param is the start address, -second param is the end address, third one should always be 0. The addresses -should be virtual ones (most often pointers to the start/end of your -framebuffer). Example: - -flush_uppermem_cache(screen_surface->pixels, screen_surface->pixels + 320*240, 0); - - -Credits -------- - -Original idea/implementation: Squidge (this whole thing is also known as squidgehack) -Kernel module: NK -Documentation: notaz - -- cgit v1.2.3 From b27e6ac1dcaa678f7f078f6ded12ee784e44baf2 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Thu, 7 Jul 2011 21:43:08 +0100 Subject: OPENPANDORA: Update support scripts that create .PND distribution file. --- backends/platform/openpandora/build/PXML.xml | 83 +++-- .../platform/openpandora/build/PXML_schema.xsd | 341 +++++++++++++++++++++ backends/platform/openpandora/build/pnd_make.sh | 340 +++++++++++++++++--- 3 files changed, 691 insertions(+), 73 deletions(-) create mode 100644 backends/platform/openpandora/build/PXML_schema.xsd (limited to 'backends/platform') diff --git a/backends/platform/openpandora/build/PXML.xml b/backends/platform/openpandora/build/PXML.xml index f4d2e2a595..a87c49e2b8 100755 --- a/backends/platform/openpandora/build/PXML.xml +++ b/backends/platform/openpandora/build/PXML.xml @@ -1,34 +1,55 @@ - - - - ScummVM - - - - - - - - - - - Point & click game interpreter. - - - - - - - - - - - - - - - - + + + + + + + ScummVM + + ScummVM + + + + ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! + + ScummVM supports many adventure games, including LucasArts SCUMM games (such as Monkey Island 1-3, Day of the Tentacle, Sam & Max, ...), many of Sierra's AGI and SCI games (such as King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 and 2, Simon the Sorcerer 1 and 2, Beneath A Steel Sky, Lure of the Temptress, Broken Sword 1 and 2, Flight of the Amazon Queen, Gobliiins 1-3, The Legend of Kyrandia 1-3, many of Humongous Entertainment's children's SCUMM games (including Freddi Fish and Putt Putt games) and many more. + + + + + + + + + + + + + ScummVM + + ScummVM + + + + ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! + + ScummVM supports many adventure games, including LucasArts SCUMM games (such as Monkey Island 1-3, Day of the Tentacle, Sam & Max, ...), many of Sierra's AGI and SCI games (such as King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 and 2, Simon the Sorcerer 1 and 2, Beneath A Steel Sky, Lure of the Temptress, Broken Sword 1 and 2, Flight of the Amazon Queen, Gobliiins 1-3, The Legend of Kyrandia 1-3, many of Humongous Entertainment's children's SCUMM games (including Freddi Fish and Putt Putt games) and many more. + + + + + + + + + + + + + + + + diff --git a/backends/platform/openpandora/build/PXML_schema.xsd b/backends/platform/openpandora/build/PXML_schema.xsd new file mode 100644 index 0000000000..335efe5002 --- /dev/null +++ b/backends/platform/openpandora/build/PXML_schema.xsd @@ -0,0 +1,341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backends/platform/openpandora/build/pnd_make.sh b/backends/platform/openpandora/build/pnd_make.sh index b19de87bb4..0c03e8154d 100755 --- a/backends/platform/openpandora/build/pnd_make.sh +++ b/backends/platform/openpandora/build/pnd_make.sh @@ -1,65 +1,321 @@ -#!/bin/sh +#!/bin/bash +# +# pnd_make.sh +# +# This script is meant to ease generation of a pnd file. Please consult the output +# when running --help for a list of available parameters and an explaination of +# those. +# +# Required tools when running the script: +# bash +# echo, cat, mv, rm +# mkisofs or mksquashfs (the latter when using the -c param!) +# xmllint (optional, only for validation of the PXML against the schema) -######adjust path of genpxml.sh if you want to use that "feture"##### -TEMP=`getopt -o p:d:x:i:c -- "$@"` +PXML_schema=$(dirname ${0})/PXML_schema.xsd +GENPXML_PATH=$(dirname ${0})/genpxml.sh -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi +# useful functions ... +black='\E[30m' +red='\E[31m' +green='\E[32m' +yellow='\E[33m' +blue='\E[34m' +magenta='\E[35m' +cyan='\E[36m' +white='\E[37m' -eval set -- "$TEMP" -while true ; do - case "$1" in - -p) echo "PNDNAME set to $2" ;PNDNAME=$2;shift 2;; - -d) echo "FOLDER set to $2" ;FOLDER=$2;shift 2 ;; - -x) echo "PXML set to $2" ;PXML=$2;shift 2 ;; - -i) echo "ICON set to $2" ;ICON=$2;shift 2 ;; - -c) echo "-c set, will create compressed squasfs image instead of iso $2" ;SQUASH=1;shift 1 ;; - --) shift ; break ;; - *) echo "Error while parsing arguments! $2" ; exit 1 ;; - esac +check_for_tool() +{ + which $1 &> /dev/null + if [ "$?" -ne "0" ]; + then + cecho "ERROR: Could not find the program '$1'. Please make sure +that it is available in your PATH since it is required to complete your request." $red + exit 1 + fi +} + +cecho () # Color-echo. Argument $1 = message, Argument $2 = color +{ + local default_msg="No message passed." # Doesn't really need to be a local variable. + message=${1:-$default_msg} # Defaults to default message. + color=${2:-$black} # Defaults to black, if not specified. + echo -e "$color$message" + tput sgr0 # Reset to normal. + return +} + + +print_help() +{ + cat << EOSTREAM +pnd_make.sh - A script to package "something" into a PND. + +Usage: + $(basename ${0}) {--directory|-d} {--pndname|-p} [{--compress-squashfs|-c}] + [{--genpxml} ] [{--icon|-i} ] [{--pxml|-x} ] + [{--schema|-s} ] [{--help|-h}] + + +Switches: + --compress-squashfs / -c Define whether or not the pnd should be compressed using + squashfs. If this parameter is selected, a compressed pnd + will be created. + + --directory / -d Sets the folder that is to be used for the resulting pnd + to . This option is mandatory for the script to + function correctly. + + --genpxml Sets the script used for generating a PXML file (if none + is available already) to . Please make sure to either + provide a full path or prefix a script in the current folder + with './' so that the script can actually be executed. If + this variable is not specified, $GENPXML_PATH + will be used. + + --help / -h Displays this help text. + + --icon / -i Sets the icon that will be appended in the pnd to . + + --pndname / -p Sets the output filename of the resulting pnd to . + This option is mandatory for the script to function + correctly. + + --pxml / -x Sets the PXML file that is to be used to . If you + neither provide a PXML file or set this entry to 'guess', + an existing 'PXML.xml' in your selected '--directory' + will be used, or the script $GENPXML_PATH + will be called to try to generate a basic PXML file for you. + + --schema / -s Sets the schema file, that is to be used for validation, + to =4.0 of squashfs +is required to be available in your PATH. +EOSTREAM +} + + +# Parse command line parameters +while [ "${1}" != "" ]; do + if [ "${1}" = "--compress-squashfs" ] || [ "${1}" = "-c" ]; + then + SQUASH=1 + shift 1 + elif [ "${1}" = "--directory" ] || [ "${1}" = "-d" ]; + then + FOLDER=$2 + shift 2 + elif [ "${1}" = "--genpxml" ]; + then + GENPXML_PATH=$2 + shift 2 + elif [ "${1}" = "--help" ] || [ "${1}" = "-h" ]; + then + print_help + exit 0 + elif [ "${1}" = "--icon" ] || [ "${1}" = "-i" ]; + then + ICON=$2 + shift 2 + elif [ "${1}" = "--pndname" ] || [ "${1}" = "-p" ]; + then + PNDNAME=$2 + shift 2 + elif [ "${1}" = "--pxml" ] || [ "${1}" = "-x" ]; + then + PXML=$2 + shift 2 + elif [ "${1}" = "--schema" ] || [ "${1}" = "-f" ] + then + PXML_schema=$2 + shift 2 + else + cecho "ERROR: '$1' is not a known argument. Printing --help and aborting." $red + print_help + exit 1 + fi done -rnd=$RANDOM; # random number for genpxml and index$rnd.xml -#generate pxml if guess or empty -if [ ! $PXML ] || [ $PXML = "guess" ] && [ $PNDNAME ] && [ $FOLDER ]; then - PXMLtxt=$(/home/user/libpnd/pandora-libraries/testdata/scripts/genpxml.sh $FOLDER $ICON) - PXML=$FOLDER/PXML.xml - echo "$PXMLtxt" > $FOLDER/PXML.xml +# Generate a PXML if the param is set to Guess or it is empty. +if [ ! $PXML ] || [ $PXML = "guess" ] && [ $PNDNAME ] && [ $FOLDER ]; +then + if [ -f $FOLDER/PXML.xml ]; # use the already existing PXML.xml file if there is one... + then + PXML=$FOLDER/PXML.xml + PXML_ALREADY_EXISTING="true" + else + if [ -f $GENPXML_PATH ]; + then + $GENPXML_PATH --src $FOLDER --dest $FOLDER --author $USER + if [ -f $FOLDER/PXML.xml ]; + then + PXML_GENERATED="true" + else + cecho "ERROR: Generating a PXML file using '$GENPXML_PATH' failed. +Please generate a PXML file manually." $red + exit 1 + fi + else + cecho "ERROR: Could not find '$GENPXML_PATH' for generating a PXML file." $red + exit 1 + fi + fi fi -#check arguments -if [ ! $PNDNAME ] || [ ! $FOLDER ] || [ ! $PXML ]; then - echo " Usage: pnd_make.sh -p your.pnd -d folder/containing/your/app/ -x - your.pxml (or \"guess\" to try to generate it from the folder) -i icon.png" + +# Probe if required variables were set +echo -e +cecho "Checking if all required variables were set." $green +if [ ! $PNDNAME ] || [ ! $FOLDER ] || [ ! $PXML ]; +then + echo -e + cecho "ERROR: Not all required options were set! Please see the --help information below." $red + echo -e + print_help exit 1 +else + echo "PNDNAME set to '$PNDNAME'." +fi +# Check if the selected folder actually exists +if [ ! -d $FOLDER ]; +then + echo -e + cecho "ERROR: '$FOLDER' doesn't exist or is not a folder." $red + exit 1 +else + echo "FOLDER set to '$FOLDER'." +fi +# Check if the selected PXML file actually exists +if [ ! -f $PXML ]; +then + echo -e + cecho "ERROR: '$PXML' doesn't exist or is not a file." $red + exit 1 +else + if [ $PXML_ALREADY_EXISTING ]; + then + echo "You have not explicitly specified a PXML to use, but an existing file was +found. Will be using this one." + elif [ $PXML_GENERATED ]; + then + echo "A PXML file was generated for you using '$GENPXML_PATH'. This file will +not be removed at the end of this script because you might want to review it, adjust +single entries and rerun the script to generate a pnd with a PXML file with all the +information you want to have listed." + fi + echo "PXML set to '$PXML'." fi -if [ ! -d $FOLDER ]; then echo "$FOLDER doesnt exist"; exit 1; fi #check if folder actually exists -if [ ! -f $PXML ]; then echo "$PXML doesnt exist"; exit 1; fi #check if pxml actually exists -#make iso from folder -if [ ! $SQUASH ]; then - mkisofs -o $PNDNAME.iso -R $FOLDER +# Print the other variables: +if [ $ICON ]; +then + if [ ! -f $ICON ] + then + cecho "WARNING: '$ICON' doesn't exist, will not append the selected icon to the pnd." $red + else + echo "ICON set to '$ICON'." + USE_ICON="true" + fi +fi +if [ $SQUASH ]; +then + echo "Will use a squashfs for '$PNDNAME'." +fi + + +# Validate the PXML file (if xmllint is available) +# Errors and problems in this section will be shown but are not fatal. +echo -e +cecho "Trying to validate '$PXML' now. Will be using '$PXML_schema' to do so." $green +which xmllint &> /dev/null +if [ "$?" -ne "0" ]; +then + VALIDATED=false + cecho "WARNING: Could not find 'xmllint'. Validity check of '$PXML' is not possible!" $red else - if [ $(mksquashfs -version | awk '{if ($3 >= 4) print 1}') = 1 ]; then - echo "your squashfs version is older then version 4, please upgrade to 4.0 or later" + if [ ! -f "$PXML_schema" ]; + then + VALIDATED=false + cecho "WARNING: Could not find '$PXML_schema'. If you want to validate your +PXML file please make sure to provide a schema using the --schema option." $red + else + xmllint --noout --schema $PXML_schema $PXML + if [ "$?" -ne "0" ]; then VALIDATED=false; else VALIDATED=true; fi + fi +fi +# Print some message at the end about the validation in case the user missed the output above +if [ $VALIDATED = "false" ] +then + cecho "WARNING: Could not successfully validate '$PXML'. Please check the output +above. This does not mean that your pnd will be broken. Either you are not following the strict +syntax required for validation or you don't have all files/programs required for validating." $red +else + cecho "Your file '$PXML' was validated successfully. The resulting pnd should +work nicely with libpnd." $green +fi + + +# Make iso from folder +echo -e +cecho "Creating an iso file based on '$FOLDER'." $green +if [ $SQUASH ]; +then + check_for_tool mksquashfs + if [ $(mksquashfs -version | awk 'BEGIN{r=0} $3>=4{r=1} END{print r}') -eq 0 ]; + then + cecho "ERROR: Your squashfs version is older then version 4, please upgrade to 4.0 or later" $red exit 1 fi - mksquashfs -no-recovery -nopad $FOLDER $PNDNAME.iso + mksquashfs $FOLDER $PNDNAME.iso -nopad -no-recovery +else + check_for_tool mkisofs + mkisofs -o $PNDNAME.iso -R $FOLDER +fi + +# Check that the iso file was actually created before continuing +if [ ! -f $PNDNAME.iso ]; +then + cecho "ERROR: The temporary file '$PNDNAME.iso' could not be created. +Please check the output above for any errors and retry after fixing them. Aborting." $red + exit 1 fi -#append pxml to iso -cat $PNDNAME.iso $PXML > $PNDNAME + + +# Append pxml to iso +echo -e +cecho "Appending '$PXML' to the created iso file." $green +cat $PNDNAME.iso $PXML > $PNDNAME rm $PNDNAME.iso #cleanup -#append icon if specified -if [ $ICON ]; then # check if we want to add an icon - if [ ! -f $ICON ]; then #does the icon actually exist? - echo "$ICON doesnt exist" - else # yes + +# Append icon if specified and available +if [ $USE_ICON ]; +then + echo -e + cecho "Appending the icon '$ICON' to the pnd." $green mv $PNDNAME $PNDNAME.tmp cat $PNDNAME.tmp $ICON > $PNDNAME # append icon rm $PNDNAME.tmp #cleanup - fi fi -if [ $PXML = "guess" ];then rm $FOLDER/PXML.xml; fi #cleanup + +# Final message +echo -e +if [ -f $PNDNAME ]; +then + cecho "Successfully finished creating the pnd '$PNDNAME'." $green +else + cecho "There seems to have been a problem and '$PNDNAME' was not created. Please check +the output above for any error messages. A possible cause for this is that there was +not enough space available." $red + exit 1 +fi + + +#if [ $PXML = "guess" ];then rm $FOLDER/PXML.xml; fi #cleanup -- cgit v1.2.3 From 0ab63af11394c3d7e05d760e7d1de87fbec93493 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Thu, 7 Jul 2011 21:48:42 +0100 Subject: OPENPANDORA: Change bundle rule to make a SquashFS compressed .PND. --- backends/platform/openpandora/op-bundle.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/openpandora/op-bundle.mk b/backends/platform/openpandora/op-bundle.mk index 163f4711ce..089430f43c 100755 --- a/backends/platform/openpandora/op-bundle.mk +++ b/backends/platform/openpandora/op-bundle.mk @@ -75,11 +75,10 @@ endif $(CP) $(libloc)/../arm-angstrom-linux-gnueabi/usr/lib/libFLAC.so.8.2.0 $(bundle_name)/scummvm/lib/libFLAC.so.8 - $(srcdir)/backends/platform/openpandora/build/pnd_make.sh -p $(bundle_name).pnd -d $(bundle_name)/scummvm -x $(bundle_name)/scummvm/data/PXML.xml -i $(bundle_name)/scummvm/icon/scummvm.png + $(srcdir)/backends/platform/openpandora/build/pnd_make.sh -p $(bundle_name).pnd -c -d $(bundle_name)/scummvm -x $(bundle_name)/scummvm/data/PXML.xml -i $(bundle_name)/scummvm/icon/scummvm.png $(CP) $(srcdir)/backends/platform/openpandora/build/README-PND.txt $(bundle_name) tar -cvjf $(bundle_name)-pnd.tar.bz2 $(bundle_name).pnd $(bundle_name)/README-PND.txt rm -R ./$(bundle_name) -# rm $(bundle_name).pnd .PHONY: op-bundle op-pnd -- cgit v1.2.3 From c5a945b56650bd826e51fd7cb907ba0c9d91e8f3 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Fri, 8 Jul 2011 13:20:24 +0100 Subject: OPENPANDORA: Add explicit location for 'themepath' to the loader script. --- backends/platform/openpandora/build/runscummvm.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/openpandora/build/runscummvm.sh b/backends/platform/openpandora/build/runscummvm.sh index 48d24a2b81..c641235219 100755 --- a/backends/platform/openpandora/build/runscummvm.sh +++ b/backends/platform/openpandora/build/runscummvm.sh @@ -11,4 +11,5 @@ mkdir saves mkdir runtime cd runtime -../bin/scummvm --fullscreen --gfx-mode=2x --config=../scummvm.config +../bin/scummvm --fullscreen --gfx-mode=2x --config=../scummvm.config --themepath=../data + -- cgit v1.2.3 From 5a42f2901ff6300c47a9f905c5803d1139c6565d Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Tue, 12 Jul 2011 00:47:02 +0200 Subject: MACOSX: Fix application menu i18n compilation for Mac OSX 10.4+ --- backends/platform/sdl/macosx/appMenu_osx.mm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appMenu_osx.mm b/backends/platform/sdl/macosx/appMenu_osx.mm index e39815fbd9..930564313d 100755 --- a/backends/platform/sdl/macosx/appMenu_osx.mm +++ b/backends/platform/sdl/macosx/appMenu_osx.mm @@ -22,11 +22,21 @@ #if defined(MACOSX) +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + #include "backends/platform/sdl/macosx/appMenu_osx.h" #include "common/translation.h" #include +// Apple removed setAppleMenu from the header files in 10.4, +// but as the method still exists we declare it ourselves here. +// Yes, this works :) +@interface NSApplication(MissingFunction) +- (void)setAppleMenu:(NSMenu *)menu; +@end + void replaceApplicationMenuItems() { // Code mainly copied and adapted from SDLmain.m @@ -43,7 +53,7 @@ void replaceApplicationMenuItems() { appleMenu = [[NSMenu alloc] initWithTitle:@""]; // Get current encoding - NSStringEncoding *stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); + NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); // Add "About ScummVM" menu item [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; -- cgit v1.2.3 From 19bb69c7ed9421fc4b410c58f32a879d9e4c44a0 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:20:34 -0400 Subject: BACKENDS: Fix compilation on Mac OS X without translation support --- backends/platform/sdl/macosx/appMenu_osx.mm | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appMenu_osx.mm b/backends/platform/sdl/macosx/appMenu_osx.mm index 930564313d..794bb2d554 100755 --- a/backends/platform/sdl/macosx/appMenu_osx.mm +++ b/backends/platform/sdl/macosx/appMenu_osx.mm @@ -53,7 +53,11 @@ void replaceApplicationMenuItems() { appleMenu = [[NSMenu alloc] initWithTitle:@""]; // Get current encoding +#ifdef USE_TRANSLATION NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); +#else + NSStringEncoding stringEncoding = NSASCIIStringEncoding; +#endif // Add "About ScummVM" menu item [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; -- cgit v1.2.3 From cde3a3d9a00f67b1bc54a6ac2b135fdb8749ddcf Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:26:50 -0400 Subject: BACKENDS: Rename appMenu_osx.* to appmenu_osx.* --- backends/platform/sdl/macosx/appMenu_osx.h | 32 -------- backends/platform/sdl/macosx/appMenu_osx.mm | 114 ---------------------------- backends/platform/sdl/macosx/appmenu_osx.h | 32 ++++++++ backends/platform/sdl/macosx/appmenu_osx.mm | 114 ++++++++++++++++++++++++++++ backends/platform/sdl/module.mk | 2 +- 5 files changed, 147 insertions(+), 147 deletions(-) delete mode 100755 backends/platform/sdl/macosx/appMenu_osx.h delete mode 100755 backends/platform/sdl/macosx/appMenu_osx.mm create mode 100755 backends/platform/sdl/macosx/appmenu_osx.h create mode 100755 backends/platform/sdl/macosx/appmenu_osx.mm (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appMenu_osx.h b/backends/platform/sdl/macosx/appMenu_osx.h deleted file mode 100755 index 005414b789..0000000000 --- a/backends/platform/sdl/macosx/appMenu_osx.h +++ /dev/null @@ -1,32 +0,0 @@ -/* 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 APPMENU_OSX_H -#define APPMENU_OSX_H - -#if defined(MACOSX) - -void replaceApplicationMenuItems(); - -#endif // MACOSX - -#endif diff --git a/backends/platform/sdl/macosx/appMenu_osx.mm b/backends/platform/sdl/macosx/appMenu_osx.mm deleted file mode 100755 index 794bb2d554..0000000000 --- a/backends/platform/sdl/macosx/appMenu_osx.mm +++ /dev/null @@ -1,114 +0,0 @@ -/* 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. - * - */ - -#if defined(MACOSX) - -// Disable symbol overrides so that we can use system headers. -#define FORBIDDEN_SYMBOL_ALLOW_ALL - -#include "backends/platform/sdl/macosx/appMenu_osx.h" -#include "common/translation.h" - -#include - -// Apple removed setAppleMenu from the header files in 10.4, -// but as the method still exists we declare it ourselves here. -// Yes, this works :) -@interface NSApplication(MissingFunction) -- (void)setAppleMenu:(NSMenu *)menu; -@end - -void replaceApplicationMenuItems() { - - // Code mainly copied and adapted from SDLmain.m - NSMenu *appleMenu; - NSMenu *windowMenu; - NSMenuItem *menuItem; - - // For some reason [[NSApp mainMenu] removeAllItems] doesn't work and crashes, so we need - // to remove the SDL generated menus one by one - [[NSApp mainMenu] removeItemAtIndex:0]; // Remove application menu - [[NSApp mainMenu] removeItemAtIndex:0]; // Remove "Windows" menu - - // Create new application menu - appleMenu = [[NSMenu alloc] initWithTitle:@""]; - - // Get current encoding -#ifdef USE_TRANSLATION - NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); -#else - NSStringEncoding stringEncoding = NSASCIIStringEncoding; -#endif - - // Add "About ScummVM" menu item - [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; - - // Add seperator - [appleMenu addItem:[NSMenuItem separatorItem]]; - - // Add "Hide ScummVM" menu item - [appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide ScummVM") encoding:stringEncoding] action:@selector(hide:) keyEquivalent:@"h"]; - - // Add "Hide Others" menu item - menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide Others") encoding:stringEncoding] action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; - [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; - - // Add "Show All" menu item - [appleMenu addItemWithTitle:[NSString stringWithCString:_("Show All") encoding:stringEncoding] action:@selector(unhideAllApplications:) keyEquivalent:@""]; - - // Add seperator - [appleMenu addItem:[NSMenuItem separatorItem]]; - - // Add "Quit ScummVM" menu item - [appleMenu addItemWithTitle:[NSString stringWithCString:_("Quit ScummVM") encoding:stringEncoding] action:@selector(terminate:) keyEquivalent:@"q"]; - - // Put application menu into the menubar - menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; - [menuItem setSubmenu:appleMenu]; - [[NSApp mainMenu] addItem:menuItem]; - - // Tell the application object that this is now the application menu - [NSApp setAppleMenu:appleMenu]; - - - // Create new "Window" menu - windowMenu = [[NSMenu alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding]]; - - // Add "Minimize" menu item - menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Minimize") encoding:stringEncoding] action:@selector(performMiniaturize:) keyEquivalent:@"m"]; - [windowMenu addItem:menuItem]; - - // Put menu into the menubar - menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding] action:nil keyEquivalent:@""]; - [menuItem setSubmenu:windowMenu]; - [[NSApp mainMenu] addItem:menuItem]; - - // Tell the application object that this is now the window menu. - [NSApp setWindowsMenu:windowMenu]; - - // Finally give up our references to the objects - [appleMenu release]; - [windowMenu release]; - [menuItem release]; -} - -#endif // MACOSX diff --git a/backends/platform/sdl/macosx/appmenu_osx.h b/backends/platform/sdl/macosx/appmenu_osx.h new file mode 100755 index 0000000000..005414b789 --- /dev/null +++ b/backends/platform/sdl/macosx/appmenu_osx.h @@ -0,0 +1,32 @@ +/* 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 APPMENU_OSX_H +#define APPMENU_OSX_H + +#if defined(MACOSX) + +void replaceApplicationMenuItems(); + +#endif // MACOSX + +#endif diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm new file mode 100755 index 0000000000..3e930fbd71 --- /dev/null +++ b/backends/platform/sdl/macosx/appmenu_osx.mm @@ -0,0 +1,114 @@ +/* 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. + * + */ + +#if defined(MACOSX) + +// Disable symbol overrides so that we can use system headers. +#define FORBIDDEN_SYMBOL_ALLOW_ALL + +#include "backends/platform/sdl/macosx/appmenu_osx.h" +#include "common/translation.h" + +#include + +// Apple removed setAppleMenu from the header files in 10.4, +// but as the method still exists we declare it ourselves here. +// Yes, this works :) +@interface NSApplication(MissingFunction) +- (void)setAppleMenu:(NSMenu *)menu; +@end + +void replaceApplicationMenuItems() { + + // Code mainly copied and adapted from SDLmain.m + NSMenu *appleMenu; + NSMenu *windowMenu; + NSMenuItem *menuItem; + + // For some reason [[NSApp mainMenu] removeAllItems] doesn't work and crashes, so we need + // to remove the SDL generated menus one by one + [[NSApp mainMenu] removeItemAtIndex:0]; // Remove application menu + [[NSApp mainMenu] removeItemAtIndex:0]; // Remove "Windows" menu + + // Create new application menu + appleMenu = [[NSMenu alloc] initWithTitle:@""]; + + // Get current encoding +#ifdef USE_TRANSLATION + NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding])); +#else + NSStringEncoding stringEncoding = NSASCIIStringEncoding; +#endif + + // Add "About ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; + + // Add seperator + [appleMenu addItem:[NSMenuItem separatorItem]]; + + // Add "Hide ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide ScummVM") encoding:stringEncoding] action:@selector(hide:) keyEquivalent:@"h"]; + + // Add "Hide Others" menu item + menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide Others") encoding:stringEncoding] action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; + [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; + + // Add "Show All" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Show All") encoding:stringEncoding] action:@selector(unhideAllApplications:) keyEquivalent:@""]; + + // Add seperator + [appleMenu addItem:[NSMenuItem separatorItem]]; + + // Add "Quit ScummVM" menu item + [appleMenu addItemWithTitle:[NSString stringWithCString:_("Quit ScummVM") encoding:stringEncoding] action:@selector(terminate:) keyEquivalent:@"q"]; + + // Put application menu into the menubar + menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; + [menuItem setSubmenu:appleMenu]; + [[NSApp mainMenu] addItem:menuItem]; + + // Tell the application object that this is now the application menu + [NSApp setAppleMenu:appleMenu]; + + + // Create new "Window" menu + windowMenu = [[NSMenu alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding]]; + + // Add "Minimize" menu item + menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Minimize") encoding:stringEncoding] action:@selector(performMiniaturize:) keyEquivalent:@"m"]; + [windowMenu addItem:menuItem]; + + // Put menu into the menubar + menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding] action:nil keyEquivalent:@""]; + [menuItem setSubmenu:windowMenu]; + [[NSApp mainMenu] addItem:menuItem]; + + // Tell the application object that this is now the window menu. + [NSApp setWindowsMenu:windowMenu]; + + // Finally give up our references to the objects + [appleMenu release]; + [windowMenu release]; + [menuItem release]; +} + +#endif // MACOSX diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk index 34631c372d..f1afe37349 100644 --- a/backends/platform/sdl/module.mk +++ b/backends/platform/sdl/module.mk @@ -15,7 +15,7 @@ ifdef MACOSX MODULE_OBJS += \ macosx/macosx-main.o \ macosx/macosx.o \ - macosx/appMenu_osx.o + macosx/appmenu_osx.o endif ifdef WIN32 -- cgit v1.2.3 From 7f58d62ba1a7d86083f0896e8e5607fb92fe018a Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:28:53 -0400 Subject: BACKENDS: Remove unneeded define check --- backends/platform/sdl/macosx/appmenu_osx.mm | 4 ---- 1 file changed, 4 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm index 3e930fbd71..ab0b8f8423 100755 --- a/backends/platform/sdl/macosx/appmenu_osx.mm +++ b/backends/platform/sdl/macosx/appmenu_osx.mm @@ -20,8 +20,6 @@ * */ -#if defined(MACOSX) - // Disable symbol overrides so that we can use system headers. #define FORBIDDEN_SYMBOL_ALLOW_ALL @@ -110,5 +108,3 @@ void replaceApplicationMenuItems() { [windowMenu release]; [menuItem release]; } - -#endif // MACOSX -- cgit v1.2.3 From 708f7739eb726a08ad5af7208bc34dc9d96a3414 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:29:27 -0400 Subject: BACKENDS: Fix a typo --- backends/platform/sdl/macosx/appmenu_osx.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm index ab0b8f8423..bb089a6b61 100755 --- a/backends/platform/sdl/macosx/appmenu_osx.mm +++ b/backends/platform/sdl/macosx/appmenu_osx.mm @@ -60,7 +60,7 @@ void replaceApplicationMenuItems() { // Add "About ScummVM" menu item [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; - // Add seperator + // Add separator [appleMenu addItem:[NSMenuItem separatorItem]]; // Add "Hide ScummVM" menu item @@ -73,7 +73,7 @@ void replaceApplicationMenuItems() { // Add "Show All" menu item [appleMenu addItemWithTitle:[NSString stringWithCString:_("Show All") encoding:stringEncoding] action:@selector(unhideAllApplications:) keyEquivalent:@""]; - // Add seperator + // Add separator [appleMenu addItem:[NSMenuItem separatorItem]]; // Add "Quit ScummVM" menu item -- cgit v1.2.3 From 554dda7008d905d47420c495481e796c4059772e Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:43:16 -0400 Subject: BACKENDS: Fix compilation on case-sensitive Mac OS X --- backends/platform/sdl/macosx/macosx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index e263192c82..4b3d000d34 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -29,7 +29,7 @@ #include "backends/platform/sdl/macosx/macosx.h" #include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h" -#include "backends/platform/sdl/macosx/appMenu_osx.h" +#include "backends/platform/sdl/macosx/appmenu_osx.h" #include "common/archive.h" #include "common/config-manager.h" -- cgit v1.2.3 From 5825ccc16865b9c60d2587b31c50d2ebcc9bab67 Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Wed, 13 Jul 2011 09:47:03 -0400 Subject: BACKENDS: Fix spelling of 'Mac OS X' --- backends/platform/sdl/macosx/macosx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index 4b3d000d34..ddfc99570a 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -60,7 +60,7 @@ void OSystem_MacOSX::initBackend() { TransMan.setLanguage(ConfMan.get("gui_language").c_str()); #endif // USE_TRANSLATION - // Replace the SDL generated menu items with our own translated ones on Mac-OSX + // Replace the SDL generated menu items with our own translated ones on Mac OS X replaceApplicationMenuItems(); // Invoke parent implementation of this method -- cgit v1.2.3 From 6092b324f39f7370da0257c0a2d32ccae55f81fe Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Fri, 15 Jul 2011 00:24:44 +0200 Subject: WINCE: Change default values for "FM_high_quality" & "high_sample_rate" Changed the default values from "false" to "true" as current devices are fast enough to handle this. It's still possible to change the values to "false" if the device isn't fast enough. --- backends/platform/wince/README-WinCE.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index 8f1262051a..87f6e78ffe 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -1,10 +1,15 @@ ScummVM Windows CE FAQ -Last updated: 2011-07-01 -Release version: 1.3.1 +Last updated: 2011-07-14 +Release version: x.x.x ------------------------------------------------------------------------ New in this version ------------------- +x.x.x: +- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as + most devices today are fast enough to handle this. It's still possible to set + this to "false" if you have a slower device. + 1.3.1: - Fix for Normal2xAspect scaler which was causing screen update issues in some games. @@ -361,14 +366,13 @@ Some parameters are specific to this port : Game specific sections (f.e. [monkey2]) - performance options * high_sample_rate bool Desktop quality (22 kHz) sound output if - set. The default is 11 kHz. - If you have a fast device, you can set this - to true to enjoy better sound effects and - music. + set. This is the default. + If you have a slow device, you can set this + to false to prevent lags/delays in the game. * FM_high_quality bool Desktop quality FM synthesis if set. Lower - quality otherwise. The default is low + quality otherwise. The default is high quality. You can change this if you have a - fast device. + slow device. * sound_thread_priority int Set the priority of the sound thread (0, 1, 2). Depending on the release, this is set to 1 internally (above normal). -- cgit v1.2.3 From 5b2e90504c210dbffcdfc8eafbdc84635de79134 Mon Sep 17 00:00:00 2001 From: Marcus Comstedt Date: Sun, 17 Jul 2011 20:59:07 +0200 Subject: DC: Directory handling fixes * Include directory nodes in FSList sent to detectGames - This is required for correct detection of toon. * Don't add / at the end of directories found in getChildren - It looks like that behaviour was removed from posix-fs a long time ago, and now there's apparently code depending on directories _not_ having a / at the end of their name... * Treat games detected in subdirs as duplicates - This is a workaround for a detection bug in toon; it will incorrectly detect the game in the MISC subdirectory as well. * Don't avoid directories called "install" in the game selector - I don't know if the original reason for ignoring "install" is still valid, but the code for doing do so was broken anyway. --- backends/platform/dc/dc-fs.cpp | 2 +- backends/platform/dc/selector.cpp | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp index ac709f62b9..c46f9df093 100644 --- a/backends/platform/dc/dc-fs.cpp +++ b/backends/platform/dc/dc-fs.cpp @@ -124,7 +124,7 @@ bool RoninCDDirectoryNode::getChildren(AbstractFSList &myList, ListMode mode, bo if (mode == Common::FSNode::kListFilesOnly) continue; - myList.push_back(new RoninCDDirectoryNode(newPath+"/")); + myList.push_back(new RoninCDDirectoryNode(newPath)); } else { // Honor the chosen mode if (mode == Common::FSNode::kListDirectoriesOnly) diff --git a/backends/platform/dc/selector.cpp b/backends/platform/dc/selector.cpp index 859f2a40ed..339e5df62d 100644 --- a/backends/platform/dc/selector.cpp +++ b/backends/platform/dc/selector.cpp @@ -185,12 +185,24 @@ static void makeDefIcon(Icon &icon) icon.load(scummvm_icon, sizeof(scummvm_icon)); } +static bool sameOrSubdir(const char *dir1, const char *dir2) +{ + int l1 = strlen(dir1), l2 = strlen(dir2); + if (l1<=l2) + return !strcmp(dir1, dir2); + else + return !memcmp(dir1, dir2, l2); +} + static bool uniqueGame(const char *base, const char *dir, Common::Language lang, Common::Platform plf, Game *games, int cnt) { while (cnt--) - if (!strcmp(dir, games->dir) && + if (/*Don't detect the same game in a subdir, + this is a workaround for the detector bug in toon... */ + sameOrSubdir(dir, games->dir) && + /*!strcmp(dir, games->dir) &&*/ !stricmp(base, games->filename_base) && lang == games->language && plf == games->platform) @@ -237,19 +249,24 @@ static int findGames(Game *games, int max, bool use_ini) } while ((curr_game < max || use_ini) && curr_dir < num_dirs) { - strncpy(dirs[curr_dir].name, dirs[curr_dir].node.getPath().c_str(), 252); - dirs[curr_dir].name[251] = '\0'; + strncpy(dirs[curr_dir].name, dirs[curr_dir].node.getPath().c_str(), 251); + dirs[curr_dir].name[250] = '\0'; + if (!dirs[curr_dir].name[0] || + dirs[curr_dir].name[strlen(dirs[curr_dir].name)-1] != '/') + strcat(dirs[curr_dir].name, "/"); dirs[curr_dir].deficon[0] = '\0'; Common::FSList files, fslist; dirs[curr_dir++].node.getChildren(fslist, Common::FSNode::kListAll); for (Common::FSList::const_iterator entry = fslist.begin(); entry != fslist.end(); ++entry) { if (entry->isDirectory()) { - if (!use_ini && num_dirs < MAX_DIR && - strcasecmp(entry->getDisplayName().c_str(), "install")) { + if (!use_ini && num_dirs < MAX_DIR) { dirs[num_dirs].node = *entry; num_dirs++; } + /* Toonstruck detector needs directories to be present too */ + if(!use_ini) + files.push_back(*entry); } else if (isIcon(*entry)) strcpy(dirs[curr_dir-1].deficon, entry->getDisplayName().c_str()); -- cgit v1.2.3 From da60ff3ded848f54300b8d320d158accde2cd4af Mon Sep 17 00:00:00 2001 From: Littleboy Date: Tue, 19 Jul 2011 13:46:32 -0400 Subject: JANITORIAL: Fix MSVC warnings - Conversion from double to float - Unary minus operator applied to unsigned type - ARRAYSIZE redefinition --- backends/platform/sdl/win32/win32.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp index c1b6c853e4..a2c8e43424 100644 --- a/backends/platform/sdl/win32/win32.cpp +++ b/backends/platform/sdl/win32/win32.cpp @@ -23,11 +23,6 @@ // Disable symbol overrides so that we can use system headers. #define FORBIDDEN_SYMBOL_ALLOW_ALL -#include "common/scummsys.h" -#include "common/config-manager.h" -#include "common/error.h" -#include "common/textconsole.h" - #ifdef WIN32 #define WIN32_LEAN_AND_MEAN @@ -35,6 +30,11 @@ #undef ARRAYSIZE // winnt.h defines ARRAYSIZE, but we want our own one... #include +#include "common/scummsys.h" +#include "common/config-manager.h" +#include "common/error.h" +#include "common/textconsole.h" + #include // For setting the icon #include "backends/platform/sdl/win32/win32.h" -- cgit v1.2.3 From 828f1884b463c49eb39b7f63def0e4bda15d11c6 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sun, 3 Jul 2011 23:01:17 +0200 Subject: MACOSX: Add Sparkle support --- backends/platform/sdl/macosx/macosx.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index ddfc99570a..39fd4237ec 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -30,6 +30,7 @@ #include "backends/platform/sdl/macosx/macosx.h" #include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h" #include "backends/platform/sdl/macosx/appmenu_osx.h" +#include "backends/updates/macosx/macosx-updates.h" #include "common/archive.h" #include "common/config-manager.h" @@ -63,6 +64,11 @@ void OSystem_MacOSX::initBackend() { // Replace the SDL generated menu items with our own translated ones on Mac OS X replaceApplicationMenuItems(); +#if defined(USE_SPARKLE) + // Initialize updates manager + _updateManager = new MacOSXUpdateManager(); +#endif + // Invoke parent implementation of this method OSystem_POSIX::initBackend(); } -- cgit v1.2.3 From edfd998642833d23d5b6004334b96b867f7023f8 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sun, 17 Jul 2011 14:21:57 +0200 Subject: WINCE: Update port specific README --- backends/platform/wince/README-WinCE.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index 87f6e78ffe..1e66d36694 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -9,6 +9,8 @@ x.x.x: - Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as most devices today are fast enough to handle this. It's still possible to set this to "false" if you have a slower device. +- Fix for TeenAgent engine (TeenAgent wasn't running at all, crashed right at + the beginning) 1.3.1: - Fix for Normal2xAspect scaler which was causing screen update issues in some -- cgit v1.2.3 From 822a2ef3dccaedd654ca5429b677456328b22ef1 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Sun, 17 Jul 2011 22:42:45 +0200 Subject: WINCE: Move initialization of TimerManager to overloaded init() method. --- backends/platform/wince/wince-sdl.cpp | 27 +++++++++++++++++++-------- backends/platform/wince/wince-sdl.h | 1 + 2 files changed, 20 insertions(+), 8 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp index ec222c6fc1..1abc3cb350 100644 --- a/backends/platform/wince/wince-sdl.cpp +++ b/backends/platform/wince/wince-sdl.cpp @@ -42,6 +42,7 @@ #include "audio/mixer_intern.h" #include "audio/fmopl.h" +#include "backends/mutex/sdl/sdl-mutex.h" #include "backends/timer/sdl/sdl-timer.h" #include "gui/Actions.h" @@ -379,14 +380,6 @@ void OSystem_WINCE3::initBackend() { ((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager); - // Create the timer (but remove the timer manager from the SDL backend first). - // CE SDL does not support multiple timers (SDL_AddTimer). - // We work around this by using the SetTimer function, since we only use - // one timer in scummvm (for the time being) - delete _timerManager; - _timerManager = new DefaultTimerManager(); - SDL_SetTimer(10, &timer_handler_wrapper); - // Call parent implementation of this method OSystem_SDL::initBackend(); @@ -546,6 +539,24 @@ void OSystem_WINCE3::initSDL() { } } +void OSystem_WINCE3::init() { + // Create SdlMutexManager instance as the TimerManager relies on the + // MutexManager being already initialized + if (_mutexManager == 0) + _mutexManager = new SdlMutexManager(); + + // Create the timer. CE SDL does not support multiple timers (SDL_AddTimer). + // We work around this by using the SetTimer function, since we only use + // one timer in scummvm (for the time being) + if (_timerManager == 0) { + _timerManager = new DefaultTimerManager(); + SDL_SetTimer(10, &timer_handler_wrapper); + } + + // Call parent implementation of this method + OSystem_SDL::init(); +} + void OSystem_WINCE3::quit() { fclose(stdout_file); fclose(stderr_file); diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h index 481956c19a..b4f323c9e2 100644 --- a/backends/platform/wince/wince-sdl.h +++ b/backends/platform/wince/wince-sdl.h @@ -52,6 +52,7 @@ public: void initBackend(); // Overloaded from SDL backend + void init(); void quit(); virtual Common::String getSystemLanguage() const; -- cgit v1.2.3 From bc47ce1fefd1a247e8de6246cdd31459e607d05e Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Mon, 18 Jul 2011 23:24:49 +0200 Subject: WINCE: Change keymapping for AGI and Simon 1 & 2 --- backends/platform/wince/CEActionsPocket.cpp | 11 +++++++++++ backends/platform/wince/CEActionsSmartphone.cpp | 11 +++++++++++ 2 files changed, 22 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp index 194f855e98..5980a41caa 100644 --- a/backends/platform/wince/CEActionsPocket.cpp +++ b/backends/platform/wince/CEActionsPocket.cpp @@ -215,6 +215,8 @@ void CEActionsPocket::initInstanceGame() { _key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start else if (gameid == "atlantis") _key_action[POCKET_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch + else if (is_simon) + _key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10 else _key_action[POCKET_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V // Key bind method @@ -268,6 +270,15 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) { else _key_action[action].setKey(SDLK_s); } + if (action == POCKET_ACTION_SKIP && ConfMan.get("gameid") == "agi") { + // In several AGI games (for example SQ2) it is needed to press F10 to exit from + // a screen. But we still want be able to skip normally with the skip button. + // Because of this, we inject a F10 keystroke here (this works and doesn't seem + // to have side-effects) + _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10 + EventsBuffer::simulateKey(&_key_action[action], true); + _key_action[action].setKey(KEY_ALL_SKIP); + } EventsBuffer::simulateKey(&_key_action[action], true); return true; case POCKET_ACTION_KEYBOARD: diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp index c6456d3eb5..2cce288323 100644 --- a/backends/platform/wince/CEActionsSmartphone.cpp +++ b/backends/platform/wince/CEActionsSmartphone.cpp @@ -181,6 +181,8 @@ void CEActionsSmartphone::initInstanceGame() { _key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start else if (gameid == "atlantis") _key_action[SMARTPHONE_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch + else if (is_simon) + _key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10 else _key_action[SMARTPHONE_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V // Bind keys @@ -232,6 +234,15 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) { else _key_action[action].setKey(SDLK_s); } + if (action == SMARTPHONE_ACTION_SKIP && ConfMan.get("gameid") == "agi") { + // In several AGI games (for example SQ2) it is needed to press F10 to exit from + // a screen. But we still want be able to skip normally with the skip button. + // Because of this, we inject a F10 keystroke here (this works and doesn't seem + // to have side-effects) + _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10 + EventsBuffer::simulateKey(&_key_action[action], true); + _key_action[action].setKey(KEY_ALL_SKIP); + } EventsBuffer::simulateKey(&_key_action[action], true); return true; case SMARTPHONE_ACTION_RIGHTCLICK: -- cgit v1.2.3 From cede1a3f5c4e25bd081b1970f43049ef77ae53f2 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Wed, 20 Jul 2011 02:52:36 +0200 Subject: WINCE: Update port specific README --- backends/platform/wince/README-WinCE.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index 1e66d36694..60bcf710bb 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -1,5 +1,5 @@ ScummVM Windows CE FAQ -Last updated: 2011-07-14 +Last updated: 2011-07-20 Release version: x.x.x ------------------------------------------------------------------------ @@ -9,8 +9,10 @@ x.x.x: - Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as most devices today are fast enough to handle this. It's still possible to set this to "false" if you have a slower device. -- Fix for TeenAgent engine (TeenAgent wasn't running at all, crashed right at - the beginning) +- Fix for TeenAgent & Hugo engines (both weren't running at all, crashed right + at the beginning) +- Replaced the game mass-adding functionality with the functionality used on all + other platforms. It now shows progress while searching for games. 1.3.1: - Fix for Normal2xAspect scaler which was causing screen update issues in some -- cgit v1.2.3 From 7e7e6069193fead17d0865d252400b6826805ffc Mon Sep 17 00:00:00 2001 From: Oystein Eftevaag Date: Tue, 2 Aug 2011 21:00:57 -0400 Subject: MACOSX: Turned update support off by default, simplified and cleaned the pull request --- backends/platform/sdl/macosx/macosx.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index 39fd4237ec..d9de4e5e33 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -64,7 +64,7 @@ void OSystem_MacOSX::initBackend() { // Replace the SDL generated menu items with our own translated ones on Mac OS X replaceApplicationMenuItems(); -#if defined(USE_SPARKLE) +#ifdef USE_SPARKLE // Initialize updates manager _updateManager = new MacOSXUpdateManager(); #endif -- cgit v1.2.3 From baf65bc87227b353cd2aac4cb661b8b9fb0aa0cc Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 6 Aug 2011 11:25:51 +0100 Subject: RECORDER: Added stub for delayMillis() processing --- backends/platform/sdl/sdl.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index d05cca4d1f..e72b95bdc1 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -472,7 +472,8 @@ uint32 OSystem_SDL::getMillis() { } void OSystem_SDL::delayMillis(uint msecs) { - SDL_Delay(msecs); + if (!g_eventRec.processDelayMillis(msecs)) + SDL_Delay(msecs); } void OSystem_SDL::getTimeAndDate(TimeDate &td) const { -- cgit v1.2.3 From bf580e6e6b9af3a545dfd7105aa4e5d691443495 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sun, 7 Aug 2011 11:38:42 +0200 Subject: JANITORIAL: Add missing NL at EOF. --- backends/platform/ds/arm9/source/fat/io_njsd.c | 2 +- backends/platform/ds/arm9/source/fat/io_scsd.c | 2 +- backends/platform/openpandora/build/PXML_schema.xsd | 2 +- backends/platform/psp/dummy.cpp | 2 +- backends/platform/psp/image_viewer.cpp | 2 +- backends/platform/psp/image_viewer.h | 2 +- backends/platform/symbian/.placeholder | 2 +- backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg | 2 +- backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg | 2 +- backends/platform/symbian/mmp/scummvm_base.mmp.in | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/ds/arm9/source/fat/io_njsd.c b/backends/platform/ds/arm9/source/fat/io_njsd.c index b9cb52aa00..12388da8e9 100644 --- a/backends/platform/ds/arm9/source/fat/io_njsd.c +++ b/backends/platform/ds/arm9/source/fat/io_njsd.c @@ -678,4 +678,4 @@ LPIO_INTERFACE NJSD_GetInterface(void) { } ; #endif // defined NDS -#endif \ No newline at end of file +#endif diff --git a/backends/platform/ds/arm9/source/fat/io_scsd.c b/backends/platform/ds/arm9/source/fat/io_scsd.c index 0a6ab5a528..270691436d 100644 --- a/backends/platform/ds/arm9/source/fat/io_scsd.c +++ b/backends/platform/ds/arm9/source/fat/io_scsd.c @@ -103,4 +103,4 @@ LPIO_INTERFACE SCSD_GetInterface(void) { return &io_scsd ; } ; -#endif \ No newline at end of file +#endif diff --git a/backends/platform/openpandora/build/PXML_schema.xsd b/backends/platform/openpandora/build/PXML_schema.xsd index 335efe5002..7c0d635016 100644 --- a/backends/platform/openpandora/build/PXML_schema.xsd +++ b/backends/platform/openpandora/build/PXML_schema.xsd @@ -338,4 +338,4 @@ - \ No newline at end of file + diff --git a/backends/platform/psp/dummy.cpp b/backends/platform/psp/dummy.cpp index 748ac8cbf3..998ecf1488 100644 --- a/backends/platform/psp/dummy.cpp +++ b/backends/platform/psp/dummy.cpp @@ -53,4 +53,4 @@ getsockopt(0, 0, 0, NULL, NULL); return i; -} \ No newline at end of file +} diff --git a/backends/platform/psp/image_viewer.cpp b/backends/platform/psp/image_viewer.cpp index 1ed7698bc8..dbc7cc48c1 100644 --- a/backends/platform/psp/image_viewer.cpp +++ b/backends/platform/psp/image_viewer.cpp @@ -321,4 +321,4 @@ void ImageViewer::handleEvent(uint32 event) { PSP_ERROR("Unknown event %d\n", event); break; } -} \ No newline at end of file +} diff --git a/backends/platform/psp/image_viewer.h b/backends/platform/psp/image_viewer.h index ad188536a3..91a70b85cc 100644 --- a/backends/platform/psp/image_viewer.h +++ b/backends/platform/psp/image_viewer.h @@ -99,4 +99,4 @@ public: void setDisplayManager(DisplayManager *displayManager) { _displayManager = displayManager; } }; -#endif /* PSP_IMAGE_VIEWER_H */ \ No newline at end of file +#endif /* PSP_IMAGE_VIEWER_H */ diff --git a/backends/platform/symbian/.placeholder b/backends/platform/symbian/.placeholder index dcf4d34a62..4af1e27cc7 100644 --- a/backends/platform/symbian/.placeholder +++ b/backends/platform/symbian/.placeholder @@ -1 +1 @@ ->> SumthinWicked *grins* << \ No newline at end of file +>> SumthinWicked *grins* << diff --git a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg index 469c815afb..0d22c9d016 100644 --- a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg +++ b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg @@ -61,4 +61,4 @@ ""-"!:\system\apps\ScummVM\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall. \ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg index ad3a31cb30..8284f64611 100644 --- a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg +++ b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg @@ -54,4 +54,4 @@ ; add extra Vibration lib for P800, will be ignored during all other installs IF MachineUID = 0x101F408B @"Vibration.sis", (0x101F94A3) -ENDIF \ No newline at end of file +ENDIF diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in index 9acef57cea..6a4bba8345 100644 --- a/backends/platform/symbian/mmp/scummvm_base.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in @@ -156,4 +156,4 @@ SOURCE backends\vkeybd\virtual-keyboard.cpp // Downscaler SOURCE graphics\scaler\downscaler.cpp -MACRO SDL_BACKEND \ No newline at end of file +MACRO SDL_BACKEND -- cgit v1.2.3 From 23a0f5318c50cdf3dce19e4de0c98fb5ae1c2618 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sun, 7 Aug 2011 11:39:54 +0200 Subject: JANITORIAL: Remove trailing empty lines. --- backends/platform/android/android.cpp | 1 - backends/platform/android/android.h | 1 - backends/platform/android/android.mk | 1 - backends/platform/android/asset-archive.h | 1 - backends/platform/android/events.cpp | 1 - backends/platform/android/gfx.cpp | 1 - backends/platform/android/jni.cpp | 1 - backends/platform/android/jni.h | 1 - backends/platform/android/module.mk | 1 - .../android/org/inodes/gus/scummvm/EditableSurfaceView.java | 1 - .../android/org/inodes/gus/scummvm/PluginProvider.java | 1 - backends/platform/android/org/inodes/gus/scummvm/ScummVM.java | 1 - .../android/org/inodes/gus/scummvm/ScummVMActivity.java | 1 - .../android/org/inodes/gus/scummvm/ScummVMApplication.java | 1 - .../android/org/inodes/gus/scummvm/ScummVMEvents.java | 1 - .../platform/android/org/inodes/gus/scummvm/Unpacker.java | 1 - backends/platform/android/texture.cpp | 1 - backends/platform/android/texture.h | 1 - backends/platform/dc/DCLauncherDialog.h | 1 - backends/platform/dc/README | 1 - backends/platform/dc/audio.cpp | 2 -- backends/platform/dc/cache.S | 1 - backends/platform/dc/dc-fs.cpp | 1 - backends/platform/dc/dc.h | 1 - backends/platform/dc/dcmain.cpp | 1 - backends/platform/dc/display.cpp | 1 - backends/platform/dc/input.cpp | 1 - backends/platform/dc/label.cpp | 1 - backends/platform/dc/plugin_head.S | 1 - backends/platform/dingux/README.DINGUX | 1 - backends/platform/dingux/scummvm.gpe | 1 - backends/platform/ds/arm7/source/libcartreset/cartreset.c | 3 --- .../platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h | 1 - backends/platform/ds/arm7/source/main.cpp | 1 - backends/platform/ds/arm9/dist/readme_ds.txt | 5 ----- backends/platform/ds/arm9/source/dsoptions.cpp | 1 - backends/platform/ds/arm9/source/fat/disc_io.h | 1 - backends/platform/ds/arm9/source/fat/io_m3_common.c | 1 - backends/platform/ds/arm9/source/fat/io_m3_common.h | 1 - backends/platform/ds/arm9/source/fat/io_m3sd_asm.s | 1 - backends/platform/ds/arm9/source/fat/io_scsd_asm.s | 11 ----------- backends/platform/ds/arm9/source/fat/io_sd_common.c | 2 -- backends/platform/ds/arm9/source/fat/m3sd.s | 1 - backends/platform/ds/arm9/source/keys.cpp | 1 - backends/platform/ds/arm9/source/osystem_ds.cpp | 2 -- backends/platform/ds/arm9/source/scummhelp.cpp | 1 - backends/platform/ds/ds.mk | 1 - .../platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h | 1 - .../platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s | 1 - backends/platform/iphone/iphone_main.m | 1 - backends/platform/iphone/iphone_video.m | 1 - backends/platform/n64/Makefile | 1 - backends/platform/n64/README.N64 | 1 - backends/platform/n64/framfs_save_manager.cpp | 1 - backends/platform/n64/framfs_save_manager.h | 1 - backends/platform/n64/n64.mk | 1 - backends/platform/n64/nintendo64.cpp | 1 - backends/platform/n64/osys_n64.h | 1 - backends/platform/n64/osys_n64_base.cpp | 1 - backends/platform/n64/osys_n64_events.cpp | 1 - backends/platform/n64/osys_n64_utilities.cpp | 1 - backends/platform/n64/pad_rom.sh | 1 - backends/platform/n64/pakfs_save_manager.cpp | 1 - backends/platform/n64/pakfs_save_manager.h | 1 - backends/platform/n64/portdefs.h | 1 - backends/platform/openpandora/build/runscummvm.sh | 1 - backends/platform/ps2/DmaPipe.h | 1 - backends/platform/ps2/Gs2dScreen.cpp | 2 -- backends/platform/ps2/Makefile.gdb | 1 - backends/platform/ps2/Makefile.ps2 | 1 - backends/platform/ps2/asyncfio.cpp | 1 - backends/platform/ps2/asyncfio.h | 1 - backends/platform/ps2/eecodyvdfs.c | 2 -- backends/platform/ps2/eecodyvdfs.h | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h | 1 - backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst | 2 -- backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c | 2 -- backends/platform/ps2/iop/rpckbd/src/imports.lst | 1 - backends/platform/ps2/irxboot.cpp | 1 - backends/platform/ps2/irxboot.h | 1 - backends/platform/ps2/ps2debug.cpp | 1 - backends/platform/ps2/ps2debug.h | 1 - backends/platform/ps2/ps2input.cpp | 2 -- backends/platform/ps2/ps2input.h | 1 - backends/platform/ps2/ps2mutex.cpp | 1 - backends/platform/ps2/ps2pad.cpp | 2 -- backends/platform/ps2/ps2pad.h | 1 - backends/platform/ps2/rpckbd.c | 1 - backends/platform/ps2/rpckbd.h | 1 - backends/platform/ps2/sdlkeys.h | 2 -- backends/platform/psp/Makefile | 1 - backends/platform/psp/README.PSP | 1 - backends/platform/psp/README.PSP.in | 1 - backends/platform/psp/display_manager.cpp | 1 - backends/platform/psp/input.cpp | 2 -- backends/platform/psp/memory.h | 2 -- backends/platform/psp/portdefs.h | 2 -- backends/platform/psp/rtc.cpp | 1 - backends/platform/psp/thread.cpp | 1 - backends/platform/psp/thread.h | 2 -- backends/platform/psp/trace.cpp | 1 - backends/platform/symbian/BuildPackageUpload_AllVersions.pl | 2 -- backends/platform/symbian/README | 1 - backends/platform/symbian/S60v3/ScummVM_Loc.rss | 1 - backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss | 1 - backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss | 1 - backends/platform/symbian/S60v3/scummvm_reg.rss | 1 - backends/platform/symbian/S80/ScummVM_S80.mmp.in | 1 - backends/platform/symbian/S90/Scummvm_S90.mmp.in | 1 - backends/platform/symbian/UIQ2/ScummVM.rss | 1 - backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in | 1 - backends/platform/symbian/UIQ3/ScummVM.rss | 1 - backends/platform/symbian/UIQ3/ScummVM_A0000658.rss | 1 - backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss | 1 - backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss | 1 - backends/platform/symbian/UIQ3/scummvm_loc.rss | 1 - backends/platform/symbian/UIQ3/scummvm_reg.rss | 1 - backends/platform/symbian/res/ScummVmAif.rss | 3 --- backends/platform/symbian/src/ScummApp.cpp | 2 -- backends/platform/symbian/src/ScummApp.h | 2 -- backends/platform/wii/gdb.txt | 1 - backends/platform/wii/main.cpp | 1 - backends/platform/wii/module.mk | 1 - backends/platform/wii/options.cpp | 1 - backends/platform/wii/options.h | 1 - backends/platform/wii/osystem_events.cpp | 1 - backends/platform/wii/osystem_gfx.cpp | 1 - backends/platform/wii/osystem_sfx.cpp | 1 - backends/platform/wii/wii.mk | 1 - backends/platform/wince/CEScaler.cpp | 1 - backends/platform/wince/CEgui/CEGUI.h | 1 - backends/platform/wince/CEgui/PanelKeyboard.cpp | 1 - backends/platform/wince/CEkeys/CEKeys.h | 1 - backends/platform/wince/CEkeys/EventsBuffer.cpp | 2 -- backends/platform/wince/missing/assert.h | 1 - backends/platform/wince/missing/io.h | 1 - 140 files changed, 176 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp index 17c7d4f9cb..a935bf145d 100644 --- a/backends/platform/android/android.cpp +++ b/backends/platform/android/android.cpp @@ -602,4 +602,3 @@ void AndroidPluginProvider::addCustomDirectories(Common::FSList &dirs) const { #endif #endif - diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h index c2ada2ab77..f39a8f1144 100644 --- a/backends/platform/android/android.h +++ b/backends/platform/android/android.h @@ -296,4 +296,3 @@ public: #endif #endif - diff --git a/backends/platform/android/android.mk b/backends/platform/android/android.mk index 77fdb139d8..63d194fdc1 100644 --- a/backends/platform/android/android.mk +++ b/backends/platform/android/android.mk @@ -189,4 +189,3 @@ androiddistdebug: all done .PHONY: androidrelease androidtest - diff --git a/backends/platform/android/asset-archive.h b/backends/platform/android/asset-archive.h index 016e3e31a5..9216412e0a 100644 --- a/backends/platform/android/asset-archive.h +++ b/backends/platform/android/asset-archive.h @@ -52,4 +52,3 @@ private: #endif #endif - diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp index cf1d4b173c..2a16e69411 100644 --- a/backends/platform/android/events.cpp +++ b/backends/platform/android/events.cpp @@ -820,4 +820,3 @@ bool OSystem_Android::pollEvent(Common::Event &event) { } #endif - diff --git a/backends/platform/android/gfx.cpp b/backends/platform/android/gfx.cpp index b8a9e74437..8bc914f567 100644 --- a/backends/platform/android/gfx.cpp +++ b/backends/platform/android/gfx.cpp @@ -826,4 +826,3 @@ void OSystem_Android::disableCursorPalette() { } #endif - diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp index e3b4ef7401..b44a585528 100644 --- a/backends/platform/android/jni.cpp +++ b/backends/platform/android/jni.cpp @@ -619,4 +619,3 @@ void JNI::setPause(JNIEnv *env, jobject self, jboolean value) { } #endif - diff --git a/backends/platform/android/jni.h b/backends/platform/android/jni.h index 1abecf0a37..52698e0f35 100644 --- a/backends/platform/android/jni.h +++ b/backends/platform/android/jni.h @@ -145,4 +145,3 @@ inline int JNI::writeAudio(JNIEnv *env, jbyteArray &data, int offset, int size) #endif #endif - diff --git a/backends/platform/android/module.mk b/backends/platform/android/module.mk index 2fe4b40585..de5fe98a53 100644 --- a/backends/platform/android/module.mk +++ b/backends/platform/android/module.mk @@ -12,4 +12,3 @@ MODULE_OBJS := \ MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) OBJS := $(MODULE_OBJS) $(OBJS) MODULE_DIRS += $(sort $(dir $(MODULE_OBJS))) - diff --git a/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java b/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java index cede7eedd4..3aef14b851 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java +++ b/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java @@ -59,4 +59,3 @@ public class EditableSurfaceView extends SurfaceView { return new MyInputConnection(); } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java b/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java index 3c91d9f5dc..d90b7b2c68 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java +++ b/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java @@ -51,4 +51,3 @@ public class PluginProvider extends BroadcastReceiver { setResultExtras(extras); } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java index ef9f4cc1e0..246a02c9be 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java @@ -449,4 +449,3 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable { System.load(libpath.getPath()); } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java index 1978b690d0..ce4e016322 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java @@ -222,4 +222,3 @@ public class ScummVMActivity extends Activity { InputMethodManager.HIDE_IMPLICIT_ONLY); } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java index f9eec72eac..8ab7d1a084 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java @@ -28,4 +28,3 @@ public class ScummVMApplication extends Application { return _cache_dir; } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java index 2d5c100a1c..175ff0b677 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java @@ -229,4 +229,3 @@ public class ScummVMEvents implements return true; } } - diff --git a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java index c4b2ad7f5d..8811b1f3ae 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java +++ b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java @@ -370,4 +370,3 @@ public class Unpacker extends Activity { } } } - diff --git a/backends/platform/android/texture.cpp b/backends/platform/android/texture.cpp index e993ed6794..53b4d1cc59 100644 --- a/backends/platform/android/texture.cpp +++ b/backends/platform/android/texture.cpp @@ -488,4 +488,3 @@ GLESFakePalette5551Texture::~GLESFakePalette5551Texture() { } #endif - diff --git a/backends/platform/android/texture.h b/backends/platform/android/texture.h index dd34ba9d88..4307b5a1bc 100644 --- a/backends/platform/android/texture.h +++ b/backends/platform/android/texture.h @@ -271,4 +271,3 @@ public: #endif #endif - diff --git a/backends/platform/dc/DCLauncherDialog.h b/backends/platform/dc/DCLauncherDialog.h index 72df3e15cc..519524222f 100644 --- a/backends/platform/dc/DCLauncherDialog.h +++ b/backends/platform/dc/DCLauncherDialog.h @@ -25,4 +25,3 @@ class DCLauncherDialog { DCLauncherDialog() {} int runModal(); }; - diff --git a/backends/platform/dc/README b/backends/platform/dc/README index e4ebda840e..e26df500e8 100644 --- a/backends/platform/dc/README +++ b/backends/platform/dc/README @@ -23,4 +23,3 @@ should get a scrambled binary SCUMMVM.BIN and some plugins *.PLG. For serial/IP upload, remove the "DYNAMIC_MODULES" line and just run `make', to get a static binary with the name `scummvm.elf'. - diff --git a/backends/platform/dc/audio.cpp b/backends/platform/dc/audio.cpp index 1fee970a90..35cb51f349 100644 --- a/backends/platform/dc/audio.cpp +++ b/backends/platform/dc/audio.cpp @@ -74,5 +74,3 @@ void OSystem_Dreamcast::checkSound() if ((fillpos += n) >= curr_ring_buffer_samples) fillpos = 0; } - - diff --git a/backends/platform/dc/cache.S b/backends/platform/dc/cache.S index 1a1595a9a1..4beeedcea7 100644 --- a/backends/platform/dc/cache.S +++ b/backends/platform/dc/cache.S @@ -35,4 +35,3 @@ ccr_addr: .long 0xff00001c ccr_data: .word 0x0905 - diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp index c46f9df093..f30c9c56d1 100644 --- a/backends/platform/dc/dc-fs.cpp +++ b/backends/platform/dc/dc-fs.cpp @@ -165,4 +165,3 @@ AbstractFSNode *OSystem_Dreamcast::makeFileNodePath(const Common::String &path) AbstractFSNode *node = RoninCDFileNode::makeFileNodePath(path); return (node? node : new RoninCDNonexistingNode(path)); } - diff --git a/backends/platform/dc/dc.h b/backends/platform/dc/dc.h index bde50daa2d..2e32ff3eb4 100644 --- a/backends/platform/dc/dc.h +++ b/backends/platform/dc/dc.h @@ -259,4 +259,3 @@ extern int handleInput(struct mapledev *pad, int &mouse_x, int &mouse_y, byte &shiftFlags, Interactive *inter = NULL); extern bool selectGame(char *&, char *&, Common::Language &, Common::Platform &, class Icon &); - diff --git a/backends/platform/dc/dcmain.cpp b/backends/platform/dc/dcmain.cpp index 06738a687d..3e3279f9c3 100644 --- a/backends/platform/dc/dcmain.cpp +++ b/backends/platform/dc/dcmain.cpp @@ -377,4 +377,3 @@ int DCLauncherDialog::runModal() return 0; } - diff --git a/backends/platform/dc/display.cpp b/backends/platform/dc/display.cpp index a11e329df3..76658c6590 100644 --- a/backends/platform/dc/display.cpp +++ b/backends/platform/dc/display.cpp @@ -732,4 +732,3 @@ int16 OSystem_Dreamcast::getOverlayWidth() { return OVL_W; } - diff --git a/backends/platform/dc/input.cpp b/backends/platform/dc/input.cpp index 3759eec6df..7b21c76efa 100644 --- a/backends/platform/dc/input.cpp +++ b/backends/platform/dc/input.cpp @@ -249,4 +249,3 @@ bool OSystem_Dreamcast::pollEvent(Common::Event &event) return false; } } - diff --git a/backends/platform/dc/label.cpp b/backends/platform/dc/label.cpp index 1094dd3fb4..5db031958f 100644 --- a/backends/platform/dc/label.cpp +++ b/backends/platform/dc/label.cpp @@ -134,4 +134,3 @@ void Label::draw(float x, float y, unsigned int argb, float scale) myvertex.cmd |= TA_CMD_VERTEX_EOS; ta_commit_list(&myvertex); } - diff --git a/backends/platform/dc/plugin_head.S b/backends/platform/dc/plugin_head.S index 6cbe9eec85..a056f1c0f0 100644 --- a/backends/platform/dc/plugin_head.S +++ b/backends/platform/dc/plugin_head.S @@ -3,4 +3,3 @@ .section .dtors,"aw",@progbits .end - diff --git a/backends/platform/dingux/README.DINGUX b/backends/platform/dingux/README.DINGUX index d867e02f03..04f0d30844 100644 --- a/backends/platform/dingux/README.DINGUX +++ b/backends/platform/dingux/README.DINGUX @@ -65,4 +65,3 @@ I still raccomand the use of opendingux kernel + rootfs, but if you don't, this image plus another kernel (eg. SiENcE's one) should be do the job. Enjoy - diff --git a/backends/platform/dingux/scummvm.gpe b/backends/platform/dingux/scummvm.gpe index 84ab0c6b95..ce5d174a5c 100644 --- a/backends/platform/dingux/scummvm.gpe +++ b/backends/platform/dingux/scummvm.gpe @@ -2,4 +2,3 @@ HOME=`pwd` $HOME/scummvm.elf - diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset.c b/backends/platform/ds/arm7/source/libcartreset/cartreset.c index db2f3cfddc..85be823b71 100644 --- a/backends/platform/ds/arm7/source/libcartreset/cartreset.c +++ b/backends/platform/ds/arm7/source/libcartreset/cartreset.c @@ -104,6 +104,3 @@ void cartExecute() } #endif - - - diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h index f1faebea37..98808f79c5 100644 --- a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h +++ b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h @@ -54,4 +54,3 @@ void cartExecute(); #endif #endif - diff --git a/backends/platform/ds/arm7/source/main.cpp b/backends/platform/ds/arm7/source/main.cpp index 6b5a0ec321..2e9cacc669 100644 --- a/backends/platform/ds/arm7/source/main.cpp +++ b/backends/platform/ds/arm7/source/main.cpp @@ -650,4 +650,3 @@ int main(int argc, char ** argv) { ////////////////////////////////////////////////////////////////////// - diff --git a/backends/platform/ds/arm9/dist/readme_ds.txt b/backends/platform/ds/arm9/dist/readme_ds.txt index 24c85ad556..dc37fecce5 100644 --- a/backends/platform/ds/arm9/dist/readme_ds.txt +++ b/backends/platform/ds/arm9/dist/readme_ds.txt @@ -861,8 +861,3 @@ For other builds, substitute the letters b - g in the above line. To build everything, type: make allbuildssafe - - - - - diff --git a/backends/platform/ds/arm9/source/dsoptions.cpp b/backends/platform/ds/arm9/source/dsoptions.cpp index 263ca58705..7154d4ae3f 100644 --- a/backends/platform/ds/arm9/source/dsoptions.cpp +++ b/backends/platform/ds/arm9/source/dsoptions.cpp @@ -433,4 +433,3 @@ void setOptions() { } } // End of namespace DS - diff --git a/backends/platform/ds/arm9/source/fat/disc_io.h b/backends/platform/ds/arm9/source/fat/disc_io.h index 0fc83a7493..cd930ba454 100644 --- a/backends/platform/ds/arm9/source/fat/disc_io.h +++ b/backends/platform/ds/arm9/source/fat/disc_io.h @@ -218,4 +218,3 @@ typedef struct { #endif #endif // define DISC_IO_H - diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.c b/backends/platform/ds/arm9/source/fat/io_m3_common.c index 9c8280c808..e3232a4df6 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3_common.c +++ b/backends/platform/ds/arm9/source/fat/io_m3_common.c @@ -57,4 +57,3 @@ void _M3_changeMode (u32 mode) { _M3_readHalfword (0x08000188); } } - diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.h b/backends/platform/ds/arm9/source/fat/io_m3_common.h index 6d0c669783..6a0cc03c2e 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3_common.h +++ b/backends/platform/ds/arm9/source/fat/io_m3_common.h @@ -45,4 +45,3 @@ extern void _M3_changeMode (u32 mode); #endif // IO_M3_COMMON_H - diff --git a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s index a6bb8dc187..f2bcce7da9 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s +++ b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s @@ -193,4 +193,3 @@ sd_data_write_busy2: ldmfd r13!,{r4-r5,r15} @-----------------end------------------- - diff --git a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s index 390d36afeb..a33fa6af35 100644 --- a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s +++ b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s @@ -508,14 +508,3 @@ MemoryCard_IsInserted: @----------------end MemoryCard_IsInserted--------------- .END - - - - - - - - - - - diff --git a/backends/platform/ds/arm9/source/fat/io_sd_common.c b/backends/platform/ds/arm9/source/fat/io_sd_common.c index ade9df0d80..e7ab472e1b 100644 --- a/backends/platform/ds/arm9/source/fat/io_sd_common.c +++ b/backends/platform/ds/arm9/source/fat/io_sd_common.c @@ -199,5 +199,3 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, return true; } - - diff --git a/backends/platform/ds/arm9/source/fat/m3sd.s b/backends/platform/ds/arm9/source/fat/m3sd.s index f6fab1a9e2..899cbc7927 100644 --- a/backends/platform/ds/arm9/source/fat/m3sd.s +++ b/backends/platform/ds/arm9/source/fat/m3sd.s @@ -197,4 +197,3 @@ DC_FlushRangeLoop: bx lr @--------------------------------------- .end - diff --git a/backends/platform/ds/arm9/source/keys.cpp b/backends/platform/ds/arm9/source/keys.cpp index 2f8497ab19..aec7d57bda 100644 --- a/backends/platform/ds/arm9/source/keys.cpp +++ b/backends/platform/ds/arm9/source/keys.cpp @@ -134,4 +134,3 @@ uint32 keysUp(void) { } // End of namespace DS - diff --git a/backends/platform/ds/arm9/source/osystem_ds.cpp b/backends/platform/ds/arm9/source/osystem_ds.cpp index b157a3a87a..fdd310ec17 100644 --- a/backends/platform/ds/arm9/source/osystem_ds.cpp +++ b/backends/platform/ds/arm9/source/osystem_ds.cpp @@ -901,5 +901,3 @@ void OSystem_DS::engineDone() { #endif } - - diff --git a/backends/platform/ds/arm9/source/scummhelp.cpp b/backends/platform/ds/arm9/source/scummhelp.cpp index 670b46a3b9..112ba49d76 100644 --- a/backends/platform/ds/arm9/source/scummhelp.cpp +++ b/backends/platform/ds/arm9/source/scummhelp.cpp @@ -98,4 +98,3 @@ void updateStrings(byte gameId, byte version, Common::Platform platform, #undef ADD_BIND #undef ADD_TEXT #undef ADD_LINE - diff --git a/backends/platform/ds/ds.mk b/backends/platform/ds/ds.mk index 654475e1f3..78216cb9a2 100644 --- a/backends/platform/ds/ds.mk +++ b/backends/platform/ds/ds.mk @@ -236,4 +236,3 @@ $(ndsdir)/arm7/arm7.bin: $(ndsdir)/arm7/arm7.elf # # Fingolfin used # CXX=arm-eabi-g++ CC=arm-eabi-gcc ./configure --host=arm-elf --enable-speed --enable-sso -enable-fpm=arm CFLAGS='-specs=ds_arm9.specs -mthumb-interwork' --disable-shared --disable-debugging LDFLAGS=$DEVKITPRO/libnds/lib/libnds9.a - diff --git a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h index 520841ace7..d01548e474 100644 --- a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h +++ b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h @@ -8,4 +8,3 @@ void flush_uppermem_cache(void *start_address, void *end_address, int flags); #ifdef __cplusplus } #endif - diff --git a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s index 17628c156a..265908e1fd 100644 --- a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s +++ b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s @@ -3,4 +3,3 @@ flush_uppermem_cache: swi #0x9f0002 bx lr - diff --git a/backends/platform/iphone/iphone_main.m b/backends/platform/iphone/iphone_main.m index 7bb5f0c317..c2ec328bf5 100644 --- a/backends/platform/iphone/iphone_main.m +++ b/backends/platform/iphone/iphone_main.m @@ -137,4 +137,3 @@ int main(int argc, char** argv) { } @end - diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m index 04d25cebf8..eb16676428 100644 --- a/backends/platform/iphone/iphone_video.m +++ b/backends/platform/iphone/iphone_video.m @@ -754,4 +754,3 @@ bool getLocalMouseCoords(CGPoint *point) { } @end - diff --git a/backends/platform/n64/Makefile b/backends/platform/n64/Makefile index cffe277312..4f3744f7e8 100644 --- a/backends/platform/n64/Makefile +++ b/backends/platform/n64/Makefile @@ -90,4 +90,3 @@ spotless : distclean send: $(TARGET).v64 sudo ucon64 --xv64 $(TARGET).v64 - diff --git a/backends/platform/n64/README.N64 b/backends/platform/n64/README.N64 index b47b239658..42f78f4754 100644 --- a/backends/platform/n64/README.N64 +++ b/backends/platform/n64/README.N64 @@ -113,4 +113,3 @@ Notes ========== Write the rest of this README. - diff --git a/backends/platform/n64/framfs_save_manager.cpp b/backends/platform/n64/framfs_save_manager.cpp index 983b9aba8d..78f5333f2e 100644 --- a/backends/platform/n64/framfs_save_manager.cpp +++ b/backends/platform/n64/framfs_save_manager.cpp @@ -69,4 +69,3 @@ Common::StringArray FRAMSaveManager::listSavefiles(const Common::String &pattern return list; } - diff --git a/backends/platform/n64/framfs_save_manager.h b/backends/platform/n64/framfs_save_manager.h index d50c17d85b..da553e423a 100644 --- a/backends/platform/n64/framfs_save_manager.h +++ b/backends/platform/n64/framfs_save_manager.h @@ -129,4 +129,3 @@ public: #endif - diff --git a/backends/platform/n64/n64.mk b/backends/platform/n64/n64.mk index 2e383e670d..83ad405503 100644 --- a/backends/platform/n64/n64.mk +++ b/backends/platform/n64/n64.mk @@ -26,4 +26,3 @@ endif $(srcdir)/backends/platform/n64/pad_rom.sh scummvm.v64 rm scummvm.bak mv scummvm.v64 $(bundle_name)/scummvm.v64 - diff --git a/backends/platform/n64/nintendo64.cpp b/backends/platform/n64/nintendo64.cpp index 3e811e73d2..bc416157e6 100644 --- a/backends/platform/n64/nintendo64.cpp +++ b/backends/platform/n64/nintendo64.cpp @@ -31,4 +31,3 @@ int main(void) { g_system->quit(); // TODO: Consider removing / replacing this! return res; } - diff --git a/backends/platform/n64/osys_n64.h b/backends/platform/n64/osys_n64.h index 354f25a1cf..4788beb1ca 100644 --- a/backends/platform/n64/osys_n64.h +++ b/backends/platform/n64/osys_n64.h @@ -212,4 +212,3 @@ public: }; #endif /* __OSYS_N64_H__ */ - diff --git a/backends/platform/n64/osys_n64_base.cpp b/backends/platform/n64/osys_n64_base.cpp index 4bc3780fe2..c3adb9691c 100644 --- a/backends/platform/n64/osys_n64_base.cpp +++ b/backends/platform/n64/osys_n64_base.cpp @@ -922,4 +922,3 @@ void OSystem_N64::detectControllers(void) { inline uint16 colRGB888toBGR555(byte r, byte g, byte b) { return ((r >> 3) << 1) | ((g >> 3) << 6) | ((b >> 3) << 11); } - diff --git a/backends/platform/n64/osys_n64_events.cpp b/backends/platform/n64/osys_n64_events.cpp index 62f11aef64..c83eb194ac 100644 --- a/backends/platform/n64/osys_n64_events.cpp +++ b/backends/platform/n64/osys_n64_events.cpp @@ -439,4 +439,3 @@ bool OSystem_N64::pollEvent(Common::Event &event) { return false; } - diff --git a/backends/platform/n64/osys_n64_utilities.cpp b/backends/platform/n64/osys_n64_utilities.cpp index 0622e6423d..94d727e421 100644 --- a/backends/platform/n64/osys_n64_utilities.cpp +++ b/backends/platform/n64/osys_n64_utilities.cpp @@ -115,4 +115,3 @@ int timer_handler(int t) { tm->handler(); return t; } - diff --git a/backends/platform/n64/pad_rom.sh b/backends/platform/n64/pad_rom.sh index 085203306f..463eeb4e28 100755 --- a/backends/platform/n64/pad_rom.sh +++ b/backends/platform/n64/pad_rom.sh @@ -10,4 +10,3 @@ REMAINDER=`echo $BASESIZE - $REMAINDER | bc` CARTSIZE=`echo $CARTSIZE + $REMAINDER | bc` ucon64 -q --n64 --v64 --chk --padn=$CARTSIZE $1 - diff --git a/backends/platform/n64/pakfs_save_manager.cpp b/backends/platform/n64/pakfs_save_manager.cpp index df9baa4d21..bf2fe8b1bc 100644 --- a/backends/platform/n64/pakfs_save_manager.cpp +++ b/backends/platform/n64/pakfs_save_manager.cpp @@ -70,4 +70,3 @@ Common::StringArray PAKSaveManager::listSavefiles(const Common::String &pattern) return list; } - diff --git a/backends/platform/n64/pakfs_save_manager.h b/backends/platform/n64/pakfs_save_manager.h index 6987801294..e0fcbc1e2d 100644 --- a/backends/platform/n64/pakfs_save_manager.h +++ b/backends/platform/n64/pakfs_save_manager.h @@ -130,4 +130,3 @@ public: #endif - diff --git a/backends/platform/n64/portdefs.h b/backends/platform/n64/portdefs.h index 35ef3c71db..677ad48477 100644 --- a/backends/platform/n64/portdefs.h +++ b/backends/platform/n64/portdefs.h @@ -49,4 +49,3 @@ typedef signed int int32; #define SCUMMVM_DONT_DEFINE_TYPES #endif - diff --git a/backends/platform/openpandora/build/runscummvm.sh b/backends/platform/openpandora/build/runscummvm.sh index c641235219..9c9d8362cb 100755 --- a/backends/platform/openpandora/build/runscummvm.sh +++ b/backends/platform/openpandora/build/runscummvm.sh @@ -12,4 +12,3 @@ mkdir runtime cd runtime ../bin/scummvm --fullscreen --gfx-mode=2x --config=../scummvm.config --themepath=../data - diff --git a/backends/platform/ps2/DmaPipe.h b/backends/platform/ps2/DmaPipe.h index fd8f55c154..c99da1c395 100644 --- a/backends/platform/ps2/DmaPipe.h +++ b/backends/platform/ps2/DmaPipe.h @@ -64,4 +64,3 @@ private: }; #endif //__DMAPIPE_H__ - diff --git a/backends/platform/ps2/Gs2dScreen.cpp b/backends/platform/ps2/Gs2dScreen.cpp index 332b2a3c03..ddc1bdf668 100644 --- a/backends/platform/ps2/Gs2dScreen.cpp +++ b/backends/platform/ps2/Gs2dScreen.cpp @@ -816,5 +816,3 @@ const uint32 Gs2dScreen::_binaryClut[16] __attribute__((aligned(64))) = { GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80) }; - - diff --git a/backends/platform/ps2/Makefile.gdb b/backends/platform/ps2/Makefile.gdb index 1e2510d3f4..8ca47cd9f1 100644 --- a/backends/platform/ps2/Makefile.gdb +++ b/backends/platform/ps2/Makefile.gdb @@ -102,4 +102,3 @@ all: $(TARGET) $(TARGET): $(OBJS) $(LD) $^ $(LDFLAGS) -o $@ - diff --git a/backends/platform/ps2/Makefile.ps2 b/backends/platform/ps2/Makefile.ps2 index 77cc735c5f..d6ce08ae84 100644 --- a/backends/platform/ps2/Makefile.ps2 +++ b/backends/platform/ps2/Makefile.ps2 @@ -105,4 +105,3 @@ all: $(TARGET) $(TARGET): $(OBJS) $(LD) $^ $(LDFLAGS) -o $@ - diff --git a/backends/platform/ps2/asyncfio.cpp b/backends/platform/ps2/asyncfio.cpp index d3d8eb65c7..3f20349107 100644 --- a/backends/platform/ps2/asyncfio.cpp +++ b/backends/platform/ps2/asyncfio.cpp @@ -237,4 +237,3 @@ bool AsyncFio::fioAvail(void) { } return retVal; } - diff --git a/backends/platform/ps2/asyncfio.h b/backends/platform/ps2/asyncfio.h index 26ee3f63dd..31684d4349 100644 --- a/backends/platform/ps2/asyncfio.h +++ b/backends/platform/ps2/asyncfio.h @@ -50,4 +50,3 @@ private: volatile int * volatile _runningOp; volatile int _ioSlots[MAX_HANDLES]; }; - diff --git a/backends/platform/ps2/eecodyvdfs.c b/backends/platform/ps2/eecodyvdfs.c index e9d4bc6a5c..f410b0c8ec 100644 --- a/backends/platform/ps2/eecodyvdfs.c +++ b/backends/platform/ps2/eecodyvdfs.c @@ -63,5 +63,3 @@ int driveStandby(void) { driveStopped = 0; return *(int *)sbuff; } - - diff --git a/backends/platform/ps2/eecodyvdfs.h b/backends/platform/ps2/eecodyvdfs.h index 4b383795c7..1d43fb662f 100644 --- a/backends/platform/ps2/eecodyvdfs.h +++ b/backends/platform/ps2/eecodyvdfs.h @@ -49,4 +49,3 @@ extern "C" { #endif #endif - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h index ebf57328dd..ad86631cfd 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h @@ -131,4 +131,3 @@ typedef struct { } ISOPvd __attribute__ ((packed)); // 0x800 #endif // __CDTYPES_H__ - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c index 77a5b93720..e55e62853b 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c @@ -344,4 +344,3 @@ int strnicmp(const char *s1, const char *s2, int n) { } return 0; } - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h index 902065f385..b9f1edc194 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h @@ -81,4 +81,3 @@ int checkDiscReady(int retries); int strnicmp(const char *s1, const char *s2, int n); #endif // __MYCDVDFS_H__ - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c index 8aecece3d9..f0a06f927b 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c @@ -262,4 +262,3 @@ int cd_dclose(iop_file_t *handle) { hd->size = hd->lba = 0; return 0; } - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h index d0aa9533f2..db942b0b7e 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h @@ -34,4 +34,3 @@ int cd_dread(iop_file_t *handle, fio_dirent_t *buf); int cd_dclose(iop_file_t *handle); #endif // __FIOFS_H__ - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst index eb85e04462..4950bf8ced 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst @@ -61,5 +61,3 @@ I_StartThread I_GetThreadId I_DelayThread thbase_IMPORTS_end - - diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c index 3e45a5ff3d..5b760faa06 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c @@ -111,5 +111,3 @@ void *rpcServer(int func, void *data, int size) { } return NULL; } - - diff --git a/backends/platform/ps2/iop/rpckbd/src/imports.lst b/backends/platform/ps2/iop/rpckbd/src/imports.lst index 41e13e6e73..e9ba01e020 100644 --- a/backends/platform/ps2/iop/rpckbd/src/imports.lst +++ b/backends/platform/ps2/iop/rpckbd/src/imports.lst @@ -55,4 +55,3 @@ I_UsbSetDevicePrivateData I_UsbTransfer I_UsbRegisterDriver usbd_IMPORTS_end - diff --git a/backends/platform/ps2/irxboot.cpp b/backends/platform/ps2/irxboot.cpp index 5072e8a52c..aa904d4f5b 100644 --- a/backends/platform/ps2/irxboot.cpp +++ b/backends/platform/ps2/irxboot.cpp @@ -210,4 +210,3 @@ int loadIrxModules(int device, const char *irxPath, IrxReference **modules) { sioprintf("%s\n", resModules[i].path); return curModule - resModules; } - diff --git a/backends/platform/ps2/irxboot.h b/backends/platform/ps2/irxboot.h index ef1bfb1256..81b47a37c6 100644 --- a/backends/platform/ps2/irxboot.h +++ b/backends/platform/ps2/irxboot.h @@ -84,4 +84,3 @@ struct IrxReference { int loadIrxModules(int device, const char *irxPath, IrxReference **modules); #endif // __IRXBOOT_H__ - diff --git a/backends/platform/ps2/ps2debug.cpp b/backends/platform/ps2/ps2debug.cpp index 1fc3d50170..300e18316f 100644 --- a/backends/platform/ps2/ps2debug.cpp +++ b/backends/platform/ps2/ps2debug.cpp @@ -44,4 +44,3 @@ void sioprintf(const char *zFormat, ...) { pos++; } } - diff --git a/backends/platform/ps2/ps2debug.h b/backends/platform/ps2/ps2debug.h index 127032ae80..02831e0623 100644 --- a/backends/platform/ps2/ps2debug.h +++ b/backends/platform/ps2/ps2debug.h @@ -28,4 +28,3 @@ void sioprintf(const char *zFormat, ...); #endif // __PS2DEBUG_H__ - diff --git a/backends/platform/ps2/ps2input.cpp b/backends/platform/ps2/ps2input.cpp index 07104a6d97..6f36c5ff90 100644 --- a/backends/platform/ps2/ps2input.cpp +++ b/backends/platform/ps2/ps2input.cpp @@ -545,5 +545,3 @@ const Common::KeyCode Ps2Input::_padFlags[16] = { Common::KEYCODE_INVALID, // Cross Common::KEYCODE_INVALID // Square }; - - diff --git a/backends/platform/ps2/ps2input.h b/backends/platform/ps2/ps2input.h index c5d2f5b840..b97daac042 100644 --- a/backends/platform/ps2/ps2input.h +++ b/backends/platform/ps2/ps2input.h @@ -61,4 +61,3 @@ private: }; #endif // __PS2INPUT_H__ - diff --git a/backends/platform/ps2/ps2mutex.cpp b/backends/platform/ps2/ps2mutex.cpp index 75b3a15482..5b30fa7862 100644 --- a/backends/platform/ps2/ps2mutex.cpp +++ b/backends/platform/ps2/ps2mutex.cpp @@ -97,4 +97,3 @@ void OSystem_PS2::deleteMutex(MutexRef mutex) { sysMutex->sema = -1; SignalSema(_mutexSema); } - diff --git a/backends/platform/ps2/ps2pad.cpp b/backends/platform/ps2/ps2pad.cpp index 00512c40c3..eeb9dfbd93 100644 --- a/backends/platform/ps2/ps2pad.cpp +++ b/backends/platform/ps2/ps2pad.cpp @@ -148,5 +148,3 @@ void Ps2Pad::readPad(uint16 *pbuttons, int16 *joyh, int16 *joyv) { *pbuttons = 0; } } - - diff --git a/backends/platform/ps2/ps2pad.h b/backends/platform/ps2/ps2pad.h index 16c7c796d3..aebb3c6339 100644 --- a/backends/platform/ps2/ps2pad.h +++ b/backends/platform/ps2/ps2pad.h @@ -63,4 +63,3 @@ private: }; #endif //__PS2PAD_H__ - diff --git a/backends/platform/ps2/rpckbd.c b/backends/platform/ps2/rpckbd.c index 0d37e4cfcb..0bb45208f5 100644 --- a/backends/platform/ps2/rpckbd.c +++ b/backends/platform/ps2/rpckbd.c @@ -175,4 +175,3 @@ int PS2KbdResetKeymap(void) } else return -1; } - diff --git a/backends/platform/ps2/rpckbd.h b/backends/platform/ps2/rpckbd.h index bc94cddf1b..bffd8e5be5 100644 --- a/backends/platform/ps2/rpckbd.h +++ b/backends/platform/ps2/rpckbd.h @@ -47,4 +47,3 @@ extern "C" { #endif #endif - diff --git a/backends/platform/ps2/sdlkeys.h b/backends/platform/ps2/sdlkeys.h index b2f783cedd..791b1eb190 100644 --- a/backends/platform/ps2/sdlkeys.h +++ b/backends/platform/ps2/sdlkeys.h @@ -260,5 +260,3 @@ enum SdlKeyCodes { }; #endif - - diff --git a/backends/platform/psp/Makefile b/backends/platform/psp/Makefile index 899bf37e80..7f4f20446e 100644 --- a/backends/platform/psp/Makefile +++ b/backends/platform/psp/Makefile @@ -201,4 +201,3 @@ SCEkxploit: $(TARGET).elf $(PSP_EBOOT_SFO) $(PACK_PBP) "%__SCE__$(TARGET)/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ $(PSP_EBOOT_ICON1) $(PSP_EBOOT_PIC0) $(PSP_EBOOT_PIC1) \ $(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR) - diff --git a/backends/platform/psp/README.PSP b/backends/platform/psp/README.PSP index dcfa30898c..a101481dca 100644 --- a/backends/platform/psp/README.PSP +++ b/backends/platform/psp/README.PSP @@ -169,4 +169,3 @@ Joost Peters (joostp@scummvm.org) Paolo Costabel (paoloc@pacbell.net) Thomas Mayer (tommybear@internode.on.net) Yotam Barnoy (yotambarnoy@gmail.com) - diff --git a/backends/platform/psp/README.PSP.in b/backends/platform/psp/README.PSP.in index 978f8a60bd..1ee99db84b 100644 --- a/backends/platform/psp/README.PSP.in +++ b/backends/platform/psp/README.PSP.in @@ -169,4 +169,3 @@ Joost Peters (joostp@scummvm.org) Paolo Costabel (paoloc@pacbell.net) Thomas Mayer (tommybear@internode.on.net) Yotam Barnoy (yotambarnoy@gmail.com) - diff --git a/backends/platform/psp/display_manager.cpp b/backends/platform/psp/display_manager.cpp index 422805714f..cdb130e2a0 100644 --- a/backends/platform/psp/display_manager.cpp +++ b/backends/platform/psp/display_manager.cpp @@ -479,4 +479,3 @@ Common::List DisplayManager::getSupportedPixelFormats() c return list; } - diff --git a/backends/platform/psp/input.cpp b/backends/platform/psp/input.cpp index a9ad441b4d..5e20fb1e43 100644 --- a/backends/platform/psp/input.cpp +++ b/backends/platform/psp/input.cpp @@ -566,5 +566,3 @@ void InputHandler::setButtonsForImageViewer() { _nub.getPad().getButton(ButtonPad::BTN_RIGHT, UNSHIFTED).setPspEvent(PSP_EVENT_IMAGE_VIEWER, ImageViewer::EVENT_MOVE_RIGHT, PSP_EVENT_IMAGE_VIEWER, ImageViewer::EVENT_MOVE_STOP); } - - diff --git a/backends/platform/psp/memory.h b/backends/platform/psp/memory.h index b5e29af634..5b728460fc 100644 --- a/backends/platform/psp/memory.h +++ b/backends/platform/psp/memory.h @@ -122,5 +122,3 @@ public: }; #endif /* PSP_INCLUDE_SWAP */ - - diff --git a/backends/platform/psp/portdefs.h b/backends/platform/psp/portdefs.h index feb0c944ee..e8a28b31e2 100644 --- a/backends/platform/psp/portdefs.h +++ b/backends/platform/psp/portdefs.h @@ -53,5 +53,3 @@ //#define printf pspDebugScreenPrintf #endif /* PORTDEFS_H */ - - diff --git a/backends/platform/psp/rtc.cpp b/backends/platform/psp/rtc.cpp index 6c8e919986..cbbb7d3f80 100644 --- a/backends/platform/psp/rtc.cpp +++ b/backends/platform/psp/rtc.cpp @@ -83,4 +83,3 @@ uint32 PspRtc::getMicros() { return ticks[0]; } - diff --git a/backends/platform/psp/thread.cpp b/backends/platform/psp/thread.cpp index 5f38a54ab7..57370f7685 100644 --- a/backends/platform/psp/thread.cpp +++ b/backends/platform/psp/thread.cpp @@ -228,4 +228,3 @@ void PspCondition::wait(PspMutex &externalMutex) { externalMutex.lock(); // must lock external mutex here for continuation } - diff --git a/backends/platform/psp/thread.h b/backends/platform/psp/thread.h index a2f3b5eda2..ca94b8c82c 100644 --- a/backends/platform/psp/thread.h +++ b/backends/platform/psp/thread.h @@ -105,5 +105,3 @@ enum StackSizes { }; #endif /* PSP_THREADS_H */ - - diff --git a/backends/platform/psp/trace.cpp b/backends/platform/psp/trace.cpp index b799b4e870..008b508b7e 100644 --- a/backends/platform/psp/trace.cpp +++ b/backends/platform/psp/trace.cpp @@ -148,4 +148,3 @@ void mipsBacktrace(uint32 levels, void **addresses) { } } } - diff --git a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl index 3bdcede76a..3062068852 100644 --- a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl +++ b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl @@ -798,5 +798,3 @@ sub PrintMessage() } ################################################################################################################## - - diff --git a/backends/platform/symbian/README b/backends/platform/symbian/README index 1f49c52f02..3e3be592e7 100644 --- a/backends/platform/symbian/README +++ b/backends/platform/symbian/README @@ -177,4 +177,3 @@ Greetz & such greetz, SumthinWicked & Anotherguest - diff --git a/backends/platform/symbian/S60v3/ScummVM_Loc.rss b/backends/platform/symbian/S60v3/ScummVM_Loc.rss index d98ef5ae71..7247ce1207 100644 --- a/backends/platform/symbian/S60v3/ScummVM_Loc.rss +++ b/backends/platform/symbian/S60v3/ScummVM_Loc.rss @@ -19,4 +19,3 @@ RESOURCE LOCALISABLE_APP_INFO } }; } - diff --git a/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss b/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss index 9273312f42..849e0b017f 100644 --- a/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss +++ b/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss @@ -19,4 +19,3 @@ RESOURCE LOCALISABLE_APP_INFO } }; } - diff --git a/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss b/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss index 1b1cc9e64f..031be012cd 100644 --- a/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss +++ b/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss @@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO // Specify the location of the localisable icon/caption definition file localisable_resource_file = "\\Resource\\Apps\\ScummVM_A0000658_loc"; } - diff --git a/backends/platform/symbian/S60v3/scummvm_reg.rss b/backends/platform/symbian/S60v3/scummvm_reg.rss index 1156694bd7..b5617913d6 100644 --- a/backends/platform/symbian/S60v3/scummvm_reg.rss +++ b/backends/platform/symbian/S60v3/scummvm_reg.rss @@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO // Specify the location of the localisable icon/caption definition file localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc"; } - diff --git a/backends/platform/symbian/S80/ScummVM_S80.mmp.in b/backends/platform/symbian/S80/ScummVM_S80.mmp.in index efd0d0ee32..5e4b6d447e 100644 --- a/backends/platform/symbian/S80/ScummVM_S80.mmp.in +++ b/backends/platform/symbian/S80/ScummVM_S80.mmp.in @@ -107,4 +107,3 @@ LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib bafl.lib - diff --git a/backends/platform/symbian/S90/Scummvm_S90.mmp.in b/backends/platform/symbian/S90/Scummvm_S90.mmp.in index 4afdb5c62e..06d65f1641 100644 --- a/backends/platform/symbian/S90/Scummvm_S90.mmp.in +++ b/backends/platform/symbian/S90/Scummvm_S90.mmp.in @@ -107,4 +107,3 @@ LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib bafl.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib - diff --git a/backends/platform/symbian/UIQ2/ScummVM.rss b/backends/platform/symbian/UIQ2/ScummVM.rss index 3550d82f7d..374bd50680 100644 --- a/backends/platform/symbian/UIQ2/ScummVM.rss +++ b/backends/platform/symbian/UIQ2/ScummVM.rss @@ -41,4 +41,3 @@ RESOURCE TBUF16 { buf=""; } RESOURCE EIK_APP_INFO { } - diff --git a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in index 4000b1653d..80ba37d694 100644 --- a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in +++ b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in @@ -106,4 +106,3 @@ LIBRARY qikctl.lib bafl.lib START WINS WIN32_LIBRARY lldiv.obj llmul.obj llshl.obj END - diff --git a/backends/platform/symbian/UIQ3/ScummVM.rss b/backends/platform/symbian/UIQ3/ScummVM.rss index cb47568288..2021b0506e 100644 --- a/backends/platform/symbian/UIQ3/ScummVM.rss +++ b/backends/platform/symbian/UIQ3/ScummVM.rss @@ -48,4 +48,3 @@ RESOURCE EIK_APP_INFO } #include - diff --git a/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss b/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss index cb47568288..2021b0506e 100644 --- a/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss +++ b/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss @@ -48,4 +48,3 @@ RESOURCE EIK_APP_INFO } #include - diff --git a/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss b/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss index a6ee70ab25..7f3b71ef84 100644 --- a/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss +++ b/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss @@ -82,4 +82,3 @@ RESOURCE LOCALISABLE_APP_INFO } }; } - diff --git a/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss b/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss index 2158406d0d..68d0d33abd 100644 --- a/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss +++ b/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss @@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO // Specify the location of the localisable icon/caption definition file localisable_resource_file = "\\Resource\\Apps\\ScummVM_A0000658_loc"; } - diff --git a/backends/platform/symbian/UIQ3/scummvm_loc.rss b/backends/platform/symbian/UIQ3/scummvm_loc.rss index 201aacefa3..d00a67f3dc 100644 --- a/backends/platform/symbian/UIQ3/scummvm_loc.rss +++ b/backends/platform/symbian/UIQ3/scummvm_loc.rss @@ -56,4 +56,3 @@ RESOURCE LOCALISABLE_APP_INFO } }; } - diff --git a/backends/platform/symbian/UIQ3/scummvm_reg.rss b/backends/platform/symbian/UIQ3/scummvm_reg.rss index 1156694bd7..b5617913d6 100644 --- a/backends/platform/symbian/UIQ3/scummvm_reg.rss +++ b/backends/platform/symbian/UIQ3/scummvm_reg.rss @@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO // Specify the location of the localisable icon/caption definition file localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc"; } - diff --git a/backends/platform/symbian/res/ScummVmAif.rss b/backends/platform/symbian/res/ScummVmAif.rss index 31bf7bd394..b2addc3f21 100644 --- a/backends/platform/symbian/res/ScummVmAif.rss +++ b/backends/platform/symbian/res/ScummVmAif.rss @@ -42,6 +42,3 @@ RESOURCE AIF_DATA // num_icons=2; } - - - diff --git a/backends/platform/symbian/src/ScummApp.cpp b/backends/platform/symbian/src/ScummApp.cpp index c4d9fc88d9..405fb5c3c2 100644 --- a/backends/platform/symbian/src/ScummApp.cpp +++ b/backends/platform/symbian/src/ScummApp.cpp @@ -116,5 +116,3 @@ void CScummApp::GetDataFolder(TDes& aDataFolder) aDataFolder = _L("ScummVM"); } ///////////////////////////////////////////////////////////////////////////////////////////////// - - diff --git a/backends/platform/symbian/src/ScummApp.h b/backends/platform/symbian/src/ScummApp.h index 376964f0a1..0b9ebcdf53 100644 --- a/backends/platform/symbian/src/ScummApp.h +++ b/backends/platform/symbian/src/ScummApp.h @@ -48,5 +48,3 @@ public: #endif }; #endif - - diff --git a/backends/platform/wii/gdb.txt b/backends/platform/wii/gdb.txt index 4e6c7928c3..0bd2209745 100644 --- a/backends/platform/wii/gdb.txt +++ b/backends/platform/wii/gdb.txt @@ -1,4 +1,3 @@ target remote /dev/ttyUSB0 info threads bt - diff --git a/backends/platform/wii/main.cpp b/backends/platform/wii/main.cpp index 3965f51b7f..affe053b6a 100644 --- a/backends/platform/wii/main.cpp +++ b/backends/platform/wii/main.cpp @@ -247,4 +247,3 @@ int main(int argc, char *argv[]) { #ifdef __cplusplus } #endif - diff --git a/backends/platform/wii/module.mk b/backends/platform/wii/module.mk index 00eb0d7e49..88e75fba26 100644 --- a/backends/platform/wii/module.mk +++ b/backends/platform/wii/module.mk @@ -12,4 +12,3 @@ MODULE_OBJS := \ MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) OBJS := $(MODULE_OBJS) $(OBJS) MODULE_DIRS += $(sort $(dir $(MODULE_OBJS))) - diff --git a/backends/platform/wii/options.cpp b/backends/platform/wii/options.cpp index 8c12ad9b81..ede81343ca 100644 --- a/backends/platform/wii/options.cpp +++ b/backends/platform/wii/options.cpp @@ -315,4 +315,3 @@ void WiiOptionsDialog::save() { ConfMan.flushToDisk(); } - diff --git a/backends/platform/wii/options.h b/backends/platform/wii/options.h index 00d42bc2ef..9b500ef29f 100644 --- a/backends/platform/wii/options.h +++ b/backends/platform/wii/options.h @@ -77,4 +77,3 @@ private: }; #endif - diff --git a/backends/platform/wii/osystem_events.cpp b/backends/platform/wii/osystem_events.cpp index 389d3823e7..3ba66aed89 100644 --- a/backends/platform/wii/osystem_events.cpp +++ b/backends/platform/wii/osystem_events.cpp @@ -451,4 +451,3 @@ bool OSystem_Wii::pollEvent(Common::Event &event) { return false; } - diff --git a/backends/platform/wii/osystem_gfx.cpp b/backends/platform/wii/osystem_gfx.cpp index 443e738a4a..83607984cc 100644 --- a/backends/platform/wii/osystem_gfx.cpp +++ b/backends/platform/wii/osystem_gfx.cpp @@ -747,4 +747,3 @@ void OSystem_Wii::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, if ((_texMouse.palette) && (oldKeycolor != _mouseKeyColor)) _cursorPaletteDirty = true; } - diff --git a/backends/platform/wii/osystem_sfx.cpp b/backends/platform/wii/osystem_sfx.cpp index acab6df7e1..2e658e47aa 100644 --- a/backends/platform/wii/osystem_sfx.cpp +++ b/backends/platform/wii/osystem_sfx.cpp @@ -131,4 +131,3 @@ void OSystem_Wii::deinitSfx() { free(sound_buffer[i]); } } - diff --git a/backends/platform/wii/wii.mk b/backends/platform/wii/wii.mk index aed30523b2..7d2db68b4e 100644 --- a/backends/platform/wii/wii.mk +++ b/backends/platform/wii/wii.mk @@ -49,4 +49,3 @@ wiiloaddist: wiidist $(DEVKITPPC)/bin/wiiload wiidist/scummvm.zip .PHONY: wiiclean wiiload geckoupload wiigdb wiidebug wiidist wiiloaddist - diff --git a/backends/platform/wince/CEScaler.cpp b/backends/platform/wince/CEScaler.cpp index f07a7ec84b..66f7809a3a 100644 --- a/backends/platform/wince/CEScaler.cpp +++ b/backends/platform/wince/CEScaler.cpp @@ -86,4 +86,3 @@ void SmartphoneLandscape(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, ui } #endif - diff --git a/backends/platform/wince/CEgui/CEGUI.h b/backends/platform/wince/CEgui/CEGUI.h index 4e44115476..8b2e3528e3 100644 --- a/backends/platform/wince/CEgui/CEGUI.h +++ b/backends/platform/wince/CEgui/CEGUI.h @@ -24,4 +24,3 @@ #include "Panel.h" #include "ItemSwitch.h" #include "PanelKeyboard.h" - diff --git a/backends/platform/wince/CEgui/PanelKeyboard.cpp b/backends/platform/wince/CEgui/PanelKeyboard.cpp index 442d7fc68c..cab02150c5 100644 --- a/backends/platform/wince/CEgui/PanelKeyboard.cpp +++ b/backends/platform/wince/CEgui/PanelKeyboard.cpp @@ -96,4 +96,3 @@ bool PanelKeyboard::action(int x, int y, bool pushed) { } } // End of namespace CEGUI - diff --git a/backends/platform/wince/CEkeys/CEKeys.h b/backends/platform/wince/CEkeys/CEKeys.h index ac4907704d..cf71b982f3 100644 --- a/backends/platform/wince/CEkeys/CEKeys.h +++ b/backends/platform/wince/CEkeys/CEKeys.h @@ -21,4 +21,3 @@ */ #include "EventsBuffer.h" - diff --git a/backends/platform/wince/CEkeys/EventsBuffer.cpp b/backends/platform/wince/CEkeys/EventsBuffer.cpp index d5818c3731..c993798dc8 100644 --- a/backends/platform/wince/CEkeys/EventsBuffer.cpp +++ b/backends/platform/wince/CEkeys/EventsBuffer.cpp @@ -76,5 +76,3 @@ bool EventsBuffer::simulateMouseRightClick(int x, int y, bool pushed) { return (SDL_PushEvent(&ev) == 0); } } - - diff --git a/backends/platform/wince/missing/assert.h b/backends/platform/wince/missing/assert.h index 734b8f9482..e9c871da60 100644 --- a/backends/platform/wince/missing/assert.h +++ b/backends/platform/wince/missing/assert.h @@ -6,4 +6,3 @@ void CDECL _declspec(noreturn) error(const char *s, ...); #define assert(e) ((e) ? 0 : (::error("Assertion failed %s (%s, %d)", #e, __FILE__, __LINE__))) #define abort() ::error("Abort (%s, %d)", __FILE__, __LINE__) - diff --git a/backends/platform/wince/missing/io.h b/backends/platform/wince/missing/io.h index de492cac68..b2cb2abd8e 100644 --- a/backends/platform/wince/missing/io.h +++ b/backends/platform/wince/missing/io.h @@ -9,4 +9,3 @@ typedef void FILE; #endif FILE *wce_fopen(const char *fname, const char *fmode); #define fopen wce_fopen - -- cgit v1.2.3 From c21f87836e9f292c8d6589ece03f6ccdc40dafc5 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sun, 7 Aug 2011 11:57:40 +0200 Subject: PSP: Pass the stream as reference to PngLoader. --- backends/platform/psp/image_viewer.cpp | 2 +- backends/platform/psp/png_loader.cpp | 10 ++++------ backends/platform/psp/png_loader.h | 4 ++-- backends/platform/psp/pspkeyboard.cpp | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/psp/image_viewer.cpp b/backends/platform/psp/image_viewer.cpp index dbc7cc48c1..98205ddee9 100644 --- a/backends/platform/psp/image_viewer.cpp +++ b/backends/platform/psp/image_viewer.cpp @@ -69,7 +69,7 @@ bool ImageViewer::load(int imageNum) { assert(_renderer); // Load a PNG into our buffer and palette. Size it by the actual size of the image - PngLoader image(file, *_buffer, *_palette, Buffer::kSizeBySourceSize); + PngLoader image(*file, *_buffer, *_palette, Buffer::kSizeBySourceSize); PngLoader::Status status = image.allocate(); // allocate the buffers for the file diff --git a/backends/platform/psp/png_loader.cpp b/backends/platform/psp/png_loader.cpp index 16377539c8..4de13d1e73 100644 --- a/backends/platform/psp/png_loader.cpp +++ b/backends/platform/psp/png_loader.cpp @@ -78,7 +78,7 @@ PngLoader::Status PngLoader::allocate() { bool PngLoader::load() { DEBUG_ENTER_FUNC(); // Try to load the image - _file->seek(0); // Go back to start + _file.seek(0); // Go back to start if (!loadImageIntoBuffer()) { PSP_DEBUG_PRINT("failed to load image\n"); @@ -99,11 +99,9 @@ void PngLoader::warningFn(png_structp png_ptr, png_const_charp warning_msg) { // Read function for png library to be able to read from our SeekableReadStream // void PngLoader::libReadFunc(png_structp pngPtr, png_bytep data, png_size_t length) { - Common::SeekableReadStream *file; + Common::SeekableReadStream &file = *(Common::SeekableReadStream *)pngPtr->io_ptr; - file = (Common::SeekableReadStream *)pngPtr->io_ptr; - - file->read(data, length); + file.read(data, length); } bool PngLoader::basicImageLoad() { @@ -120,7 +118,7 @@ bool PngLoader::basicImageLoad() { return false; } // Set the png lib to use our read function - png_set_read_fn(_pngPtr, (void *)_file, libReadFunc); + png_set_read_fn(_pngPtr, &_file, libReadFunc); unsigned int sig_read = 0; diff --git a/backends/platform/psp/png_loader.h b/backends/platform/psp/png_loader.h index 0ff9d8a65d..48a3220d78 100644 --- a/backends/platform/psp/png_loader.h +++ b/backends/platform/psp/png_loader.h @@ -34,7 +34,7 @@ private: static void warningFn(png_structp png_ptr, png_const_charp warning_msg); static void libReadFunc(png_structp pngPtr, png_bytep data, png_size_t length); - Common::SeekableReadStream *_file; + Common::SeekableReadStream &_file; Buffer *_buffer; Palette *_palette; @@ -57,7 +57,7 @@ public: BAD_FILE }; - PngLoader(Common::SeekableReadStream *file, Buffer &buffer, Palette &palette, + PngLoader(Common::SeekableReadStream &file, Buffer &buffer, Palette &palette, Buffer::HowToSize sizeBy = Buffer::kSizeByTextureSize) : _file(file), _buffer(&buffer), _palette(&palette), _width(0), _height(0), _paletteSize(0), diff --git a/backends/platform/psp/pspkeyboard.cpp b/backends/platform/psp/pspkeyboard.cpp index 43c4cada15..66efe9145d 100644 --- a/backends/platform/psp/pspkeyboard.cpp +++ b/backends/platform/psp/pspkeyboard.cpp @@ -298,7 +298,7 @@ bool PSPKeyboard::load() { goto ERROR; } - PngLoader image(file, _buffers[i], _palettes[i]); + PngLoader image(*file, _buffers[i], _palettes[i]); if (image.allocate() != PngLoader::OK) { PSP_ERROR("Failed to allocate memory for keyboard image %s\n", _guiStrings[i]); -- cgit v1.2.3 From a5a8833c059f28c85e392a3cd22c361d38ef95ff Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sat, 6 Aug 2011 16:30:52 +0200 Subject: COMMON: Add DisposablePtr, which replaces many repeated implementations of a dispose flag. --- backends/platform/psp/mp3.cpp | 6 +----- backends/platform/psp/mp3.h | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/psp/mp3.cpp b/backends/platform/psp/mp3.cpp index 266e31e445..3dbf31112a 100644 --- a/backends/platform/psp/mp3.cpp +++ b/backends/platform/psp/mp3.cpp @@ -179,8 +179,7 @@ bool Mp3PspStream::loadStartAudioModule(const char *modname, int partition){ // TODO: make parallel function for unloading the 1.50 modules Mp3PspStream::Mp3PspStream(Common::SeekableReadStream *inStream, DisposeAfterUse::Flag dispose) : - _inStream(inStream), - _disposeAfterUse(dispose), + _inStream(inStream, dispose), _pcmLength(0), _posInFrame(0), _state(MP3_STATE_INIT), @@ -274,9 +273,6 @@ Mp3PspStream::~Mp3PspStream() { deinitStream(); releaseStreamME(); // free the memory used for this stream - - if (_disposeAfterUse == DisposeAfterUse::YES) - delete _inStream; } void Mp3PspStream::deinitStream() { diff --git a/backends/platform/psp/mp3.h b/backends/platform/psp/mp3.h index 8b01fe4872..f7bfdda254 100644 --- a/backends/platform/psp/mp3.h +++ b/backends/platform/psp/mp3.h @@ -23,6 +23,7 @@ #ifndef SOUND_MP3_PSP_H #define SOUND_MP3_PSP_H +#include "common/ptr.h" #include "common/types.h" #include "common/scummsys.h" @@ -48,8 +49,7 @@ protected: byte _codecInBuffer[3072] __attribute__((aligned(64))); // the codec always needs alignment unsigned long _codecParams[65]__attribute__((aligned(64))); // TODO: change to struct - Common::SeekableReadStream *_inStream; - DisposeAfterUse::Flag _disposeAfterUse; + Common::DisposablePtr _inStream; uint32 _pcmLength; // how many pcm samples we have for this type of file (x2 this for stereo) -- cgit v1.2.3 From 0630a88a04e9688d664751b6a68edf622d76b348 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Mon, 8 Aug 2011 23:46:05 +0200 Subject: SDL: Let SDL based graphics managers inherit from SdlGraphicsManager. This also adapts port I can not test (not even the compilation). So if this breaks anything I am sorry about it. --- backends/platform/sdl/sdl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index e72b95bdc1..63871f5034 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -174,7 +174,7 @@ void OSystem_SDL::initBackend() { // If the gfx_mode is from OpenGL, create the OpenGL graphics manager if (use_opengl) { - _graphicsManager = new OpenGLSdlGraphicsManager(); + _graphicsManager = new OpenGLSdlGraphicsManager(_eventSource); graphicsManagerType = 1; } } @@ -538,7 +538,7 @@ bool OSystem_SDL::setGraphicsMode(int mode) { } else if (_graphicsMode < _sdlModesCount && mode >= _sdlModesCount) { debug(1, "switching to OpenGL graphics"); delete _graphicsManager; - _graphicsManager = new OpenGLSdlGraphicsManager(); + _graphicsManager = new OpenGLSdlGraphicsManager(_eventSource); ((OpenGLSdlGraphicsManager *)_graphicsManager)->initEventObserver(); _graphicsManager->beginGFXTransaction(); } -- cgit v1.2.3 From 04ab0e58b4142bf58db2180a2bac6897821d069f Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Mon, 8 Aug 2011 23:56:54 +0200 Subject: SDL: Take advantage of SdlGraphicsManager. This gets rid of the hacks, where SdlEventSource added events with custom type numbers to pass SDL_VIDEOEXPOSE and SDL_VIDEORESIZE to the graphics manager. Furthermore it get rids of the uninituitive and hard to trace way of assigning the proper mouse coordinates to mouse related events. Formerly it passed the real screen coordinates through the even dispatching api to the graphics manager (at least hopefully ;-) and let that handle creating a new event with the proper coordinates. Now instead SdlEventSource handles the proper coordinate setup itself. Since this is a behavior change and I can not test all the SDL based small devices ports this commit might break compilation for them and more serve it might also break mouse position behavior. If any of that occurs I am sorry about it. --- backends/platform/sdl/sdl.h | 6 ------ 1 file changed, 6 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index 395b2b3aac..22d79dbfe7 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -74,12 +74,6 @@ public: virtual void getTimeAndDate(TimeDate &td) const; virtual Audio::Mixer *getMixer(); - // HACK: Special SDL events types - enum SdlEvent { - kSdlEventExpose = 100, - kSdlEventResize = 101 - }; - protected: bool _inited; bool _initedSDL; -- cgit v1.2.3 From 0f6e231356305043bc7f66ae1cbe2c3a0607c68a Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Thu, 11 Aug 2011 04:25:46 +0200 Subject: SDL: Implement a hellish workaround to fix bug #3368143. The bug in question is "SDL/OpenGL: Crash when switching renderer backend". To fix it I added a stupid graphics state copying to the SDL backend, in case the graphics manager is switched. The implementation of this is considered a pure workaround, no one should ever do it like this in reality... I just want to die when looking at this... Not sure why I actually committed it. Anyway it at least makes the OpenGL backend testable for those who do not want to fiddle with the config file directly. --- backends/platform/sdl/sdl.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 63871f5034..ba57841256 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -49,6 +49,7 @@ #include "backends/graphics/surfacesdl/surfacesdl-graphics.h" #ifdef USE_OPENGL #include "backends/graphics/openglsdl/openglsdl-graphics.h" +#include "graphics/cursorman.cpp" #endif #include "icons/scummvm.xpm" @@ -524,6 +525,22 @@ bool OSystem_SDL::setGraphicsMode(int mode) { i = _sdlModesCount; } + // Very hacky way to set up the old graphics manager state, in case we + // switch from SDL->OpenGL or OpenGL->SDL. + // + // This is a probably temporary workaround to fix bugs like #3368143 + // "SDL/OpenGL: Crash when switching renderer backend". + const int screenWidth = _graphicsManager->getWidth(); + const int screenHeight = _graphicsManager->getHeight(); + const bool arState = _graphicsManager->getFeatureState(kFeatureAspectRatioCorrection); + const bool fullscreen = _graphicsManager->getFeatureState(kFeatureFullscreenMode); + const bool cursorPalette = _graphicsManager->getFeatureState(kFeatureCursorPalette); +#ifdef USE_RGB_COLOR + const Graphics::PixelFormat pixelFormat = _graphicsManager->getScreenFormat(); +#endif + + bool switchedManager = false; + // Loop through modes while (srcMode->name) { if (i == mode) { @@ -535,16 +552,55 @@ bool OSystem_SDL::setGraphicsMode(int mode) { _graphicsManager = new SurfaceSdlGraphicsManager(_eventSource); ((SurfaceSdlGraphicsManager *)_graphicsManager)->initEventObserver(); _graphicsManager->beginGFXTransaction(); + + switchedManager = true; } else if (_graphicsMode < _sdlModesCount && mode >= _sdlModesCount) { debug(1, "switching to OpenGL graphics"); delete _graphicsManager; _graphicsManager = new OpenGLSdlGraphicsManager(_eventSource); ((OpenGLSdlGraphicsManager *)_graphicsManager)->initEventObserver(); _graphicsManager->beginGFXTransaction(); + + switchedManager = true; } _graphicsMode = mode; - return _graphicsManager->setGraphicsMode(srcMode->id); + + if (switchedManager) { +#ifdef USE_RGB_COLOR + _graphicsManager->initSize(screenWidth, screenHeight, &pixelFormat); +#else + _graphicsManager->initSize(screenWidth, screenHeight, 0); +#endif + _graphicsManager->setFeatureState(kFeatureAspectRatioCorrection, arState); + _graphicsManager->setFeatureState(kFeatureFullscreenMode, fullscreen); + _graphicsManager->setFeatureState(kFeatureCursorPalette, cursorPalette); + + // Worst part about this right now, tell the cursor manager to + // resetup the cursor + cursor palette if necessarily + + // First we need to try to setup the old state on the new manager... + if (_graphicsManager->endGFXTransaction() != kTransactionSuccess) { + // Oh my god if this failed the client code might just explode. + return false; + } + + // Next setup the cursor again + CursorMan.pushCursor(0, 0, 0, 0, 0, 0); + CursorMan.popCursor(); + + // Next setup cursor palette if needed + if (cursorPalette) { + CursorMan.pushCursorPalette(0, 0, 0); + CursorMan.popCursorPalette(); + } + + _graphicsManager->beginGFXTransaction(); + // Oh my god if this failed the client code might just explode. + return _graphicsManager->setGraphicsMode(srcMode->id); + } else { + return _graphicsManager->setGraphicsMode(srcMode->id); + } } i++; -- cgit v1.2.3 From 7ef6c73d61588482f2686c43047e0a4522c5baf8 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 11 Aug 2011 22:30:46 +1000 Subject: SDL: Previous commit broke compilation on MSVC Including cursorman.cpp rather than cursorman.h resulted in the CursorManager class being present in multiple .obj files, resulting in linking errors. --- backends/platform/sdl/sdl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index ba57841256..8dff5cec05 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -49,7 +49,7 @@ #include "backends/graphics/surfacesdl/surfacesdl-graphics.h" #ifdef USE_OPENGL #include "backends/graphics/openglsdl/openglsdl-graphics.h" -#include "graphics/cursorman.cpp" +#include "graphics/cursorman.h" #endif #include "icons/scummvm.xpm" -- cgit v1.2.3 From 59739a7a0e3e4826ba7b27d5270a8d7a26b787ef Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sun, 7 Aug 2011 21:33:32 +1000 Subject: BADA: Initial BADA port implementation --- backends/platform/bada/README.TXT | 79 ++++++ backends/platform/bada/application.cpp | 128 +++++++++ backends/platform/bada/application.h | 58 ++++ backends/platform/bada/audio.cpp | 256 +++++++++++++++++ backends/platform/bada/audio.h | 73 +++++ backends/platform/bada/bada.mk | 5 + backends/platform/bada/form.cpp | 442 +++++++++++++++++++++++++++++ backends/platform/bada/form.h | 108 +++++++ backends/platform/bada/fs.cpp | 428 ++++++++++++++++++++++++++++ backends/platform/bada/fs.h | 82 ++++++ backends/platform/bada/graphics.cpp | 309 ++++++++++++++++++++ backends/platform/bada/graphics.h | 72 +++++ backends/platform/bada/main.cpp | 70 +++++ backends/platform/bada/missing.cpp | 113 ++++++++ backends/platform/bada/portdefs.h | 84 ++++++ backends/platform/bada/sscanf.cpp | 182 ++++++++++++ backends/platform/bada/system.cpp | 500 +++++++++++++++++++++++++++++++++ backends/platform/bada/system.h | 101 +++++++ backends/platform/bada/timer.cpp | 124 ++++++++ backends/platform/bada/timer.h | 62 ++++ 20 files changed, 3276 insertions(+) create mode 100755 backends/platform/bada/README.TXT create mode 100755 backends/platform/bada/application.cpp create mode 100755 backends/platform/bada/application.h create mode 100755 backends/platform/bada/audio.cpp create mode 100755 backends/platform/bada/audio.h create mode 100755 backends/platform/bada/bada.mk create mode 100755 backends/platform/bada/form.cpp create mode 100755 backends/platform/bada/form.h create mode 100755 backends/platform/bada/fs.cpp create mode 100755 backends/platform/bada/fs.h create mode 100755 backends/platform/bada/graphics.cpp create mode 100755 backends/platform/bada/graphics.h create mode 100755 backends/platform/bada/main.cpp create mode 100755 backends/platform/bada/missing.cpp create mode 100755 backends/platform/bada/portdefs.h create mode 100755 backends/platform/bada/sscanf.cpp create mode 100755 backends/platform/bada/system.cpp create mode 100755 backends/platform/bada/system.h create mode 100755 backends/platform/bada/timer.cpp create mode 100755 backends/platform/bada/timer.h (limited to 'backends/platform') diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT new file mode 100755 index 0000000000..dd56c8962c --- /dev/null +++ b/backends/platform/bada/README.TXT @@ -0,0 +1,79 @@ +Build instructions: + +1. Install BADA SDK (requires free registration): + + http://developer.bada.com/apis/index.do + +2. Install Cygwin: + + http://www.cygwin.com/ + + Add the following to your cygwin .bash_profile: + + alias mmake=/cygdrive/c/MinGW/bin/mingw32-make.exe + export BADA_SDK=/cygdrive/c/bada/1.2.1 + export ARM_BIN=c:/bada/1.2.1/Tools/Toolchains/ARM/bin + export CPPFLAGS="-fpic -fshort-wchar -mcpu=cortex-a8 -mfpu=vfpv3 \ + -mfloat-abi=hard -mlittle-endian -mthumb-interwork -Wno-psabi \ + -fno-strict-aliasing -fno-short-enums" + export LDFLAGS="-nostdlib -lc-newlib -lm-newlib -LC:/bada/1.2.1/Model/Wave_LP1/Target" + #export PATH=${BADA_SDK}/Tools/Toolchains/Win32/bin:${PATH} + export PATH=${BADA_SDK}/Tools/Toolchains/ARM/bin:~/utils:${PATH} + alias gcc=${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe + alias ar=${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe + + The following were added to ~/utils for zlib: + + ar: + #!/bin/sh + ${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe $* + + gcc: + #!/bin/sh + ${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe $* + +3. Build dependencies + + zlib, libogg, libvorbis, libmad, FLAC + + see: "Building the libraries" under: + http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW#Building_the_libraries + for instructions on how to obtain these modules + + 3.1 For Target-Release configure ogg and mad with: + + ./configure --host=arm-samsung-nucleuseabi --disable-shared + + when building vorbis and flac: + + ./configure --host=arm-samsung-nucleuseabi --disable-shared --with-ogg=c:/cygwin/usr/local + + 3.2 for each module, after a successful configure, add the following + to the generated config.h (gzguts.h for zlib) + + #undef __MINGW32__ + #undef _WIN32 + #include "c:/src/scummvm/backends/platform/bada/portdefs.h" + + 3.3 Additional post configure edits: + + - removed -fforce-mem from the libMAD Makefile + - in libvorbis/lib/Makefile comment lines with vorbis_selftests + - edit libFLAC/Makefile ... CFLAGS = $(OGG_CFLAGS) + + Note: you can ignore the ranlib errors when doing make install. + +4. Build the ScummVM base library: + + ./configure --host=bada --enable-release + + To target the Win32 simulator: + + ./configure --host=bada --enable-debug + +5. Build the front end application using BADA-Ide: + + Copy the scummvm/dists/bada folder into a clean directory + outside of the scummvm package. Start the BADA IDE then + choose this folder as the eclipse workspace. Click + Project / Build. diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp new file mode 100755 index 0000000000..d5bd1572be --- /dev/null +++ b/backends/platform/bada/application.cpp @@ -0,0 +1,128 @@ +/* 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 "engines/engine.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/application.h" + +using namespace Osp::Base; +using namespace Osp::Base::Runtime; +using namespace Osp::Graphics; +using namespace Osp::Locales; +using namespace Osp::System; +using namespace Osp::App; +using namespace Osp::System; +using namespace Osp::Ui; +using namespace Osp::Ui::Controls; + +Application *BadaScummVM::createInstance() { + return new BadaScummVM(); +} + +BadaScummVM::BadaScummVM() : _appForm(0) { +} + +BadaScummVM::~BadaScummVM() { + logEntered(); + if (g_system) { + BadaSystem *system = (BadaSystem*)g_system; + system->destroyBackend(); + delete system; + g_system = 0; + } +} + +bool BadaScummVM::OnAppInitializing(AppRegistry &appRegistry) { + _appForm = systemStart(this); + return (_appForm != null); +} + +bool BadaScummVM::OnAppTerminating(AppRegistry &appRegistry, + bool forcedTermination) { + logEntered(); + return true; +} + +void BadaScummVM::OnUserEventReceivedN(RequestId requestId, + Osp::Base::Collection::IList *args) { + logEntered(); + + if (requestId == USER_MESSAGE_EXIT) { + // normal program termination + Terminate(); + } else if (requestId == USER_MESSAGE_EXIT_ERR) { + // assertion failure termination + String *message = null; + if (args) { + message = (String*) args->GetAt(0); + } + if (!message) { + message = new String("Unknown error"); + } + + MessageBox messageBox; + messageBox.Construct(L"Oops...", *message, MSGBOX_STYLE_OK); + int modalResult; + messageBox.ShowAndWait(modalResult); + Terminate(); + } +} + +void BadaScummVM::OnForeground(void) { + logEntered(); + pauseGame(false); +} + +void BadaScummVM::OnBackground(void) { + logEntered(); + pauseGame(true); +} + +void BadaScummVM::OnBatteryLevelChanged(BatteryLevel batteryLevel) { +} + +void BadaScummVM::OnLowMemory(void) { +} + +void BadaScummVM::OnScreenOn(void) { + logEntered(); +} + +void BadaScummVM::OnScreenOff(void) { + logEntered(); +} + +void BadaScummVM::pauseGame(bool pause) { + if (pause && _appForm && g_engine && !g_engine->isPaused()) { + _appForm->pushKey(Common::KEYCODE_SPACE); + } + + if (g_system) { + ((BadaSystem*)g_system)->setMute(pause); + } +} + +// +// end of application.cpp +// diff --git a/backends/platform/bada/application.h b/backends/platform/bada/application.h new file mode 100755 index 0000000000..f0de4a2c72 --- /dev/null +++ b/backends/platform/bada/application.h @@ -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. + * + */ + +#ifndef BADA_APPLICATION_H +#define BADA_APPLICATION_H + +#include +#include +#include +#include +#include + +#include "backends/platform/bada/system.h" + +class BadaScummVM : public Osp::App::Application, + public Osp::System::IScreenEventListener { + +public: + BadaScummVM(); + ~BadaScummVM(); + + static Osp::App::Application *createInstance(void); + + bool OnAppInitializing(Osp::App::AppRegistry &appRegistry); + bool OnAppTerminating(Osp::App::AppRegistry &appRegistry, bool forcedTermination = false); + void OnForeground(void); + void OnBackground(void); + void OnLowMemory(void); + void OnBatteryLevelChanged(Osp::System::BatteryLevel batteryLevel); + void OnScreenOn(void); + void OnScreenOff(void); + void OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList *pArgs); + +private: + void pauseGame(bool pause); + BadaAppForm *_appForm; +}; + +#endif diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp new file mode 100755 index 0000000000..3510475b5c --- /dev/null +++ b/backends/platform/bada/audio.cpp @@ -0,0 +1,256 @@ +/* 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 +#include + +#include "backends/platform/bada/audio.h" +#include "backends/platform/bada/system.h" + +#define TIMER_INCREMENT 10 +#define TIMER_INTERVAL 40 +#define MIN_TIMER_INTERVAL 10 +#define MAX_TIMER_INTERVAL 160 +#define INIT_LEVEL 3 +#define CONFIG_KEY L"audiovol" + +// sound level pre-sets +const int levels[] = {0, 1, 10, 45, 70, 99}; + +AudioThread::AudioThread() : + _mixer(0), + _timer(0), + _audioOut(0), + _head(0), + _tail(0), + _ready(0), + _interval(TIMER_INTERVAL), + _playing(-1), + _muted(true) { +} + +Audio::MixerImpl *AudioThread::Construct(OSystem *system) { + logEntered(); + + if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN))) { + AppLog("Failed to create AudioThread"); + return null; + } + + _mixer = new Audio::MixerImpl(system, 44100); + return _mixer; +} + +AudioThread::~AudioThread() { + logEntered(); +} + +bool AudioThread::isSilentMode() { + bool silentMode; + String key(L"SilentMode"); + Osp::System::SettingInfo::GetValue(key, silentMode); + return silentMode; +} + +void AudioThread::setMute(bool on) { + if (_audioOut && !isSilentMode()) { + _muted = on; + if (on) { + _timer->Cancel(); + } else { + _timer->Start(_interval); + } + } +} + +int AudioThread::setVolume(bool up, bool minMax) { + int level = -1; + int numLevels = sizeof(levels) / sizeof(levels[0]); + + if (_audioOut && !isSilentMode()) { + int volume = _audioOut->GetVolume(); + if (minMax) { + level = up ? numLevels - 1 : 0; + volume = levels[level]; + } else { + // adjust volume to be one of the preset values + for (int i = 0; i < numLevels && level == -1; i++) { + if (volume == levels[i]) { + level = i; + if (up) { + if (i + 1 < numLevels) { + level = i + 1; + } + } else if (i > 0) { + level = i - 1; + } + } + } + + // default to INIT_LEVEL when current not preset value + if (level == -1) { + level = INIT_LEVEL; + } + volume = levels[level]; + } + + _audioOut->SetVolume(volume); + + // remember the chosen setting + AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); + if (registry) { + registry->Set(CONFIG_KEY, volume); + } + } + return level; +} + +bool AudioThread::OnStart(void) { + logEntered(); + + _audioOut = new Osp::Media::AudioOut(); + if (!_audioOut || + IsFailed(_audioOut->Construct(*this))) { + AppLog("Failed to create AudioOut"); + return false; + } + + int sampleRate = _mixer->getOutputRate(); + if (IsFailed(_audioOut->Prepare(AUDIO_TYPE_PCM_S16_LE, + AUDIO_CHANNEL_TYPE_STEREO, + sampleRate))) { + AppLog("Failed to prepare AudioOut %d", sampleRate); + return false; + } + + int bufferSize = _audioOut->GetMinBufferSize(); + AppLog("bufferSize = %d", bufferSize); + + for (int i = 0; i < NUM_AUDIO_BUFFERS; i++) { + if (IsFailed(_audioBuffer[i].Construct(bufferSize))) { + AppLog("Failed to create audio buffer"); + return false; + } + } + + _timer = new Timer(); + if (!_timer || IsFailed(_timer->Construct(*this))) { + AppLog("Failed to create audio timer"); + return false; + } + + if (IsFailed(_timer->Start(_interval))) { + AppLog("failed to start audio timer"); + return false; + } + + // get the volume from the app-registry + int volume = levels[INIT_LEVEL]; + AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); + if (registry) { + if (E_KEY_NOT_FOUND == registry->Get(CONFIG_KEY, volume)) { + registry->Add(CONFIG_KEY, volume); + volume = levels[INIT_LEVEL]; + } else { + AppLog("Setting volume: %d", volume); + } + } + + _muted = false; + _mixer->setReady(true); + _audioOut->SetVolume(isSilentMode() ? 0 : volume); + _audioOut->Start(); + return true; +} + +void AudioThread::OnStop(void) { + logEntered(); + + _mixer->setReady(false); + + if (_timer) { + if (!_muted) { + _timer->Cancel(); + } + delete _timer; + } + + if (_audioOut) { + _audioOut->Reset(); + delete _audioOut; + } +} + +void AudioThread::OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r) { + logEntered(); +} + +void AudioThread::OnAudioOutInterrupted(Osp::Media::AudioOut &src) { + logEntered(); +} + +void AudioThread::OnAudioOutReleased(Osp::Media::AudioOut &src) { + logEntered(); +} + +void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { + if (_ready > 0) { + _playing = _tail; + _audioOut->WriteBuffer(_audioBuffer[_tail]); + _tail = (_tail + 1 == NUM_AUDIO_BUFFERS ? 0 : _tail + 1); + _ready--; + } else { + // audio buffer empty: decrease timer inverval + _playing = -1; + _interval -= TIMER_INCREMENT; + if (_interval < MIN_TIMER_INTERVAL) { + _interval = MIN_TIMER_INTERVAL; + } + } +} + +void AudioThread::OnTimerExpired(Timer &timer) { + if (_ready < NUM_AUDIO_BUFFERS) { + uint len = _audioBuffer[_head].GetCapacity(); + int samples = _mixer->mixCallback((byte*)_audioBuffer[_head].GetPointer(), len); + if (samples) { + _head = (_head + 1 == NUM_AUDIO_BUFFERS ? 0 : _head + 1); + _ready++; + } + } else { + // audio buffer full: increase timer inverval + _interval += TIMER_INCREMENT; + if (_interval > MAX_TIMER_INTERVAL) { + _interval = MAX_TIMER_INTERVAL; + } + } + + if (_ready && _playing == -1) { + OnAudioOutBufferEndReached(*_audioOut); + } + + _timer->Start(_interval); +} + +// +// end of audio.cpp +// diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h new file mode 100755 index 0000000000..0b540645fb --- /dev/null +++ b/backends/platform/bada/audio.h @@ -0,0 +1,73 @@ +/* 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 AUDIO_H +#define AUDIO_H + +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "common/system.h" +#include "audio/mixer_intern.h" + +using namespace Osp::Base; +using namespace Osp::Base::Collection; +using namespace Osp::Base::Runtime; +using namespace Osp::Media; +using namespace Osp::Io; + +#define NUM_AUDIO_BUFFERS 2 + +class AudioThread: public Osp::Media::IAudioOutEventListener, + public Osp::Base::Runtime::ITimerEventListener, + public Osp::Base::Runtime::Thread { +public: + AudioThread(void); + ~AudioThread(void); + + Audio::MixerImpl *Construct(OSystem *system); + bool isSilentMode(); + void setMute(bool on); + int setVolume(bool up, bool minMax); + + bool OnStart(void); + void OnStop(void); + void OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r); + void OnAudioOutInterrupted(Osp::Media::AudioOut &src); + void OnAudioOutReleased(Osp::Media::AudioOut &src); + void OnAudioOutBufferEndReached(Osp::Media::AudioOut &src); + void OnTimerExpired(Timer &timer); + +private: + Audio::MixerImpl *_mixer; + Osp::Base::Runtime::Timer *_timer; + Osp::Media::AudioOut *_audioOut; + Osp::Base::ByteBuffer _audioBuffer[NUM_AUDIO_BUFFERS]; + int _head, _tail, _ready, _interval, _playing; + bool _muted; +}; + +#endif diff --git a/backends/platform/bada/bada.mk b/backends/platform/bada/bada.mk new file mode 100755 index 0000000000..fe90af4f8f --- /dev/null +++ b/backends/platform/bada/bada.mk @@ -0,0 +1,5 @@ +# Bada specific modules are built under eclipse + +$(EXECUTABLE): $(OBJS) + rm -f $@ + ar Tru $@ $(OBJS) diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp new file mode 100755 index 0000000000..eb9c828b1b --- /dev/null +++ b/backends/platform/bada/form.cpp @@ -0,0 +1,442 @@ +/* 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 + +#include "common/translation.h" +#include "base/main.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" + +using namespace Osp::App; +using namespace Osp::Base; +using namespace Osp::Base::Runtime; +using namespace Osp::Graphics; +using namespace Osp::Ui; +using namespace Osp::Ui::Controls; + +#define SHORTCUT_TIMEOUT 3000 +#define SHORTCUT_SWAP_MOUSE 0 +#define SHORTCUT_ESCAPE 1 +#define SHORTCUT_F5 2 +#define LEVEL_RANGE 5 + +// +// BadaAppForm +// +BadaAppForm::BadaAppForm() : + _gameThread(0), + _state(InitState), + _buttonState(LeftButton), + _shortcutTimer(0), + _shortcutIndex(-1), + _touchCount(0) { + _eventQueueLock = new Mutex(); + _eventQueueLock->Create(); +} + +result BadaAppForm::Construct() { + result r = Form::Construct(Controls::FORM_STYLE_NORMAL); + if (IsFailed(r)) { + return r; + } + + BadaSystem *badaSystem = null; + _gameThread = null; + + badaSystem = new BadaSystem(this); + r = badaSystem != null ? E_SUCCESS : E_OUT_OF_MEMORY; + + if (!IsFailed(r)) { + r = badaSystem->Construct(); + } + + if (!IsFailed(r)) { + _gameThread = new Thread(); + r = _gameThread != null ? E_SUCCESS : E_OUT_OF_MEMORY; + } + + if (!IsFailed(r)) { + r = _gameThread->Construct(*this); + } + + if (IsFailed(r)) { + if (badaSystem != null) { + delete badaSystem; + } + if (_gameThread != null) { + delete _gameThread; + _gameThread = null; + } + } else { + g_system = badaSystem; + } + + return r; +} + +BadaAppForm::~BadaAppForm() { + logEntered(); + + if (_gameThread) { + terminate(); + _gameThread->Stop(); + _gameThread->Join(); + delete _gameThread; + _gameThread = null; + } + + if (_eventQueueLock) { + delete _eventQueueLock; + _eventQueueLock = null; + } + + logLeaving(); +} + +// +// abort the game thread +// +void BadaAppForm::terminate() { + if (_state == ActiveState) { + ((BadaSystem*) g_system)->setMute(true); + + _eventQueueLock->Acquire(); + + Common::Event e; + e.type = Common::EVENT_QUIT; + _eventQueue.push(e); + _state = ClosingState; + + _eventQueueLock->Release(); + + // block while thread ends + AppLog("waiting for shutdown"); + for (int i = 0; i < 10 && _state == ClosingState; i++) { + Thread::Sleep(250); + } + } +} + +void BadaAppForm::exitSystem() { + _state = ErrorState; + + if (_gameThread) { + _gameThread->Stop(); + delete _gameThread; + _gameThread = null; + } +} + +result BadaAppForm::OnInitializing(void) { + logEntered(); + + SetOrientation(ORIENTATION_LANDSCAPE); + AddOrientationEventListener(*this); + AddTouchEventListener(*this); + AddKeyEventListener(*this); + + Touch touch; + touch.SetMultipointEnabled(*this, true); + + // set focus to enable receiving key events + SetFocusable(true); + SetFocus(); + + return E_SUCCESS; +} + +result BadaAppForm::OnDraw(void) { + logEntered(); + + if (g_system) { + BadaSystem *system = (BadaSystem*)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics && graphics->isReady()) { + g_system->updateScreen(); + } + } + + return E_SUCCESS; +} + +bool BadaAppForm::pollEvent(Common::Event &event) { + bool result = false; + + _eventQueueLock->Acquire(); + if (!_eventQueue.empty()) { + event = _eventQueue.pop(); + result = true; + } + _eventQueueLock->Release(); + + return result; +} + +void BadaAppForm::pushEvent(Common::EventType type, + const Point ¤tPosition) { + BadaSystem *system = (BadaSystem*)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics) { + Common::Event e; + e.type = type; + e.mouse.x = currentPosition.x; + e.mouse.y = currentPosition.y; + + bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y); + + _eventQueueLock->Acquire(); + + if (moved && type != Common::EVENT_MOUSEMOVE) { + Common::Event moveEvent; + moveEvent.type = Common::EVENT_MOUSEMOVE; + moveEvent.mouse = e.mouse; + _eventQueue.push(moveEvent); + } + + _eventQueue.push(e); + _eventQueueLock->Release(); + } +} + +void BadaAppForm::pushKey(Common::KeyCode keycode) { + Common::Event e; + e.synthetic = false; + e.kbd.keycode = keycode; + e.kbd.ascii = keycode; + e.kbd.flags = 0; + + _eventQueueLock->Acquire(); + + e.type = Common::EVENT_KEYDOWN; + _eventQueue.push(e); + e.type = Common::EVENT_KEYUP; + _eventQueue.push(e); + + _eventQueueLock->Release(); +} + +void BadaAppForm::OnOrientationChanged(const Control &source, + OrientationStatus orientationStatus) { + logEntered(); + if (_state == InitState) { + _state = ActiveState; + _gameThread->Start(); + } +} + +Object *BadaAppForm::Run(void) { + scummvm_main(0, 0); + + AppLog("scummvm_main completed"); + + if (_state == ActiveState) { + Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, null); + } + _state = DoneState; + return null; +} + +int BadaAppForm::getShortcutIndex() { + if (_shortcutTimer) { + uint32 nextTimer = g_system->getMillis(); + if (_shortcutTimer + SHORTCUT_TIMEOUT < nextTimer) { + // double tap has expired + _shortcutTimer = 0; + _shortcutIndex = -1; + } + } + return _shortcutIndex; +} + +void BadaAppForm::setVolume(bool up, bool minMax) { + int level = ((BadaSystem*)g_system)->setVolume(up, minMax); + if (level != -1) { + char message[32]; + char ind[LEVEL_RANGE]; // 1..5 (0=off) + int j = LEVEL_RANGE - 1; // 0..4 + for (int i = 1; i <= LEVEL_RANGE; i++) { + ind[j--] = level >= i ? '|' : ' '; + } + snprintf(message, sizeof(message), "Volume: [ %c%c%c%c%c ]", + ind[0], ind[1], ind[2], ind[3], ind[4]); + g_system->displayMessageOnOSD(message); + } +} + +void BadaAppForm::OnTouchDoublePressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (getShortcutIndex() == -1) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + } +} + +void BadaAppForm::OnTouchFocusIn(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { +} + +void BadaAppForm::OnTouchFocusOut(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { +} + +void BadaAppForm::OnTouchLongPressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (getShortcutIndex() == -1 && _buttonState != LeftButton) { + pushKey(Common::KEYCODE_RETURN); + } +} + +void BadaAppForm::OnTouchMoved(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (getShortcutIndex() == -1) { + pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); + } +} + +void BadaAppForm::OnTouchPressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + Touch touch; + _touchCount = touch.GetPointCount(); + if (_touchCount > 1) { + int index = getShortcutIndex(); + _shortcutIndex = (index == -1 ? 0 : index + 1); + _shortcutTimer = g_system->getMillis(); + + switch (_shortcutIndex) { + case SHORTCUT_F5: + g_system->displayMessageOnOSD(_("Game Menu")); + break; + + case SHORTCUT_ESCAPE: + g_system->displayMessageOnOSD(_("Escape")); + break; + + default: + g_system->displayMessageOnOSD(_("Swap Buttons")); + _shortcutIndex = SHORTCUT_SWAP_MOUSE; + } + } else if (getShortcutIndex() == -1) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + } +} + +void BadaAppForm::OnTouchReleased(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (getShortcutIndex() == -1) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, + currentPosition); + if (_buttonState == RightButtonOnce) { + _buttonState = LeftButton; + } + // flick to skip dialog + if (touchInfo.IsFlicked()) { + pushKey(Common::KEYCODE_PERIOD); + } + } else if (_touchCount == 1) { + bool repeat = false; + switch (_shortcutIndex) { + case SHORTCUT_SWAP_MOUSE: + switch (_buttonState) { + case LeftButton: + _buttonState = RightButtonOnce; + g_system->displayMessageOnOSD(_("Right Once")); + break; + case RightButtonOnce: + g_system->displayMessageOnOSD(_("Right Active")); + _buttonState = RightButton; + break; + case RightButton: + g_system->displayMessageOnOSD(_("Left Active")); + _buttonState = LeftButton; + break; + } + break; + + case SHORTCUT_F5: + pushKey(Common::KEYCODE_F5); + break; + + case SHORTCUT_ESCAPE: + pushKey(Common::KEYCODE_ESCAPE); + repeat = true; + break; + } + + // allow key repeat or terminate setup mode + _shortcutTimer = repeat ? g_system->getMillis() : -1; + } +} + +void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { + logEntered(); + switch (keyCode) { + case KEY_SIDE_UP: + setVolume(true, true); + return; + + case KEY_SIDE_DOWN: + setVolume(false, true); + return; + + default: + break; + } +} + +void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { + switch (keyCode) { + case KEY_SIDE_UP: + setVolume(true, false); + return; + + case KEY_SIDE_DOWN: + setVolume(false, false); + return; + + case KEY_CAMERA: + // display the soft keyboard + pushKey(Common::KEYCODE_F7); + return; + + default: + break; + } +} + +void BadaAppForm::OnKeyReleased(const Control &source, KeyCode keyCode) { +} + +// +// end of form.cpp +// diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h new file mode 100755 index 0000000000..157cc8e365 --- /dev/null +++ b/backends/platform/bada/form.h @@ -0,0 +1,108 @@ +/* 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 BADA_FORM_H +#define BADA_FORM_H + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "common/events.h" +#include "common/queue.h" +#include "common/mutex.h" + +// +// BadaAppForm +// +class BadaAppForm : public Osp::Ui::Controls::Form, + public Osp::Ui::IOrientationEventListener, + public Osp::Ui::ITouchEventListener, + public Osp::Ui::IKeyEventListener, + public Osp::Base::Runtime::IRunnable { +public: + BadaAppForm(); + ~BadaAppForm(); + + result Construct(); + bool pollEvent(Common::Event &event); + bool isClosing() { return _state == ClosingState; } + void pushKey(Common::KeyCode keycode); + void exitSystem(); + +private: + Object *Run(); + result OnInitializing(void); + result OnDraw(void); + void OnOrientationChanged(const Osp::Ui::Control &source, + Osp::Ui::OrientationStatus orientationStatus); + void OnTouchDoublePressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchFocusIn(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchFocusOut(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchLongPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchMoved(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchReleased(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnKeyLongPressed(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + void OnKeyPressed(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + void OnKeyReleased(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + + void pushEvent(Common::EventType type, + const Osp::Graphics::Point ¤tPosition); + void terminate(); + void setVolume(bool up, bool minMax); + int getShortcutIndex(); + + // event handling + Osp::Base::Runtime::Thread *_gameThread; + Osp::Base::Runtime::Mutex *_eventQueueLock; + Common::Queue _eventQueue; + enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; + enum {LeftButton, RightButtonOnce, RightButton} _buttonState; + uint32 _shortcutTimer; + int _shortcutIndex; + int _touchCount; +}; + +#endif diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp new file mode 100755 index 0000000000..4ec0201445 --- /dev/null +++ b/backends/platform/bada/fs.cpp @@ -0,0 +1,428 @@ +/* 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 "config.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/fs.h" + +#define BUFFER_SIZE 128 + +// +// BadaFileStream +// +class BadaFileStream : public Common::SeekableReadStream, + public Common::WriteStream, + public Common::NonCopyable { +public: + static BadaFileStream *makeFromPath(const String &path, bool writeMode); + + BadaFileStream(File *file, bool writeMode); + ~BadaFileStream(); + + bool err() const; + void clearErr(); + bool eos() const; + + uint32 write(const void *dataPtr, uint32 dataSize); + bool flush(); + + int32 pos() const; + int32 size() const; + bool seek(int32 offs, int whence = SEEK_SET); + uint32 read(void *dataPtr, uint32 dataSize); + +private: + byte buffer[BUFFER_SIZE]; + uint32 bufferIndex; + uint32 bufferLength; + bool writeMode; + File *file; +}; + +BadaFileStream::BadaFileStream(File *ioFile, bool writeMode) : + bufferIndex(0), + bufferLength(0), + writeMode(writeMode), + file(ioFile) { + AppAssert(ioFile != 0); +} + +BadaFileStream::~BadaFileStream() { + if (file) { + if (writeMode) { + flush(); + } + delete file; + } +} + +bool BadaFileStream::err() const { + return (GetLastResult() != E_SUCCESS); +} + +void BadaFileStream::clearErr() { + SetLastResult(E_SUCCESS); +} + +bool BadaFileStream::eos() const { + return (bufferLength - bufferIndex == 0) && (GetLastResult() == E_END_OF_FILE); +} + +int32 BadaFileStream::pos() const { + return file->Tell() - (bufferLength - bufferIndex); +} + +int32 BadaFileStream::size() const { + int32 oldPos = file->Tell(); + file->Seek(FILESEEKPOSITION_END, 0); + + int32 length = file->Tell(); + SetLastResult(file->Seek(FILESEEKPOSITION_BEGIN, oldPos)); + + return length; +} + +bool BadaFileStream::seek(int32 offs, int whence) { + bool result = false; + switch (whence) { + case SEEK_SET: + // set from start of file + SetLastResult(file->Seek(FILESEEKPOSITION_BEGIN, offs)); + result = (E_SUCCESS == GetLastResult()); + break; + + case SEEK_CUR: + // set relative to offs + if (bufferIndex < bufferLength && bufferIndex > (uint32) -offs) { + // re-position within the buffer + SetLastResult(E_SUCCESS); + bufferIndex += offs; + return true; + } else { + offs -= (bufferLength - bufferIndex); + if (offs < 0 && file->Tell() + offs < 0) { + // avoid negative positioning + offs = 0; + } + if (offs != 0) { + SetLastResult(file->Seek(FILESEEKPOSITION_CURRENT, offs)); + result = (E_SUCCESS == GetLastResult()); + } else { + result = true; + } + } + break; + + case SEEK_END: + // set relative to end - positive will increase the file size + SetLastResult(file->Seek(FILESEEKPOSITION_END, offs)); + result = (E_SUCCESS == GetLastResult()); + break; + + default: + AppLog("Invalid whence %d", whence); + return false; + } + + if (!result) { + AppLog("seek failed"); + } + + bufferIndex = bufferLength = 0; + return result; +} + +uint32 BadaFileStream::read(void *ptr, uint32 len) { + uint32 result = 0; + if (!eos()) { + if (bufferIndex < bufferLength) { + // use existing buffer + uint32 available = bufferLength - bufferIndex; + if (len <= available) { + // use allocation + memcpy((byte*) ptr, &buffer[bufferIndex], len); + bufferIndex += len; + result = len; + } else { + // use remaining allocation + memcpy((byte*) ptr, &buffer[bufferIndex], available); + uint32 remaining = len - available; + result = available; + + if (remaining) { + result += file->Read(((byte*) ptr) + available, remaining); + } + bufferIndex = bufferLength = 0; + } + } else if (len < BUFFER_SIZE) { + // allocate and use buffer + bufferIndex = 0; + bufferLength = file->Read(buffer, BUFFER_SIZE); + if (bufferLength) { + if (bufferLength < len) { + len = bufferLength; + } + memcpy((byte*) ptr, buffer, len); + result = bufferIndex = len; + } + } else { + result = file->Read((byte*) ptr, len); + bufferIndex = bufferLength = 0; + } + } else { + AppLog("Attempted to read past EOS"); + } + return result; +} + +uint32 BadaFileStream::write(const void *ptr, uint32 len) { + result r = file->Write(ptr, len); + SetLastResult(r); + return (r == E_SUCCESS ? len : 0); +} + +bool BadaFileStream::flush() { + logEntered(); + SetLastResult(file->Flush()); + return (E_SUCCESS == GetLastResult()); +} + +BadaFileStream *BadaFileStream::makeFromPath(const String &path, bool writeMode) { + File *ioFile = new File(); + + String filePath = path; + if (writeMode && (path[0] != '.' && path[0] != '/')) { + filePath.Insert("/Home/", 0); + } + + AppLog("Open file %S", filePath.GetPointer()); + + result r = ioFile->Construct(filePath, writeMode ? L"w" : L"r", writeMode); + if (r == E_SUCCESS) { + return new BadaFileStream(ioFile, writeMode); + } + + AppLog("Failed to open file"); + delete ioFile; + return 0; +} + +// +// converts a bada (wchar) String into a scummVM (char) string +// +Common::String fromString(const Osp::Base::String &in) { + ByteBuffer *buf = StringUtil::StringToUtf8N(in); + Common::String result((const char*) buf->GetPointer()); + delete buf; + + return result; +} + +// +// BadaFilesystemNode +// +BadaFilesystemNode::BadaFilesystemNode(const Common::String &nodePath) { + AppAssert(nodePath.size() > 0); + init(nodePath); +} + +BadaFilesystemNode::BadaFilesystemNode(const Common::String &root, + const Common::String &nodePath) { + // Make sure the string contains no slashes + AppAssert(!nodePath.contains('/')); + + // We assume here that path is already normalized (hence don't bother to + // call Common::normalizePath on the final path). + Common::String newPath(root); + if (root.lastChar() != '/') { + newPath += '/'; + } + newPath += nodePath; + + init(newPath); +} + +void BadaFilesystemNode::init(const Common::String &nodePath) { + // Normalize the path (that is, remove unneeded slashes etc.) + _path = Common::normalizePath(nodePath, '/'); + _displayName = Common::lastPathComponent(_path, '/'); + + StringUtil::Utf8ToString(_path.c_str(), _unicodePath); + _isVirtualDir = (_path == "/" || + _path == "/Home" || + _path == "/Home/Share" || + _path == "/Home/Share2" || + _path == "/Storagecard"); + _isValid = _isVirtualDir || !IsFailed(File::GetAttributes(_unicodePath, _attr)); +} + +bool BadaFilesystemNode::exists() const { + return _isValid; +} + +bool BadaFilesystemNode::isReadable() const { + return _isVirtualDir || _isValid; +} + +bool BadaFilesystemNode::isDirectory() const { + return _isVirtualDir || (_isValid && _attr.IsDirectory()); +} + +bool BadaFilesystemNode::isWritable() const { + bool result = (_isValid && !_isVirtualDir && !_attr.IsDirectory() && !_attr.IsReadOnly()); + if (_path == "/Home" || + _path == "/HomeExt" || + _path == "/Home/Share" || + _path == "/Home/Share2") { + result = true; + } + return result; +} + +AbstractFSNode *BadaFilesystemNode::getChild(const Common::String &n) const { + AppAssert(!_path.empty()); + AppAssert(isDirectory()); + return new BadaFilesystemNode(_path, n); +} + +bool BadaFilesystemNode::getChildren(AbstractFSList &myList, + ListMode mode, bool hidden) const { + AppAssert(isDirectory()); + + bool result = false; + + if (_isVirtualDir && mode != Common::FSNode::kListFilesOnly) { + // present well known BADA file system areas + if (_path == "/") { + myList.push_back(new BadaFilesystemNode("/Home")); + myList.push_back(new BadaFilesystemNode("/HomeExt")); + myList.push_back(new BadaFilesystemNode("/Media")); + myList.push_back(new BadaFilesystemNode("/Storagecard")); + result = true; // no more entries + } else if (_path == "/Storagecard") { + myList.push_back(new BadaFilesystemNode("/Storagecard/Media")); + result = true; // no more entries + } else if (_path == "/Home") { + // ensure share path is always included + myList.push_back(new BadaFilesystemNode("/Home/Share")); + myList.push_back(new BadaFilesystemNode("/Home/Share2")); + } + } + + if (!result) { + DirEnumerator *pDirEnum = 0; + Directory *pDir = new Directory(); + + // open directory + if (IsFailed(pDir->Construct(_unicodePath))) { + AppLog("Failed to open directory"); + } else { + // read all directory entries + pDirEnum = pDir->ReadN(); + if (pDirEnum) { + result = true; + } + + // loop through all directory entries + while (pDirEnum && pDirEnum->MoveNext() == E_SUCCESS) { + DirEntry dirEntry = pDirEnum->GetCurrentDirEntry(); + + // skip 'invisible' files if necessary + Osp::Base::String fileName = dirEntry.GetName(); + + if (fileName[0] == '.' && !hidden) { + continue; + } + + // skip '.' and '..' to avoid cycles + if ((fileName[0] == '.' && fileName[1] == 0) || + (fileName[0] == '.' && fileName[1] == '.')) { + continue; + } + + // Honor the chosen mode + if ((mode == Common::FSNode::kListFilesOnly && dirEntry.IsDirectory()) || + (mode == Common::FSNode::kListDirectoriesOnly && !dirEntry.IsDirectory())) { + continue; + } + myList.push_back(new BadaFilesystemNode(_path, fromString(fileName))); + } + } + + // cleanup + if (pDirEnum) { + delete pDirEnum; + } + + // close the opened directory + if (pDir) { + delete pDir; + } + } + + return result; +} + +AbstractFSNode *BadaFilesystemNode::getParent() const { + logEntered(); + if (_path == "/") { + return 0; // The filesystem root has no parent + } + + const char *start = _path.c_str(); + const char *end = start + _path.size(); + + // Strip of the last component. We make use of the fact that at this + // point, path is guaranteed to be normalized + while (end > start && *(end-1) != '/') { + end--; + } + + if (end == start) { + // This only happens if we were called with a relative path, for which + // there simply is no parent. + // TODO: We could also resolve this by assuming that the parent is the + // current working directory, and returning a node referring to that. + return 0; + } + + return new BadaFilesystemNode(Common::String(start, end)); +} + +Common::SeekableReadStream *BadaFilesystemNode::createReadStream() { + Common::SeekableReadStream *result = BadaFileStream::makeFromPath(_unicodePath, false); + if (result != null) { + _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr)); + } + return result; +} + +Common::WriteStream *BadaFilesystemNode::createWriteStream() { + Common::WriteStream *result = BadaFileStream::makeFromPath(_unicodePath, true); + if (result != null) { + _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr)); + } + return result; +} + +// +// end of fs.cpp +// diff --git a/backends/platform/bada/fs.h b/backends/platform/bada/fs.h new file mode 100755 index 0000000000..d7d368ac20 --- /dev/null +++ b/backends/platform/bada/fs.h @@ -0,0 +1,82 @@ +/* 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 BADA_FILESYSTEM_H +#define BADA_FILESYSTEM_H + +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "common/stream.h" +#include "backends/fs/abstract-fs.h" + +using namespace Osp::Io; +using namespace Osp::Base; +using namespace Osp::Base::Utility; + +/** + * Implementation of the ScummVM file system API based on BADA. + * + * Parts of this class are documented in the base interface class, AbstractFSNode. + */ +class BadaFilesystemNode : public AbstractFSNode { +public: + /** + * Creates a BadaFilesystemNode for a given path. + * + * @param path the path the new node should point to. + */ + BadaFilesystemNode(const Common::String &path); + + Common::String getDisplayName() const { return _displayName; } + Common::String getName() const { return _displayName; } + Common::String getPath() const { return _path; } + + bool exists() const; + bool isDirectory() const; + bool isReadable() const; + bool isWritable() const; + + AbstractFSNode *getChild(const Common::String &n) const; + bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const; + AbstractFSNode *getParent() const; + + Common::SeekableReadStream *createReadStream(); + Common::WriteStream *createWriteStream(); + +protected: + BadaFilesystemNode(const Common::String &root, + const Common::String &p); + void init(const Common::String &nodePath); + + Common::String _displayName; + Common::String _path; + String _unicodePath; + bool _isValid; + bool _isVirtualDir; + FileAttributes _attr; +}; + +#endif diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp new file mode 100755 index 0000000000..1679959b24 --- /dev/null +++ b/backends/platform/bada/graphics.cpp @@ -0,0 +1,309 @@ +/* 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 "graphics/fontman.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/graphics.h" + +// +// BadaGraphicsManager +// +BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) : + _appForm(appForm), + _eglDisplay(EGL_DEFAULT_DISPLAY), + _eglSurface(EGL_NO_SURFACE), + _eglConfig(0), + _eglContext(EGL_NO_CONTEXT), + _initState(true) { + assert(appForm != null); + _videoMode.fullscreen = true; + _videoMode.antialiasing = true; +} + +const Graphics::Font *BadaGraphicsManager::getFontOSD() { + return FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont); +} + +bool BadaGraphicsManager::moveMouse(int16 &x, int16 &y) { + int16 currentX = _cursorState.x; + int16 currentY = _cursorState.y; + + // save the current hardware coordinates + _cursorState.x = x; + _cursorState.y = y; + + // return x/y as game coordinates + adjustMousePosition(x, y); + + // convert current x/y to game coordinates + adjustMousePosition(currentX, currentY); + + // return whether game coordinates have changed + return (currentX != x || currentY != y); +} + +Common::List BadaGraphicsManager::getSupportedFormats() const { + logEntered(); + + Common::List res; + res.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0)); + res.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0)); + res.push_back(Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0)); + res.push_back(Graphics::PixelFormat::createFormatCLUT8()); + return res; +} + +bool BadaGraphicsManager::hasFeature(OSystem::Feature f) { + bool result = (f == OSystem::kFeatureFullscreenMode || + f == OSystem::kFeatureVirtualKeyboard || + OpenGLGraphicsManager::hasFeature(f)); + return result; +} + +void BadaGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) { + OpenGLGraphicsManager::setFeatureState(f, enable); +} + +void BadaGraphicsManager::setReady() { + _initState = false; +} + +void BadaGraphicsManager::updateScreen() { + if (_transactionMode == kTransactionNone) { + internUpdateScreen(); + } +} + +// see: http://forums.badadev.com/viewtopic.php?f=7&t=208 +bool BadaGraphicsManager::loadEgl() { + logEntered(); + + EGLint numConfigs = 1; + EGLint eglConfigList[] = { + EGL_RED_SIZE, 5, + EGL_GREEN_SIZE, 6, + EGL_BLUE_SIZE, 5, + EGL_ALPHA_SIZE, 0, + EGL_DEPTH_SIZE, 8, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + + EGLint eglContextList[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_NONE + }; + + eglBindAPI(EGL_OPENGL_ES_API); + + if (_eglDisplay) { + unloadGFXMode(); + } + + _eglDisplay = eglGetDisplay((EGLNativeDisplayType) EGL_DEFAULT_DISPLAY); + if (EGL_NO_DISPLAY == _eglDisplay) { + systemError("eglGetDisplay() failed"); + return false; + } + + if (EGL_FALSE == eglInitialize(_eglDisplay, null, null) || + EGL_SUCCESS != eglGetError()) { + systemError("eglInitialize() failed"); + return false; + } + + if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList, + &_eglConfig, 1, &numConfigs) || + EGL_SUCCESS != eglGetError()) { + systemError("eglChooseConfig() failed"); + return false; + } + + if (!numConfigs) { + systemError("eglChooseConfig() failed. Matching config does not exist \n"); + return false; + } + + _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, + (EGLNativeWindowType)_appForm, null); + if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) { + systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE"); + return false; + } + + _eglContext = eglCreateContext(_eglDisplay, _eglConfig, + EGL_NO_CONTEXT, eglContextList); + if (EGL_NO_CONTEXT == _eglContext || + EGL_SUCCESS != eglGetError()) { + systemError("eglCreateContext() failed"); + return false; + } + + if (false == eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext) || + EGL_SUCCESS != eglGetError()) { + systemError("eglMakeCurrent() failed"); + return false; + } + + logLeaving(); + return true; +} + +bool BadaGraphicsManager::loadGFXMode() { + logEntered(); + + if (!loadEgl()) { + unloadGFXMode(); + return false; + } + + int x, y, width, height; + _appForm->GetBounds(x, y, width, height); + _videoMode.overlayWidth = _videoMode.hardwareWidth = width; + _videoMode.overlayHeight = _videoMode.hardwareHeight = height; + _videoMode.scaleFactor = 3; // for proportional sized cursor in the launcher + + AppLog("screen size: %dx%d", _videoMode.hardwareWidth, _videoMode.hardwareHeight); + return OpenGLGraphicsManager::loadGFXMode(); +} + +void BadaGraphicsManager::internUpdateScreen() { + if (!_initState) { + OpenGLGraphicsManager::internUpdateScreen(); + eglSwapBuffers(_eglDisplay, _eglSurface); + } else { + showSplash(); + } +} + +void BadaGraphicsManager::unloadGFXMode() { + logEntered(); + + if (EGL_NO_DISPLAY != _eglDisplay) { + eglMakeCurrent(_eglDisplay, null, null, null); + + if (_eglContext != EGL_NO_CONTEXT) { + eglDestroyContext(_eglDisplay, _eglContext); + _eglContext = EGL_NO_CONTEXT; + } + + if (_eglSurface != EGL_NO_SURFACE) { + eglDestroySurface(_eglDisplay, _eglSurface); + _eglSurface = EGL_NO_SURFACE; + } + + eglTerminate(_eglDisplay); + _eglDisplay = EGL_NO_DISPLAY; + } + + _eglConfig = null; + + OpenGLGraphicsManager::unloadGFXMode(); + logLeaving(); +} + +void BadaGraphicsManager::refreshGameScreen() { + if (_screenNeedsRedraw) + _screenDirtyRect = Common::Rect(0, 0, _screenData.w, _screenData.h); + + int x = _screenDirtyRect.left; + int y = _screenDirtyRect.top; + int w = _screenDirtyRect.width(); + int h = _screenDirtyRect.height(); + + if (_screenData.format.bytesPerPixel == 1) { + // Create a temporary RGB888 surface + int sw = w; + int sh = h; + + if (_videoMode.screenWidth == w && _videoMode.screenHeight == h) { + // The extra border prevents random pixels from appearing in the right and bottom + // screen column/row. Not sure whether this should be applied to opengl-graphics.cpp + sw = w + 1; + sh = h + 1; + } + + byte *surface = new byte[sw * sh * 3]; + + // Convert the paletted buffer to RGB888 + const byte *src = (byte *)_screenData.pixels + y * _screenData.pitch; + src += x * _screenData.format.bytesPerPixel; + byte *dst = surface; + for (int i = 0; i < h; i++) { + for (int j = 0; j < w; j++) { + dst[0] = _gamePalette[src[j] * 3]; + dst[1] = _gamePalette[src[j] * 3 + 1]; + dst[2] = _gamePalette[src[j] * 3 + 2]; + dst += 3; + } + src += _screenData.pitch; + } + + // Update the texture + _gameTexture->updateBuffer(surface, w * 3, x, y, sw, sh); + + // Free the temp surface + delete[] surface; + } else { + // Update the texture + _gameTexture->updateBuffer((byte *)_screenData.pixels + y * _screenData.pitch + + x * _screenData.format.bytesPerPixel, _screenData.pitch, x, y, w, h); + } + + _screenNeedsRedraw = false; + _screenDirtyRect = Common::Rect(); +} + +// display a simple splash screen until launcher is ready +void BadaGraphicsManager::showSplash() { + Canvas canvas; + canvas.Construct(); + canvas.SetBackgroundColor(Color::COLOR_BLACK); + canvas.Clear(); + + int x = _videoMode.hardwareWidth / 3; + int y = _videoMode.hardwareHeight / 3; + + Font *pFont = new Font(); + pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 55); + canvas.SetFont(*pFont); + canvas.SetForegroundColor(Color::COLOR_GREEN); + canvas.DrawText(Point(x, y), L"ScummVM"); + delete pFont; + + pFont = new Font(); + pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 35); + canvas.SetFont(*pFont); + canvas.SetForegroundColor(Color::COLOR_WHITE); + canvas.DrawText(Point(x + 70, y + 50), L"Loading ..."); + delete pFont; + + canvas.Show(); + +} + +// +// end of graphics.cpp +// diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h new file mode 100755 index 0000000000..24cff09731 --- /dev/null +++ b/backends/platform/bada/graphics.h @@ -0,0 +1,72 @@ +/* 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 BADA_GRAPHICS_H +#define BADA_GRAPHICS_H + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "backends/graphics/opengl/opengl-graphics.h" +#include "graphics/font.h" +#include "backends/platform/bada/form.h" + +using namespace Osp::Graphics; +using namespace Osp::Graphics::Opengl; +using namespace Osp::App; + +class BadaGraphicsManager : public OpenGLGraphicsManager { +public: + BadaGraphicsManager(BadaAppForm *appForm); + + Common::List getSupportedFormats() const; + bool hasFeature(OSystem::Feature f); + void updateScreen(); + void setFeatureState(OSystem::Feature f, bool enable); + void setReady(); + bool isReady() {return !_initState;} + const Graphics::Font *getFontOSD(); + bool moveMouse(int16 &x, int16 &y); + +private: + void internUpdateScreen(); + bool loadGFXMode(); + void unloadGFXMode(); + void refreshGameScreen(); + void setInternalMousePosition(int x, int y) {} + void showSplash(); + + bool loadEgl(); + BadaAppForm *_appForm; + EGLDisplay _eglDisplay; + EGLSurface _eglSurface; + EGLConfig _eglConfig; + EGLContext _eglContext; + bool _initState; +}; + +#endif diff --git a/backends/platform/bada/main.cpp b/backends/platform/bada/main.cpp new file mode 100755 index 0000000000..154fec6462 --- /dev/null +++ b/backends/platform/bada/main.cpp @@ -0,0 +1,70 @@ +/* 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 +#include +#include + +#include "backends/platform/bada/portdefs.h" +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/application.h" + +using namespace Osp::Base; +using namespace Osp::Base::Collection; + +C_LINKAGE_BEGIN + +_EXPORT_ int OspMain(int argc, char *pArgv[]); + +/** + * The entry function of bada application called by the operating system. + */ +int OspMain(int argc, char *pArgv[]) { + result r = E_SUCCESS; + + AppLog("Application started."); + ArrayList *pArgs = new ArrayList(); + pArgs->Construct(); + + for (int i = 0; i < argc; i++) { + pArgs->Add(*(new String(pArgv[i]))); + } + + r = Osp::App::Application::Execute(BadaScummVM::createInstance, pArgs); + if (IsFailed(r)) { + r &= 0x0000FFFF; + } + + pArgs->RemoveAll(true); + delete pArgs; + AppLog("Application finished."); + + return static_cast(r); +} + +C_LINKAGE_END + +// +// end of main.cpp +// + diff --git a/backends/platform/bada/missing.cpp b/backends/platform/bada/missing.cpp new file mode 100755 index 0000000000..57369f6f37 --- /dev/null +++ b/backends/platform/bada/missing.cpp @@ -0,0 +1,113 @@ +/* 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 +#include +#include +#include +#include + +#include "backends/platform/bada/portdefs.h" + +#include +#include +#include +#include + +#define BUF_SIZE 255 + +void systemError(const char *message); + +C_LINKAGE_BEGIN + +int __errno; // for overridden method in saves/default/default-saves.cpp + +void __assert_func(const char *file, int line, + const char *func, const char *err) { + char buffer[BUF_SIZE]; + snprintf(buffer, sizeof(buffer), "%s %d %s %s", file, line, func, err); + systemError(buffer); +} + +void stderr_fprintf(void*, const char *format, ...) { + va_list ap; + char buffer[BUF_SIZE]; + + va_start(ap, format); + vsnprintf(buffer, sizeof(buffer), format, ap); + va_end(ap); + + AppLog(buffer); +} + +void stderr_vfprintf(void*, const char *format, va_list ap) { + char buffer[BUF_SIZE]; + vsnprintf(buffer, sizeof(buffer), format, ap); + AppLog(buffer); +} + +int printf(const char *format, ...) { + int result = 0; + va_list ap; + char buffer[BUF_SIZE]; + + va_start(ap, format); + result = vsnprintf(buffer, sizeof(buffer), format, ap); + va_end(ap); + + AppLog(buffer); + + return result; +} + +int sprintf(char *str, const char *format, ...) { + va_list ap; + int result; + char buffer[BUF_SIZE]; + + va_start(ap, format); + result = vsnprintf(buffer, sizeof(buffer), format, ap); + va_end(ap); + + strcpy(str, buffer); + + return result; +} + +char *strdup(const char *strSource) { + char *buffer; + int len = strlen(strSource) + 1; + buffer = (char*) malloc(len); + if (buffer) { + memcpy(buffer, strSource, len); + } + return buffer; +} + +int vsprintf(char *str, const char *format, va_list ap) { + char buffer[BUF_SIZE]; + int result = vsnprintf(buffer, sizeof(buffer), format, ap); + strcpy(str, buffer); + return result; +} + +C_LINKAGE_END diff --git a/backends/platform/bada/portdefs.h b/backends/platform/bada/portdefs.h new file mode 100755 index 0000000000..c96d6646b5 --- /dev/null +++ b/backends/platform/bada/portdefs.h @@ -0,0 +1,84 @@ +/* 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 PORT_DEFS_H +#define PORT_DEFS_H + +#include +#include +#include +#include +#include +#include +#include + +#define M_PI 3.14159265358979323846 + +#ifdef __cplusplus + #include // causes a link error when building c programs + #define C_LINKAGE_BEGIN extern "C" { + #define C_LINKAGE_END } +#else + #define C_LINKAGE_BEGIN + #define C_LINKAGE_END +#endif + +C_LINKAGE_BEGIN + +// for libFLAC +#undef fseeko +#undef ftello +#define fseeko fseek +#define ftello ftell + +// overcome use of fprintf since bada/newlib (1.2) does not +// support stderr/stdout (undefined reference to `_impure_ptr'). + +void stderr_fprintf(void*, const char *format, ...); +void stderr_vfprintf(void*, const char *format, va_list ap); + +#undef fprintf +#undef vfprintf +#undef stderr +#undef stdout +#undef stdin +#undef fputs +#undef fflush + +#define stderr (void*)0 +#define stdout (void*)1 +#define stdin (void*)2 +#define fputs(str, file) +#define fflush(file) +#define sscanf simple_sscanf +#define fprintf stderr_fprintf +#define vfprintf stderr_vfprintf + +int printf(const char *format, ...); +int sprintf(char *str, const char *format, ...); +int simple_sscanf(const char *buffer, const char *format, ...); +char *strdup(const char *s1); +int vsprintf(char *str, const char *format, va_list ap); + +C_LINKAGE_END + +#endif diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp new file mode 100755 index 0000000000..2321833477 --- /dev/null +++ b/backends/platform/bada/sscanf.cpp @@ -0,0 +1,182 @@ +/* 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 +#include +#include +#include +#include + +// +// simple sscanf replacement to match scummvm usage patterns +// + +bool scanInt(const char **in, va_list *ap, int max) { + while (**in && **in == ' ') { + (*in)++; + } + + int *arg = va_arg(*ap, int*); + char *end; + long n = strtol(*in, &end, 0); + + bool err = false; + if (end == *in || (max > 0 && (end - *in) > max)) { + err = true; + } else { + *arg = (int)n; + *in = end; + } + return err; +} + +bool scanHex(const char **in, va_list *ap) { + unsigned *arg = va_arg(*ap, unsigned*); + char *end; + long n = strtol(*in, &end, 16); + if (end == *in) { + return true; + } + + *in = end; + *arg = (unsigned) n; + return false; +} + +bool scanString(const char **in, va_list *ap) { + char *arg = va_arg(*ap, char*); + while (**in && **in != ' ' && **in != '\n' && **in != '\t') { + *arg = **in; + arg++; + (*in)++; + } + *arg = '\0'; + (*in)++; + return false; +} + +bool scanStringUntil(const char **in, va_list *ap, char c_end) { + char *arg = va_arg(*ap, char*); + while (**in && **in != c_end) { + *arg = **in; + *arg++; + (*in)++; + } + *arg = 0; + (*in)++; + return false; +} + +bool scanChar(const char **in, va_list *ap) { + char *arg = va_arg(*ap, char*); + if (**in) { + *arg = **in; + (*in)++; + } + return false; +} + +extern "C" int simple_sscanf(const char *input, const char *format, ...) { + va_list ap; + int result = 0; + const char *next = input; + + va_start(ap, format); + + while (*format) { + if (*format == '%') { + format++; + int max = 0; + while (isdigit(*format)) { + max = (max * 10) + (*format - '0'); + format++; + } + + bool err = false; + switch (*format++) { + case 'c': + err = scanChar(&next, &ap); + break; + case 'd': + case 'u': + err = scanInt(&next, &ap, max); + break; + case 'x': + err = scanHex(&next, &ap); + break; + case 's': + err = scanString(&next, &ap); + break; + case '[': + // assume %[^c] + if ('^' != *format) { + err = true; + } else { + format++; + if (*format && *(format+1) == ']') { + err = scanStringUntil(&next, &ap, *format); + format += 2; + } else { + err = true; + } + } + break; + default: + err = true; + break; + } + + if (err) { + break; + } else { + result++; + } + } else if (*format++ != *next++) { + // match input + break; + } + } + + va_end(ap); + return result; +} + +#if defined(TEST) +int main(int argc, char *pArgv[]) { + int x,y,h; + char buffer[100]; + unsigned u; + char c; + strcpy(buffer, "hello"); + char *b = buffer; + + // strcpy(buffer, "in the buffer something"); + if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $", + "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", + &x, &y, &h, b, &u, &c) != 6) { + printf("Failed\n"); + } else { + printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c); + } + return 0; +} +#endif diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp new file mode 100755 index 0000000000..9b137d059a --- /dev/null +++ b/backends/platform/bada/system.cpp @@ -0,0 +1,500 @@ +/* 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 + +#include "common/config-manager.h" +#include "common/file.h" +#include "engines/engine.h" +#include "graphics/font.h" +#include "graphics/fontman.h" +#include "graphics/fonts/bdf.h" +#include "backends/saves/default/default-saves.h" +#include "backends/events/default/default-events.h" +#include "backends/audiocd/default/default-audiocd.h" +#include "backends/mutex/mutex.h" +#include "backends/fs/fs-factory.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/graphics.h" +#include "backends/platform/bada/audio.h" +#include "backends/platform/bada/timer.h" + +using namespace Osp::Base; +using namespace Osp::Base::Runtime; +using namespace Osp::Ui::Controls; + +#define DEFAULT_CONFIG_FILE "/Home/scummvm.ini" +#define MUTEX_BUFFER_SIZE 5 + +// +// BadaFilesystemFactory +// +class BadaFilesystemFactory : public FilesystemFactory { + AbstractFSNode *makeRootFileNode() const; + AbstractFSNode *makeCurrentDirectoryFileNode() const; + AbstractFSNode *makeFileNodePath(const Common::String &path) const; +}; + +AbstractFSNode *BadaFilesystemFactory::makeRootFileNode() const { + return new BadaFilesystemNode("/"); +} + +AbstractFSNode *BadaFilesystemFactory::makeCurrentDirectoryFileNode() const { + return new BadaFilesystemNode("/Home"); +} + +AbstractFSNode *BadaFilesystemFactory::makeFileNodePath(const Common::String &path) const { + AppAssert(!path.empty()); + return new BadaFilesystemNode(path); +} + +// +// BadaSaveFileManager +// +struct BadaSaveFileManager : public DefaultSaveFileManager { + bool removeSavefile(const Common::String &filename); +}; + +bool BadaSaveFileManager::removeSavefile(const Common::String &filename) { + Common::String savePathName = getSavePath(); + + checkPath(Common::FSNode(savePathName)); + if (getError().getCode() != Common::kNoError) { + return false; + } + + // recreate FSNode since checkPath may have changed/created the directory + Common::FSNode savePath(savePathName); + Common::FSNode file = savePath.getChild(filename); + + String unicodeFileName; + StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName); + + switch (Osp::Io::File::Remove(unicodeFileName)) { + case E_SUCCESS: + return true; + + case E_ILLEGAL_ACCESS: + setError(Common::kWritePermissionDenied, "Search or write permission denied: " + + file.getName()); + break; + + default: + setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() + + "' does not exist or path is invalid"); + break; + } + + return false; +} + +// +// BadaMutexManager +// +struct BadaMutexManager : public MutexManager { + BadaMutexManager(); + ~BadaMutexManager(); + OSystem::MutexRef createMutex(); + void lockMutex(OSystem::MutexRef mutex); + void unlockMutex(OSystem::MutexRef mutex); + void deleteMutex(OSystem::MutexRef mutex); +private: + Mutex *buffer[MUTEX_BUFFER_SIZE]; +}; + +BadaMutexManager::BadaMutexManager() { + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + buffer[i] = null; + } +} + +BadaMutexManager::~BadaMutexManager() { + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] != null) { + delete buffer[i]; + } + } +} + +OSystem::MutexRef BadaMutexManager::createMutex() { + Mutex *mutex = new Mutex(); + mutex->Create(); + + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] == null) { + buffer[i] = mutex; + break; + } + } + + return (OSystem::MutexRef) mutex; +} + +void BadaMutexManager::lockMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + m->Acquire(); +} + +void BadaMutexManager::unlockMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + m->Release(); +} + +void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] == m) { + buffer[i] = null; + } + } + + delete m; +} + +// +// BadaEventManager +// +struct BadaEventManager : public DefaultEventManager { + BadaEventManager(Common::EventSource *boss); + void init(); + int shouldQuit() const; +}; + +BadaEventManager::BadaEventManager(Common::EventSource *boss) : + DefaultEventManager(boss) { +} + +void BadaEventManager::init() { + DefaultEventManager::init(); + + // theme and vkbd should have now loaded - clear the splash screen + BadaSystem *system = (BadaSystem*)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics) { + graphics->setReady(); + graphics->updateScreen(); + } +} + +int BadaEventManager::shouldQuit() const { + BadaSystem *system = (BadaSystem*)g_system; + return system->isClosing(); +} + +// +// BadaSystem +// +BadaSystem::BadaSystem(BadaAppForm *appForm) : + _appForm(appForm), + _audioThread(0), + _epoch(0) { +} + +result BadaSystem::Construct(void) { + logEntered(); + + _fsFactory = new BadaFilesystemFactory(); + if (!_fsFactory) { + return E_OUT_OF_MEMORY; + } + + return E_SUCCESS; +} + +BadaSystem::~BadaSystem() { + logEntered(); +} + +result BadaSystem::initModules() { + logEntered(); + + _mutexManager = new BadaMutexManager(); + if (!_mutexManager) { + return E_OUT_OF_MEMORY; + } + + _timerManager = new BadaTimerManager(); + if (!_timerManager) { + return E_OUT_OF_MEMORY; + } + + _savefileManager = new BadaSaveFileManager(); + if (!_savefileManager) { + return E_OUT_OF_MEMORY; + } + + _graphicsManager = (GraphicsManager*) new BadaGraphicsManager(_appForm); + if (!_graphicsManager) { + return E_OUT_OF_MEMORY; + } + + // depends on _graphicsManager when ENABLE_VKEYBD enabled + _eventManager = new BadaEventManager(this); + if (!_eventManager) { + return E_OUT_OF_MEMORY; + } + + _audioThread = new AudioThread(); + if (!_audioThread) { + return E_OUT_OF_MEMORY; + } + + _mixer = _audioThread->Construct(this); + if (!_mixer) { + return E_OUT_OF_MEMORY; + } + + _audiocdManager = (AudioCDManager*) new DefaultAudioCDManager(); + if (!_audiocdManager) { + return E_OUT_OF_MEMORY; + } + + if (IsFailed(_audioThread->Start())) { + AppLog("Failed to start audio thread"); + return E_OUT_OF_MEMORY; + } + + logLeaving(); + return E_SUCCESS; +} + +void BadaSystem::initBackend() { + logEntered(); + + // allow translations to be found + ConfMan.set("themepath", "/Res"); + + // use the mobile device theme + ConfMan.set("gui_theme", "/Res/scummmobile"); + + // allow virtual keypad pack to be found + ConfMan.set("vkeybdpath", "/Res/vkeybd_default"); + + // set default save path to writable area + if (!ConfMan.hasKey("savepath")) { + ConfMan.set("savepath", "/Home/Share"); + } + + // default to no auto-save + if (!ConfMan.hasKey("autosave_period")) { + ConfMan.setInt("autosave_period", 0); + } + + ConfMan.registerDefault("fullscreen", true); + ConfMan.registerDefault("aspect_ratio", true); + ConfMan.setBool("confirm_exit", false); + + Osp::System::SystemTime::GetTicks(_epoch); + + if (E_SUCCESS != initModules()) { + AppLog("initModules failed"); + } else { + OSystem::initBackend(); + } + + // replace kBigGUIFont using the large font from the scummmobile theme + Common::File fontFile; + Common::String fileName = "/Res/scummmobile/helvB14-ASCII.fcc"; + BadaFilesystemNode file(fileName); + if (file.exists()) { + Common::SeekableReadStream *stream = file.createReadStream(); + if (stream) { + if (fontFile.open(stream, fileName)) { + Graphics::BdfFont *font = Graphics::BdfFont::loadFromCache(fontFile); + if (font) { + // use this font for the vkbd and on-screen messages + FontMan.assignFontToUsage(Graphics::FontManager::kBigGUIFont, font); + } + } + } + } + + logLeaving(); +} + +void BadaSystem::destroyBackend() { + closeAudio(); + + delete _graphicsManager; + _graphicsManager = 0; + + delete _savefileManager; + _savefileManager = 0; + + delete _fsFactory; + _fsFactory = 0; + + delete _mixer; + _mixer = 0; + + delete _audiocdManager; + _audiocdManager = 0; + + delete _timerManager; + _timerManager = 0; + + delete _eventManager; + _eventManager = 0; + + delete _mutexManager; + _mutexManager = 0; + + delete g_engine; +} + +bool BadaSystem::pollEvent(Common::Event &event) { + return _appForm->pollEvent(event); +} + +uint32 BadaSystem::getMillis() { + long long result, ticks = 0; + Osp::System::SystemTime::GetTicks(ticks); + result = ticks - _epoch; + return result; +} + +void BadaSystem::delayMillis(uint msecs) { + if (!_appForm->isClosing()) { + Thread::Sleep(msecs); + } +} + +void BadaSystem::updateScreen() { + if (_graphicsManager != null) { + _graphicsManager->updateScreen(); + } +} + +void BadaSystem::getTimeAndDate(TimeDate &td) const { + DateTime currentTime; + + if (E_SUCCESS == Osp::System::SystemTime::GetCurrentTime(currentTime)) { + td.tm_sec = currentTime.GetSecond(); + td.tm_min = currentTime.GetMinute(); + td.tm_hour = currentTime.GetHour(); + td.tm_mday = currentTime.GetDay(); + td.tm_mon = currentTime.GetMonth(); + td.tm_year = currentTime.GetYear(); + } +} + +void BadaSystem::fatalError() { + systemError("ScummVM: Fatal internal error."); +} + +void BadaSystem::exitSystem() { + if (_appForm) { + closeAudio(); + closeGraphics(); + _appForm->exitSystem(); + } +} + +void BadaSystem::logMessage(LogMessageType::Type /*type*/, const char *message) { + AppLog(message); +} + +Common::SeekableReadStream *BadaSystem::createConfigReadStream() { + BadaFilesystemNode file(DEFAULT_CONFIG_FILE); + return file.createReadStream(); +} + +Common::WriteStream *BadaSystem::createConfigWriteStream() { + BadaFilesystemNode file(DEFAULT_CONFIG_FILE); + return file.createWriteStream(); +} + +void BadaSystem::closeAudio() { + if (_audioThread) { + _audioThread->Stop(); + _audioThread->Join(); + delete _audioThread; + _audioThread = 0; + } +} + +void BadaSystem::closeGraphics() { + if (_graphicsManager) { + delete _graphicsManager; + _graphicsManager = 0; + } +} + +void BadaSystem::setMute(bool on) { + if (_audioThread) { + _audioThread->setMute(on); + } +} + +int BadaSystem::setVolume(bool up, bool minMax) { + int level = -1; + if (_audioThread) { + level = _audioThread->setVolume(up, minMax); + } + return level; +} + +// +// create the scummVM system +// +BadaAppForm *systemStart(Osp::App::Application *app) { + logEntered(); + + BadaAppForm *appForm = new BadaAppForm(); + if (!appForm) { + AppLog("Failed to create appForm"); + return null; + } + + if (E_SUCCESS != appForm->Construct() || + E_SUCCESS != app->GetAppFrame()->GetFrame()->AddControl(*appForm)) { + delete appForm; + AppLog("Failed to construct appForm"); + return null; + } + + return appForm; +} + +// +// display a fatal error notification +// +void systemError(const char *message) { + AppLog("Fatal system error: %s", message); + + ArrayList *args = new ArrayList(); + args->Construct(); + args->Add(*(new String(message))); + Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT_ERR, args); + + if (g_system) { + BadaSystem *system = (BadaSystem*)g_system; + system->exitSystem(); + } +} + +// +// end of system.cpp +// diff --git a/backends/platform/bada/system.h b/backends/platform/bada/system.h new file mode 100755 index 0000000000..7b5b9d87de --- /dev/null +++ b/backends/platform/bada/system.h @@ -0,0 +1,101 @@ +/* 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 BADA_SYSTEM_H +#define BADA_SYSTEM_H + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "backends/modular-backend.h" + +#include "backends/platform/bada/fs.h" +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/audio.h" +#include "backends/platform/bada/graphics.h" + +#if defined(_DEBUG) +#define logEntered() AppLog("%s entered (%s %d)", \ + __FUNCTION__, __FILE__, __LINE__); +#define logLeaving() AppLog("%s leaving (%s %d)", \ + __FUNCTION__, __FILE__, __LINE__); +#else +#define logEntered() +#define logLeaving() +#endif + +BadaAppForm *systemStart(Osp::App::Application *app); +void systemError(const char *message); + +#define USER_MESSAGE_EXIT 1000 +#define USER_MESSAGE_EXIT_ERR 1001 + +// +// BadaSystem +// +class BadaSystem : public ModularBackend, + Common::EventSource { +public: + BadaSystem(BadaAppForm *appForm); + ~BadaSystem(); + + result Construct(); + void closeAudio(); + void closeGraphics(); + void destroyBackend(); + void setMute(bool on); + int setVolume(bool up, bool minMax); + void exitSystem(); + bool isClosing() { return _appForm->isClosing(); } + + BadaGraphicsManager *getGraphics() { + return (BadaGraphicsManager*)_graphicsManager; + } + +private: + void initBackend(); + result initModules(); + + void updateScreen(); + bool pollEvent(Common::Event &event); + uint32 getMillis(); + void delayMillis(uint msecs); + void getTimeAndDate(TimeDate &t) const; + void fatalError(); + void logMessage(LogMessageType::Type type, const char *message); + + Common::EventSource *getDefaultEventSource() {return this;} + Common::SeekableReadStream *createConfigReadStream(); + Common::WriteStream *createConfigWriteStream(); + + BadaAppForm *_appForm; + AudioThread *_audioThread; + long long _epoch; +}; + +#endif diff --git a/backends/platform/bada/timer.cpp b/backends/platform/bada/timer.cpp new file mode 100755 index 0000000000..0c941795d3 --- /dev/null +++ b/backends/platform/bada/timer.cpp @@ -0,0 +1,124 @@ +/* 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/bada/timer.h" +#include "backends/platform/bada/system.h" + +// +// TimerSlot +// +TimerSlot::TimerSlot(Common::TimerManager::TimerProc callback, + uint32 interval, void *refCon) : + _timer(0), + _callback(callback), + _interval(interval), + _refCon(refCon) { + logEntered(); +} + +TimerSlot::~TimerSlot() { + logEntered(); +} + +bool TimerSlot::OnStart() { + logEntered(); + + _timer = new Osp::Base::Runtime::Timer(); + if (!_timer || IsFailed(_timer->Construct(*this))) { + AppLog("Failed to create timer"); + return false; + } + + if (IsFailed(_timer->Start(_interval))) { + AppLog("failed to start timer"); + return false; + } + + AppLog("started timer %d", _interval); + return true; +} + +void TimerSlot::OnStop() { + logEntered(); + if (_timer) { + _timer->Cancel(); + delete _timer; + _timer = null; + } +} + +void TimerSlot::OnTimerExpired(Timer &timer) { + _callback(_refCon); + timer.Start(_interval); +} + +// +// BadaTimerManager +// +BadaTimerManager::BadaTimerManager() { + logEntered(); +} + +BadaTimerManager::~BadaTimerManager() { + logEntered(); + for (Common::List::iterator slot = _timers.begin(); + slot != _timers.end(); ++slot) { + slot->Stop(); + slot = _timers.erase(slot); + } +} + +bool BadaTimerManager::installTimerProc(TimerProc proc, int32 interval, void *refCon, + const Common::String &id) { + logEntered(); + TimerSlot *slot = new TimerSlot(proc, interval / 1000, refCon); + + if (IsFailed(slot->Construct(THREAD_TYPE_EVENT_DRIVEN))) { + AppLog("Failed to create timer thread"); + delete slot; + return false; + } + + if (IsFailed(slot->Start())) { + delete slot; + AppLog("Failed to start timer thread"); + return false; + } + + _timers.push_back(*slot); + return true; +} + +void BadaTimerManager::removeTimerProc(TimerProc proc) { + logEntered(); + for (Common::List::iterator slot = _timers.begin(); + slot != _timers.end(); ++slot) { + if (slot->_callback == proc) { + slot->Stop(); + slot = _timers.erase(slot); + } + } +} + +// +// end of timer.cpp +// diff --git a/backends/platform/bada/timer.h b/backends/platform/bada/timer.h new file mode 100755 index 0000000000..f9ed32c801 --- /dev/null +++ b/backends/platform/bada/timer.h @@ -0,0 +1,62 @@ +/* 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 BADA_TIMER_H +#define BADA_TIMER_H + +#include + +#include "common/timer.h" +#include "common/list.h" + +using namespace Osp::Base::Runtime; + +struct TimerSlot: public ITimerEventListener, public Thread { + TimerSlot(Common::TimerManager::TimerProc callback, + uint32 interval, + void *refCon); + ~TimerSlot(); + + bool OnStart(void); + void OnStop(void); + void OnTimerExpired(Timer &timer); + + Timer *_timer; + Common::TimerManager::TimerProc _callback; + uint32 _interval; // in microseconds + void *_refCon; +}; + +class BadaTimerManager : public Common::TimerManager { +public: + BadaTimerManager(); + ~BadaTimerManager(); + + bool installTimerProc(TimerProc proc, int32 interval, void *refCon, + const Common::String &id); + void removeTimerProc(TimerProc proc); + + private: + Common::List _timers; +}; + +#endif -- cgit v1.2.3 From fecce484ce39ddd1d09e8d7a45f6ae22e63f30c0 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Mon, 8 Aug 2011 20:20:43 +1000 Subject: BADA: Renamed the customised vkeybd layout to vkeybd_bada --- backends/platform/bada/system.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 9b137d059a..f3f3083e5a 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -289,8 +289,9 @@ void BadaSystem::initBackend() { // use the mobile device theme ConfMan.set("gui_theme", "/Res/scummmobile"); - // allow virtual keypad pack to be found - ConfMan.set("vkeybdpath", "/Res/vkeybd_default"); + // allow bada virtual keypad pack to be found + ConfMan.set("vkeybdpath", "/Res/vkeybd_bada"); + ConfMan.set("vkeybd_pack_name", "vkeybd_bada"); // set default save path to writable area if (!ConfMan.hasKey("savepath")) { -- cgit v1.2.3 From 533dc5f8e4d209fb721d64bce36a44bd14ede4c2 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Wed, 10 Aug 2011 06:59:23 +1000 Subject: BADA: Camera button can now set shortcuts --- backends/platform/bada/form.cpp | 57 ++++++++++++++++++++++++++--------------- backends/platform/bada/form.h | 3 ++- 2 files changed, 38 insertions(+), 22 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index eb9c828b1b..8546c12345 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -284,6 +284,26 @@ void BadaAppForm::setVolume(bool up, bool minMax) { } } +void BadaAppForm::setShortcut() { + int index = getShortcutIndex(); + _shortcutIndex = (index == -1 ? 0 : index + 1); + _shortcutTimer = g_system->getMillis(); + + switch (_shortcutIndex) { + case SHORTCUT_F5: + g_system->displayMessageOnOSD(_("Game Menu")); + break; + + case SHORTCUT_ESCAPE: + g_system->displayMessageOnOSD(_("Escape")); + break; + + default: + g_system->displayMessageOnOSD(_("Set Buttons")); + _shortcutIndex = SHORTCUT_SWAP_MOUSE; + } +} + void BadaAppForm::OnTouchDoublePressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { @@ -327,24 +347,8 @@ void BadaAppForm::OnTouchPressed(const Control &source, Touch touch; _touchCount = touch.GetPointCount(); if (_touchCount > 1) { - int index = getShortcutIndex(); - _shortcutIndex = (index == -1 ? 0 : index + 1); - _shortcutTimer = g_system->getMillis(); - - switch (_shortcutIndex) { - case SHORTCUT_F5: - g_system->displayMessageOnOSD(_("Game Menu")); - break; - - case SHORTCUT_ESCAPE: - g_system->displayMessageOnOSD(_("Escape")); - break; - - default: - g_system->displayMessageOnOSD(_("Swap Buttons")); - _shortcutIndex = SHORTCUT_SWAP_MOUSE; - } - } else if (getShortcutIndex() == -1) { + setShortcut(); + } else if (getShortcutIndex() == -1 && _buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); } @@ -369,14 +373,18 @@ void BadaAppForm::OnTouchReleased(const Control &source, case SHORTCUT_SWAP_MOUSE: switch (_buttonState) { case LeftButton: - _buttonState = RightButtonOnce; g_system->displayMessageOnOSD(_("Right Once")); + _buttonState = RightButtonOnce; break; case RightButtonOnce: g_system->displayMessageOnOSD(_("Right Active")); _buttonState = RightButton; break; case RightButton: + g_system->displayMessageOnOSD(_("Move Active")); + _buttonState = MoveOnly; + break; + case MoveOnly: g_system->displayMessageOnOSD(_("Left Active")); _buttonState = LeftButton; break; @@ -409,6 +417,13 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { setVolume(false, true); return; + case KEY_CAMERA: + // display the soft keyboard + _buttonState = LeftButton; + _shortcutTimer = -1; + pushKey(Common::KEYCODE_F7); + return; + default: break; } @@ -425,8 +440,8 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { return; case KEY_CAMERA: - // display the soft keyboard - pushKey(Common::KEYCODE_F7); + _touchCount = 1; + setShortcut(); return; default: diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index 157cc8e365..6d0b491b37 100755 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -91,6 +91,7 @@ private: void pushEvent(Common::EventType type, const Osp::Graphics::Point ¤tPosition); void terminate(); + void setShortcut(); void setVolume(bool up, bool minMax); int getShortcutIndex(); @@ -99,7 +100,7 @@ private: Osp::Base::Runtime::Mutex *_eventQueueLock; Common::Queue _eventQueue; enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; - enum {LeftButton, RightButtonOnce, RightButton} _buttonState; + enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; uint32 _shortcutTimer; int _shortcutIndex; int _touchCount; -- cgit v1.2.3 From bd028d4167e7429ab98b4c847d3fd1a1de682ccd Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Thu, 11 Aug 2011 18:09:18 +1000 Subject: BADA: Further control UI enhancements --- backends/platform/bada/form.cpp | 180 ++++++++++++++++++++-------------------- backends/platform/bada/form.h | 5 +- 2 files changed, 91 insertions(+), 94 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 8546c12345..d5fda598ee 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -35,10 +35,13 @@ using namespace Osp::Graphics; using namespace Osp::Ui; using namespace Osp::Ui::Controls; -#define SHORTCUT_TIMEOUT 3000 #define SHORTCUT_SWAP_MOUSE 0 #define SHORTCUT_ESCAPE 1 -#define SHORTCUT_F5 2 +#define SHORTCUT_MENU 2 +#define SHORTCUT_KEYPAD 3 +#define SHORTCUT_VOLUME 4 +#define SHORTCUT_BEGIN SHORTCUT_SWAP_MOUSE +#define SHORTCUT_END SHORTCUT_KEYPAD #define LEVEL_RANGE 5 // @@ -48,9 +51,7 @@ BadaAppForm::BadaAppForm() : _gameThread(0), _state(InitState), _buttonState(LeftButton), - _shortcutTimer(0), - _shortcutIndex(-1), - _touchCount(0) { + _shortcutIndex(SHORTCUT_VOLUME) { _eventQueueLock = new Mutex(); _eventQueueLock->Create(); } @@ -156,9 +157,6 @@ result BadaAppForm::OnInitializing(void) { AddTouchEventListener(*this); AddKeyEventListener(*this); - Touch touch; - touch.SetMultipointEnabled(*this, true); - // set focus to enable receiving key events SetFocusable(true); SetFocus(); @@ -257,16 +255,49 @@ Object *BadaAppForm::Run(void) { return null; } -int BadaAppForm::getShortcutIndex() { - if (_shortcutTimer) { - uint32 nextTimer = g_system->getMillis(); - if (_shortcutTimer + SHORTCUT_TIMEOUT < nextTimer) { - // double tap has expired - _shortcutTimer = 0; - _shortcutIndex = -1; - } +void BadaAppForm::setButtonShortcut() { + switch (_buttonState) { + case LeftButton: + g_system->displayMessageOnOSD(_("Right Click Once")); + _buttonState = RightButtonOnce; + break; + case RightButtonOnce: + g_system->displayMessageOnOSD(_("Right Click")); + _buttonState = RightButton; + break; + case RightButton: + g_system->displayMessageOnOSD(_("Move Only")); + _buttonState = MoveOnly; + break; + case MoveOnly: + g_system->displayMessageOnOSD(_("Left Click")); + _buttonState = LeftButton; + break; + } +} + +void BadaAppForm::setShortcut() { + // cycle to the next shortcut + _shortcutIndex = (_shortcutIndex >= SHORTCUT_END ? SHORTCUT_BEGIN : + _shortcutIndex + 1); + + switch (_shortcutIndex) { + case SHORTCUT_SWAP_MOUSE: + g_system->displayMessageOnOSD(_("Control Mouse")); + break; + + case SHORTCUT_ESCAPE: + g_system->displayMessageOnOSD(_("Escape Key")); + break; + + case SHORTCUT_MENU: + g_system->displayMessageOnOSD(_("Game Menu")); + break; + + case SHORTCUT_KEYPAD: + g_system->displayMessageOnOSD(_("Show Keypad")); + break; } - return _shortcutIndex; } void BadaAppForm::setVolume(bool up, bool minMax) { @@ -284,30 +315,16 @@ void BadaAppForm::setVolume(bool up, bool minMax) { } } -void BadaAppForm::setShortcut() { - int index = getShortcutIndex(); - _shortcutIndex = (index == -1 ? 0 : index + 1); - _shortcutTimer = g_system->getMillis(); - - switch (_shortcutIndex) { - case SHORTCUT_F5: - g_system->displayMessageOnOSD(_("Game Menu")); - break; - - case SHORTCUT_ESCAPE: - g_system->displayMessageOnOSD(_("Escape")); - break; - - default: - g_system->displayMessageOnOSD(_("Set Buttons")); - _shortcutIndex = SHORTCUT_SWAP_MOUSE; - } +void BadaAppForm::showKeypad() { + // display the soft keyboard + _buttonState = LeftButton; + pushKey(Common::KEYCODE_F7); } void BadaAppForm::OnTouchDoublePressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (getShortcutIndex() == -1) { + if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, @@ -328,7 +345,7 @@ void BadaAppForm::OnTouchFocusOut(const Control &source, void BadaAppForm::OnTouchLongPressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (getShortcutIndex() == -1 && _buttonState != LeftButton) { + if (_buttonState != LeftButton) { pushKey(Common::KEYCODE_RETURN); } } @@ -336,19 +353,13 @@ void BadaAppForm::OnTouchLongPressed(const Control &source, void BadaAppForm::OnTouchMoved(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (getShortcutIndex() == -1) { - pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); - } + pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); } void BadaAppForm::OnTouchPressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - Touch touch; - _touchCount = touch.GetPointCount(); - if (_touchCount > 1) { - setShortcut(); - } else if (getShortcutIndex() == -1 && _buttonState != MoveOnly) { + if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); } @@ -357,7 +368,7 @@ void BadaAppForm::OnTouchPressed(const Control &source, void BadaAppForm::OnTouchReleased(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (getShortcutIndex() == -1) { + if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, currentPosition); if (_buttonState == RightButtonOnce) { @@ -367,42 +378,6 @@ void BadaAppForm::OnTouchReleased(const Control &source, if (touchInfo.IsFlicked()) { pushKey(Common::KEYCODE_PERIOD); } - } else if (_touchCount == 1) { - bool repeat = false; - switch (_shortcutIndex) { - case SHORTCUT_SWAP_MOUSE: - switch (_buttonState) { - case LeftButton: - g_system->displayMessageOnOSD(_("Right Once")); - _buttonState = RightButtonOnce; - break; - case RightButtonOnce: - g_system->displayMessageOnOSD(_("Right Active")); - _buttonState = RightButton; - break; - case RightButton: - g_system->displayMessageOnOSD(_("Move Active")); - _buttonState = MoveOnly; - break; - case MoveOnly: - g_system->displayMessageOnOSD(_("Left Active")); - _buttonState = LeftButton; - break; - } - break; - - case SHORTCUT_F5: - pushKey(Common::KEYCODE_F5); - break; - - case SHORTCUT_ESCAPE: - pushKey(Common::KEYCODE_ESCAPE); - repeat = true; - break; - } - - // allow key repeat or terminate setup mode - _shortcutTimer = repeat ? g_system->getMillis() : -1; } } @@ -410,18 +385,18 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { logEntered(); switch (keyCode) { case KEY_SIDE_UP: + _shortcutIndex = SHORTCUT_VOLUME; setVolume(true, true); return; case KEY_SIDE_DOWN: + _shortcutIndex = SHORTCUT_VOLUME; setVolume(false, true); return; case KEY_CAMERA: - // display the soft keyboard - _buttonState = LeftButton; - _shortcutTimer = -1; - pushKey(Common::KEYCODE_F7); + _shortcutIndex = SHORTCUT_KEYPAD; + showKeypad(); return; default: @@ -432,17 +407,40 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { switch (keyCode) { case KEY_SIDE_UP: - setVolume(true, false); + if (_shortcutIndex != SHORTCUT_VOLUME) { + _shortcutIndex = SHORTCUT_VOLUME; + } else { + setVolume(true, false); + } return; case KEY_SIDE_DOWN: - setVolume(false, false); - return; + switch (_shortcutIndex) { + case SHORTCUT_SWAP_MOUSE: + setButtonShortcut(); + break; + + case SHORTCUT_ESCAPE: + pushKey(Common::KEYCODE_ESCAPE); + break; + + case SHORTCUT_MENU: + pushKey(Common::KEYCODE_F5); + break; + + case SHORTCUT_KEYPAD: + showKeypad(); + break; + + default: + setVolume(false, false); + break; + } + break; case KEY_CAMERA: - _touchCount = 1; setShortcut(); - return; + break; default: break; diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index 6d0b491b37..0f8fad1e2d 100755 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -91,9 +91,10 @@ private: void pushEvent(Common::EventType type, const Osp::Graphics::Point ¤tPosition); void terminate(); + void setButtonShortcut(); void setShortcut(); void setVolume(bool up, bool minMax); - int getShortcutIndex(); + void showKeypad(); // event handling Osp::Base::Runtime::Thread *_gameThread; @@ -101,9 +102,7 @@ private: Common::Queue _eventQueue; enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; - uint32 _shortcutTimer; int _shortcutIndex; - int _touchCount; }; #endif -- cgit v1.2.3 From bf11cf0e01cf5202afb2b636ed0c17f1cd99699c Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sat, 13 Aug 2011 07:32:24 +1000 Subject: BADA: Increased cache size for slightly improved startup times --- backends/platform/bada/fs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 4ec0201445..b9d01d5e20 100755 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -23,7 +23,7 @@ #include "backends/platform/bada/system.h" #include "backends/platform/bada/fs.h" -#define BUFFER_SIZE 128 +#define BUFFER_SIZE 1024 // // BadaFileStream -- cgit v1.2.3 From 46a8304b730e35dee340ac2ab665725f8f7f78b5 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sat, 13 Aug 2011 07:35:50 +1000 Subject: BADA: Allow clean shutdown when encountering an error --- backends/platform/bada/form.cpp | 2 +- backends/platform/bada/system.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index d5fda598ee..f75acfed20 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -99,7 +99,7 @@ result BadaAppForm::Construct() { BadaAppForm::~BadaAppForm() { logEntered(); - if (_gameThread) { + if (_gameThread && _state != ErrorState) { terminate(); _gameThread->Stop(); _gameThread->Join(); diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index f3f3083e5a..9cc7f450fe 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -361,8 +361,6 @@ void BadaSystem::destroyBackend() { delete _mutexManager; _mutexManager = 0; - - delete g_engine; } bool BadaSystem::pollEvent(Common::Event &event) { @@ -413,8 +411,12 @@ void BadaSystem::exitSystem() { } } -void BadaSystem::logMessage(LogMessageType::Type /*type*/, const char *message) { - AppLog(message); +void BadaSystem::logMessage(LogMessageType::Type type, const char *message) { + if (type == LogMessageType::kError) { + systemError(message); + } else { + AppLog(message); + } } Common::SeekableReadStream *BadaSystem::createConfigReadStream() { -- cgit v1.2.3 From e748ea68a5f7e2e2e11dd863fab9c369c756aad3 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sun, 14 Aug 2011 05:59:15 +1000 Subject: BADA: Prevent end-of-file state causing err() returning true --- backends/platform/bada/fs.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index b9d01d5e20..73492101ce 100755 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -75,7 +75,8 @@ BadaFileStream::~BadaFileStream() { } bool BadaFileStream::err() const { - return (GetLastResult() != E_SUCCESS); + result r = GetLastResult(); + return (r != E_SUCCESS && r != E_END_OF_FILE); } void BadaFileStream::clearErr() { -- cgit v1.2.3 From ad58d2feafe2e85961e57ef05d4061d51dfb2172 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sun, 14 Aug 2011 06:01:53 +1000 Subject: BADA: Fix for lockup when game thread fails to respond to quit event --- backends/platform/bada/form.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index f75acfed20..92b3f07179 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -101,8 +101,12 @@ BadaAppForm::~BadaAppForm() { if (_gameThread && _state != ErrorState) { terminate(); + _gameThread->Stop(); - _gameThread->Join(); + if (_state != ErrorState) { + _gameThread->Join(); + } + delete _gameThread; _gameThread = null; } @@ -136,6 +140,11 @@ void BadaAppForm::terminate() { for (int i = 0; i < 10 && _state == ClosingState; i++) { Thread::Sleep(250); } + + if (_state = ClosingState) { + // failed to terminate - Join() will freeze + _state = ErrorState; + } } } -- cgit v1.2.3 From 2e77b97b1984e32690ab3864af931553d5272767 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sun, 14 Aug 2011 09:42:31 +1000 Subject: BADA: Code formatting; replace tab before else with space --- backends/platform/bada/application.cpp | 2 +- backends/platform/bada/audio.cpp | 10 +++++----- backends/platform/bada/form.cpp | 4 ++-- backends/platform/bada/fs.cpp | 18 +++++++++--------- backends/platform/bada/sscanf.cpp | 12 ++++++------ backends/platform/bada/system.cpp | 4 ++-- 6 files changed, 25 insertions(+), 25 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index d5bd1572be..af4e3fc6ef 100755 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -71,7 +71,7 @@ void BadaScummVM::OnUserEventReceivedN(RequestId requestId, if (requestId == USER_MESSAGE_EXIT) { // normal program termination Terminate(); - } else if (requestId == USER_MESSAGE_EXIT_ERR) { + } else if (requestId == USER_MESSAGE_EXIT_ERR) { // assertion failure termination String *message = null; if (args) { diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 3510475b5c..8f4252737f 100755 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -91,7 +91,7 @@ int AudioThread::setVolume(bool up, bool minMax) { if (minMax) { level = up ? numLevels - 1 : 0; volume = levels[level]; - } else { + } else { // adjust volume to be one of the preset values for (int i = 0; i < numLevels && level == -1; i++) { if (volume == levels[i]) { @@ -100,7 +100,7 @@ int AudioThread::setVolume(bool up, bool minMax) { if (i + 1 < numLevels) { level = i + 1; } - } else if (i > 0) { + } else if (i > 0) { level = i - 1; } } @@ -170,7 +170,7 @@ bool AudioThread::OnStart(void) { if (E_KEY_NOT_FOUND == registry->Get(CONFIG_KEY, volume)) { registry->Add(CONFIG_KEY, volume); volume = levels[INIT_LEVEL]; - } else { + } else { AppLog("Setting volume: %d", volume); } } @@ -218,7 +218,7 @@ void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { _audioOut->WriteBuffer(_audioBuffer[_tail]); _tail = (_tail + 1 == NUM_AUDIO_BUFFERS ? 0 : _tail + 1); _ready--; - } else { + } else { // audio buffer empty: decrease timer inverval _playing = -1; _interval -= TIMER_INCREMENT; @@ -236,7 +236,7 @@ void AudioThread::OnTimerExpired(Timer &timer) { _head = (_head + 1 == NUM_AUDIO_BUFFERS ? 0 : _head + 1); _ready++; } - } else { + } else { // audio buffer full: increase timer inverval _interval += TIMER_INCREMENT; if (_interval > MAX_TIMER_INTERVAL) { diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 92b3f07179..d6504baf3b 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -89,7 +89,7 @@ result BadaAppForm::Construct() { delete _gameThread; _gameThread = null; } - } else { + } else { g_system = badaSystem; } @@ -418,7 +418,7 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { case KEY_SIDE_UP: if (_shortcutIndex != SHORTCUT_VOLUME) { _shortcutIndex = SHORTCUT_VOLUME; - } else { + } else { setVolume(true, false); } return; diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 73492101ce..22684aeeec 100755 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -117,7 +117,7 @@ bool BadaFileStream::seek(int32 offs, int whence) { SetLastResult(E_SUCCESS); bufferIndex += offs; return true; - } else { + } else { offs -= (bufferLength - bufferIndex); if (offs < 0 && file->Tell() + offs < 0) { // avoid negative positioning @@ -126,7 +126,7 @@ bool BadaFileStream::seek(int32 offs, int whence) { if (offs != 0) { SetLastResult(file->Seek(FILESEEKPOSITION_CURRENT, offs)); result = (E_SUCCESS == GetLastResult()); - } else { + } else { result = true; } } @@ -162,7 +162,7 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { memcpy((byte*) ptr, &buffer[bufferIndex], len); bufferIndex += len; result = len; - } else { + } else { // use remaining allocation memcpy((byte*) ptr, &buffer[bufferIndex], available); uint32 remaining = len - available; @@ -173,7 +173,7 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { } bufferIndex = bufferLength = 0; } - } else if (len < BUFFER_SIZE) { + } else if (len < BUFFER_SIZE) { // allocate and use buffer bufferIndex = 0; bufferLength = file->Read(buffer, BUFFER_SIZE); @@ -184,11 +184,11 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { memcpy((byte*) ptr, buffer, len); result = bufferIndex = len; } - } else { + } else { result = file->Read((byte*) ptr, len); bufferIndex = bufferLength = 0; } - } else { + } else { AppLog("Attempted to read past EOS"); } return result; @@ -318,10 +318,10 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, myList.push_back(new BadaFilesystemNode("/Media")); myList.push_back(new BadaFilesystemNode("/Storagecard")); result = true; // no more entries - } else if (_path == "/Storagecard") { + } else if (_path == "/Storagecard") { myList.push_back(new BadaFilesystemNode("/Storagecard/Media")); result = true; // no more entries - } else if (_path == "/Home") { + } else if (_path == "/Home") { // ensure share path is always included myList.push_back(new BadaFilesystemNode("/Home/Share")); myList.push_back(new BadaFilesystemNode("/Home/Share2")); @@ -335,7 +335,7 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, // open directory if (IsFailed(pDir->Construct(_unicodePath))) { AppLog("Failed to open directory"); - } else { + } else { // read all directory entries pDirEnum = pDir->ReadN(); if (pDirEnum) { diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp index 2321833477..ddf7eafe94 100755 --- a/backends/platform/bada/sscanf.cpp +++ b/backends/platform/bada/sscanf.cpp @@ -42,7 +42,7 @@ bool scanInt(const char **in, va_list *ap, int max) { bool err = false; if (end == *in || (max > 0 && (end - *in) > max)) { err = true; - } else { + } else { *arg = (int)n; *in = end; } @@ -130,12 +130,12 @@ extern "C" int simple_sscanf(const char *input, const char *format, ...) { // assume %[^c] if ('^' != *format) { err = true; - } else { + } else { format++; if (*format && *(format+1) == ']') { err = scanStringUntil(&next, &ap, *format); format += 2; - } else { + } else { err = true; } } @@ -147,10 +147,10 @@ extern "C" int simple_sscanf(const char *input, const char *format, ...) { if (err) { break; - } else { + } else { result++; } - } else if (*format++ != *next++) { + } else if (*format++ != *next++) { // match input break; } @@ -174,7 +174,7 @@ int main(int argc, char *pArgv[]) { "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", &x, &y, &h, b, &u, &c) != 6) { printf("Failed\n"); - } else { + } else { printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c); } return 0; diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 9cc7f450fe..8192ae8bbd 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -311,7 +311,7 @@ void BadaSystem::initBackend() { if (E_SUCCESS != initModules()) { AppLog("initModules failed"); - } else { + } else { OSystem::initBackend(); } @@ -414,7 +414,7 @@ void BadaSystem::exitSystem() { void BadaSystem::logMessage(LogMessageType::Type type, const char *message) { if (type == LogMessageType::kError) { systemError(message); - } else { + } else { AppLog(message); } } -- cgit v1.2.3 From c33bb63cbd9db867511c8bdb91afaa3c33b5b274 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sun, 14 Aug 2011 20:12:03 +1000 Subject: BADA: Increased audio thread priority to avoid sound skipping in some games --- backends/platform/bada/audio.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 8f4252737f..48874d69bc 100755 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -51,7 +51,9 @@ AudioThread::AudioThread() : Audio::MixerImpl *AudioThread::Construct(OSystem *system) { logEntered(); - if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN))) { + if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN, + DEFAULT_STACK_SIZE, + THREAD_PRIORITY_HIGH))) { AppLog("Failed to create AudioThread"); return null; } @@ -135,6 +137,12 @@ bool AudioThread::OnStart(void) { } int sampleRate = _mixer->getOutputRate(); + + // ideally we would update _mixer with GetOptimizedSampleRate here + if (_audioOut->GetOptimizedSampleRate() != sampleRate) { + AppLog("Non optimal sample rate %d", _audioOut->GetOptimizedSampleRate()); + } + if (IsFailed(_audioOut->Prepare(AUDIO_TYPE_PCM_S16_LE, AUDIO_CHANNEL_TYPE_STEREO, sampleRate))) { -- cgit v1.2.3 From b1e3da6e271ca6a696007f678f57d64a5c577efe Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 16 Aug 2011 10:24:35 +1000 Subject: BADA: Review style changes. Cursor can now be positioned on top screen row --- backends/platform/bada/form.cpp | 113 +++++++++++++++++++++------------------- backends/platform/bada/form.h | 2 +- 2 files changed, 59 insertions(+), 56 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index d6504baf3b..9bab28c1ba 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -35,15 +35,18 @@ using namespace Osp::Graphics; using namespace Osp::Ui; using namespace Osp::Ui::Controls; -#define SHORTCUT_SWAP_MOUSE 0 -#define SHORTCUT_ESCAPE 1 -#define SHORTCUT_MENU 2 -#define SHORTCUT_KEYPAD 3 -#define SHORTCUT_VOLUME 4 -#define SHORTCUT_BEGIN SHORTCUT_SWAP_MOUSE -#define SHORTCUT_END SHORTCUT_KEYPAD +// number of volume levels #define LEVEL_RANGE 5 +// round down small Y touch values to 1 to allow the +// cursor to be positioned at the top of the screen +#define MIN_TOUCH_Y 10 + +// block for up to 2.5 seconds during shutdown to +// allow the game thread to exit gracefully. +#define EXIT_SLEEP_STEP 10 +#define EXIT_SLEEP 250 + // // BadaAppForm // @@ -51,7 +54,7 @@ BadaAppForm::BadaAppForm() : _gameThread(0), _state(InitState), _buttonState(LeftButton), - _shortcutIndex(SHORTCUT_VOLUME) { + _shortcut(SetVolume) { _eventQueueLock = new Mutex(); _eventQueueLock->Create(); } @@ -62,11 +65,11 @@ result BadaAppForm::Construct() { return r; } - BadaSystem *badaSystem = null; - _gameThread = null; + BadaSystem *badaSystem = NULL; + _gameThread = NULL; badaSystem = new BadaSystem(this); - r = badaSystem != null ? E_SUCCESS : E_OUT_OF_MEMORY; + r = badaSystem != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; if (!IsFailed(r)) { r = badaSystem->Construct(); @@ -74,7 +77,7 @@ result BadaAppForm::Construct() { if (!IsFailed(r)) { _gameThread = new Thread(); - r = _gameThread != null ? E_SUCCESS : E_OUT_OF_MEMORY; + r = _gameThread != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; } if (!IsFailed(r)) { @@ -82,12 +85,12 @@ result BadaAppForm::Construct() { } if (IsFailed(r)) { - if (badaSystem != null) { + if (badaSystem != NULL) { delete badaSystem; } - if (_gameThread != null) { + if (_gameThread != NULL) { delete _gameThread; - _gameThread = null; + _gameThread = NULL; } } else { g_system = badaSystem; @@ -108,12 +111,12 @@ BadaAppForm::~BadaAppForm() { } delete _gameThread; - _gameThread = null; + _gameThread = NULL; } if (_eventQueueLock) { delete _eventQueueLock; - _eventQueueLock = null; + _eventQueueLock = NULL; } logLeaving(); @@ -124,7 +127,7 @@ BadaAppForm::~BadaAppForm() { // void BadaAppForm::terminate() { if (_state == ActiveState) { - ((BadaSystem*) g_system)->setMute(true); + ((BadaSystem *) g_system)->setMute(true); _eventQueueLock->Acquire(); @@ -137,11 +140,11 @@ void BadaAppForm::terminate() { // block while thread ends AppLog("waiting for shutdown"); - for (int i = 0; i < 10 && _state == ClosingState; i++) { - Thread::Sleep(250); + for (int i = 0; i < EXIT_SLEEP_STEP && _state == ClosingState; i++) { + Thread::Sleep(EXIT_SLEEP); } - if (_state = ClosingState) { + if (_state == ClosingState) { // failed to terminate - Join() will freeze _state = ErrorState; } @@ -154,7 +157,7 @@ void BadaAppForm::exitSystem() { if (_gameThread) { _gameThread->Stop(); delete _gameThread; - _gameThread = null; + _gameThread = NULL; } } @@ -177,7 +180,7 @@ result BadaAppForm::OnDraw(void) { logEntered(); if (g_system) { - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; BadaGraphicsManager *graphics = system->getGraphics(); if (graphics && graphics->isReady()) { g_system->updateScreen(); @@ -202,13 +205,15 @@ bool BadaAppForm::pollEvent(Common::Event &event) { void BadaAppForm::pushEvent(Common::EventType type, const Point ¤tPosition) { - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; BadaGraphicsManager *graphics = system->getGraphics(); if (graphics) { + // graphics could be NULL at startup or when + // displaying the system error screen Common::Event e; e.type = type; e.mouse.x = currentPosition.x; - e.mouse.y = currentPosition.y; + e.mouse.y = currentPosition.y > MIN_TOUCH_Y ? currentPosition.y : 1; bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y); @@ -255,13 +260,11 @@ void BadaAppForm::OnOrientationChanged(const Control &source, Object *BadaAppForm::Run(void) { scummvm_main(0, 0); - AppLog("scummvm_main completed"); - if (_state == ActiveState) { - Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, null); + Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, NULL); } _state = DoneState; - return null; + return NULL; } void BadaAppForm::setButtonShortcut() { @@ -287,30 +290,34 @@ void BadaAppForm::setButtonShortcut() { void BadaAppForm::setShortcut() { // cycle to the next shortcut - _shortcutIndex = (_shortcutIndex >= SHORTCUT_END ? SHORTCUT_BEGIN : - _shortcutIndex + 1); - - switch (_shortcutIndex) { - case SHORTCUT_SWAP_MOUSE: - g_system->displayMessageOnOSD(_("Control Mouse")); - break; - - case SHORTCUT_ESCAPE: + switch (_shortcut) { + case ControlMouse: g_system->displayMessageOnOSD(_("Escape Key")); + _shortcut = EscapeKey; break; - case SHORTCUT_MENU: + case EscapeKey: g_system->displayMessageOnOSD(_("Game Menu")); + _shortcut = GameMenu; break; - case SHORTCUT_KEYPAD: + case GameMenu: g_system->displayMessageOnOSD(_("Show Keypad")); + _shortcut = ShowKeypad; + break; + + case SetVolume: + // fallthru + + case ShowKeypad: + g_system->displayMessageOnOSD(_("Control Mouse")); + _shortcut = ControlMouse; break; } } void BadaAppForm::setVolume(bool up, bool minMax) { - int level = ((BadaSystem*)g_system)->setVolume(up, minMax); + int level = ((BadaSystem *)g_system)->setVolume(up, minMax); if (level != -1) { char message[32]; char ind[LEVEL_RANGE]; // 1..5 (0=off) @@ -394,17 +401,17 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { logEntered(); switch (keyCode) { case KEY_SIDE_UP: - _shortcutIndex = SHORTCUT_VOLUME; + _shortcut = SetVolume; setVolume(true, true); return; case KEY_SIDE_DOWN: - _shortcutIndex = SHORTCUT_VOLUME; + _shortcut = SetVolume; setVolume(false, true); return; case KEY_CAMERA: - _shortcutIndex = SHORTCUT_KEYPAD; + _shortcut = ShowKeypad; showKeypad(); return; @@ -416,28 +423,28 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { switch (keyCode) { case KEY_SIDE_UP: - if (_shortcutIndex != SHORTCUT_VOLUME) { - _shortcutIndex = SHORTCUT_VOLUME; + if (_shortcut != SetVolume) { + _shortcut = SetVolume; } else { setVolume(true, false); } return; case KEY_SIDE_DOWN: - switch (_shortcutIndex) { - case SHORTCUT_SWAP_MOUSE: + switch (_shortcut) { + case ControlMouse: setButtonShortcut(); break; - case SHORTCUT_ESCAPE: + case EscapeKey: pushKey(Common::KEYCODE_ESCAPE); break; - case SHORTCUT_MENU: + case GameMenu: pushKey(Common::KEYCODE_F5); break; - case SHORTCUT_KEYPAD: + case ShowKeypad: showKeypad(); break; @@ -458,7 +465,3 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { void BadaAppForm::OnKeyReleased(const Control &source, KeyCode keyCode) { } - -// -// end of form.cpp -// diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index 0f8fad1e2d..aa134615b7 100755 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -102,7 +102,7 @@ private: Common::Queue _eventQueue; enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; - int _shortcutIndex; + enum {ControlMouse, EscapeKey, GameMenu, ShowKeypad, SetVolume} _shortcut; }; #endif -- cgit v1.2.3 From a3e070de6f83beae65421389ac81a1e1f2d1b376 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 16 Aug 2011 10:48:13 +1000 Subject: BADA: Review style changes. Fix for image skew in some games --- backends/platform/bada/graphics.cpp | 26 ++++++++++++++++---------- backends/platform/bada/graphics.h | 3 ++- 2 files changed, 18 insertions(+), 11 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp index 1679959b24..81176b13d3 100755 --- a/backends/platform/bada/graphics.cpp +++ b/backends/platform/bada/graphics.cpp @@ -36,7 +36,7 @@ BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) : _eglConfig(0), _eglContext(EGL_NO_CONTEXT), _initState(true) { - assert(appForm != null); + assert(appForm != NULL); _videoMode.fullscreen = true; _videoMode.antialiasing = true; } @@ -95,7 +95,6 @@ void BadaGraphicsManager::updateScreen() { } } -// see: http://forums.badadev.com/viewtopic.php?f=7&t=208 bool BadaGraphicsManager::loadEgl() { logEntered(); @@ -128,7 +127,7 @@ bool BadaGraphicsManager::loadEgl() { return false; } - if (EGL_FALSE == eglInitialize(_eglDisplay, null, null) || + if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) || EGL_SUCCESS != eglGetError()) { systemError("eglInitialize() failed"); return false; @@ -147,7 +146,7 @@ bool BadaGraphicsManager::loadEgl() { } _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, - (EGLNativeWindowType)_appForm, null); + (EGLNativeWindowType)_appForm, NULL); if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) { systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE"); return false; @@ -189,6 +188,17 @@ bool BadaGraphicsManager::loadGFXMode() { return OpenGLGraphicsManager::loadGFXMode(); } +void BadaGraphicsManager::loadTextures() { + logEntered(); + + OpenGLGraphicsManager::loadTextures(); + + // prevent image skew in some games, see: + // http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall + // note: this did not solve the pixel border problem in refreshGameScreen() + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +} + void BadaGraphicsManager::internUpdateScreen() { if (!_initState) { OpenGLGraphicsManager::internUpdateScreen(); @@ -202,7 +212,7 @@ void BadaGraphicsManager::unloadGFXMode() { logEntered(); if (EGL_NO_DISPLAY != _eglDisplay) { - eglMakeCurrent(_eglDisplay, null, null, null); + eglMakeCurrent(_eglDisplay, NULL, NULL, NULL); if (_eglContext != EGL_NO_CONTEXT) { eglDestroyContext(_eglDisplay, _eglContext); @@ -218,7 +228,7 @@ void BadaGraphicsManager::unloadGFXMode() { _eglDisplay = EGL_NO_DISPLAY; } - _eglConfig = null; + _eglConfig = NULL; OpenGLGraphicsManager::unloadGFXMode(); logLeaving(); @@ -303,7 +313,3 @@ void BadaGraphicsManager::showSplash() { canvas.Show(); } - -// -// end of graphics.cpp -// diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h index 24cff09731..573965bc36 100755 --- a/backends/platform/bada/graphics.h +++ b/backends/platform/bada/graphics.h @@ -48,13 +48,14 @@ public: void updateScreen(); void setFeatureState(OSystem::Feature f, bool enable); void setReady(); - bool isReady() {return !_initState;} + bool isReady() { return !_initState; } const Graphics::Font *getFontOSD(); bool moveMouse(int16 &x, int16 &y); private: void internUpdateScreen(); bool loadGFXMode(); + void loadTextures(); void unloadGFXMode(); void refreshGameScreen(); void setInternalMousePosition(int x, int y) {} -- cgit v1.2.3 From a31b74f3e98a083c8d5e20facf06d126b9504c76 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 16 Aug 2011 11:58:43 +1000 Subject: BADA: Code formatting and style changes following review --- backends/platform/bada/README.TXT | 6 ++++++ backends/platform/bada/application.cpp | 14 +++++--------- backends/platform/bada/audio.cpp | 11 +++-------- backends/platform/bada/audio.h | 4 ++-- backends/platform/bada/form.cpp | 2 +- backends/platform/bada/fs.cpp | 22 +++++++++------------- backends/platform/bada/main.cpp | 3 --- backends/platform/bada/missing.cpp | 2 +- backends/platform/bada/system.cpp | 32 ++++++++++++++------------------ backends/platform/bada/timer.cpp | 6 +----- 10 files changed, 42 insertions(+), 60 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT index dd56c8962c..38d9fd1217 100755 --- a/backends/platform/bada/README.TXT +++ b/backends/platform/bada/README.TXT @@ -77,3 +77,9 @@ Build instructions: outside of the scummvm package. Start the BADA IDE then choose this folder as the eclipse workspace. Click Project / Build. + +Links: + +A short turorial on implementing OpenGL ES 1.1 in BADA: + http://forums.badadev.com/viewtopic.php?f=7&t=208 + diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index af4e3fc6ef..bf17e66aa3 100755 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -46,7 +46,7 @@ BadaScummVM::BadaScummVM() : _appForm(0) { BadaScummVM::~BadaScummVM() { logEntered(); if (g_system) { - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; system->destroyBackend(); delete system; g_system = 0; @@ -55,7 +55,7 @@ BadaScummVM::~BadaScummVM() { bool BadaScummVM::OnAppInitializing(AppRegistry &appRegistry) { _appForm = systemStart(this); - return (_appForm != null); + return (_appForm != NULL); } bool BadaScummVM::OnAppTerminating(AppRegistry &appRegistry, @@ -73,9 +73,9 @@ void BadaScummVM::OnUserEventReceivedN(RequestId requestId, Terminate(); } else if (requestId == USER_MESSAGE_EXIT_ERR) { // assertion failure termination - String *message = null; + String *message = NULL; if (args) { - message = (String*) args->GetAt(0); + message = (String*)args->GetAt(0); } if (!message) { message = new String("Unknown error"); @@ -119,10 +119,6 @@ void BadaScummVM::pauseGame(bool pause) { } if (g_system) { - ((BadaSystem*)g_system)->setMute(pause); + ((BadaSystem *)g_system)->setMute(pause); } } - -// -// end of application.cpp -// diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 48874d69bc..4b435cbd1d 100755 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -55,7 +55,7 @@ Audio::MixerImpl *AudioThread::Construct(OSystem *system) { DEFAULT_STACK_SIZE, THREAD_PRIORITY_HIGH))) { AppLog("Failed to create AudioThread"); - return null; + return NULL; } _mixer = new Audio::MixerImpl(system, 44100); @@ -151,8 +151,6 @@ bool AudioThread::OnStart(void) { } int bufferSize = _audioOut->GetMinBufferSize(); - AppLog("bufferSize = %d", bufferSize); - for (int i = 0; i < NUM_AUDIO_BUFFERS; i++) { if (IsFailed(_audioBuffer[i].Construct(bufferSize))) { AppLog("Failed to create audio buffer"); @@ -224,7 +222,7 @@ void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { if (_ready > 0) { _playing = _tail; _audioOut->WriteBuffer(_audioBuffer[_tail]); - _tail = (_tail + 1 == NUM_AUDIO_BUFFERS ? 0 : _tail + 1); + _tail = (_tail + 1) % NUM_AUDIO_BUFFERS; _ready--; } else { // audio buffer empty: decrease timer inverval @@ -241,7 +239,7 @@ void AudioThread::OnTimerExpired(Timer &timer) { uint len = _audioBuffer[_head].GetCapacity(); int samples = _mixer->mixCallback((byte*)_audioBuffer[_head].GetPointer(), len); if (samples) { - _head = (_head + 1 == NUM_AUDIO_BUFFERS ? 0 : _head + 1); + _head = (_head + 1) % NUM_AUDIO_BUFFERS; _ready++; } } else { @@ -259,6 +257,3 @@ void AudioThread::OnTimerExpired(Timer &timer) { _timer->Start(_interval); } -// -// end of audio.cpp -// diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h index 0b540645fb..9279593afd 100755 --- a/backends/platform/bada/audio.h +++ b/backends/platform/bada/audio.h @@ -20,8 +20,8 @@ * */ -#ifndef AUDIO_H -#define AUDIO_H +#ifndef BADA_AUDIO_H +#define BADA_AUDIO_H #include #include diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 9bab28c1ba..bbdcc7dd9b 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -127,7 +127,7 @@ BadaAppForm::~BadaAppForm() { // void BadaAppForm::terminate() { if (_state == ActiveState) { - ((BadaSystem *) g_system)->setMute(true); + ((BadaSystem *)g_system)->setMute(true); _eventQueueLock->Acquire(); diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 22684aeeec..26603045af 100755 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -112,7 +112,7 @@ bool BadaFileStream::seek(int32 offs, int whence) { case SEEK_CUR: // set relative to offs - if (bufferIndex < bufferLength && bufferIndex > (uint32) -offs) { + if (bufferIndex < bufferLength && bufferIndex > (uint32)-offs) { // re-position within the buffer SetLastResult(E_SUCCESS); bufferIndex += offs; @@ -159,17 +159,17 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { uint32 available = bufferLength - bufferIndex; if (len <= available) { // use allocation - memcpy((byte*) ptr, &buffer[bufferIndex], len); + memcpy((byte*)ptr, &buffer[bufferIndex], len); bufferIndex += len; result = len; } else { // use remaining allocation - memcpy((byte*) ptr, &buffer[bufferIndex], available); + memcpy((byte*)ptr, &buffer[bufferIndex], available); uint32 remaining = len - available; result = available; if (remaining) { - result += file->Read(((byte*) ptr) + available, remaining); + result += file->Read(((byte*)ptr) + available, remaining); } bufferIndex = bufferLength = 0; } @@ -181,11 +181,11 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { if (bufferLength < len) { len = bufferLength; } - memcpy((byte*) ptr, buffer, len); + memcpy((byte*)ptr, buffer, len); result = bufferIndex = len; } } else { - result = file->Read((byte*) ptr, len); + result = file->Read((byte*)ptr, len); bufferIndex = bufferLength = 0; } } else { @@ -231,7 +231,7 @@ BadaFileStream *BadaFileStream::makeFromPath(const String &path, bool writeMode) // Common::String fromString(const Osp::Base::String &in) { ByteBuffer *buf = StringUtil::StringToUtf8N(in); - Common::String result((const char*) buf->GetPointer()); + Common::String result((const char*)buf->GetPointer()); delete buf; return result; @@ -410,7 +410,7 @@ AbstractFSNode *BadaFilesystemNode::getParent() const { Common::SeekableReadStream *BadaFilesystemNode::createReadStream() { Common::SeekableReadStream *result = BadaFileStream::makeFromPath(_unicodePath, false); - if (result != null) { + if (result != NULL) { _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr)); } return result; @@ -418,12 +418,8 @@ Common::SeekableReadStream *BadaFilesystemNode::createReadStream() { Common::WriteStream *BadaFilesystemNode::createWriteStream() { Common::WriteStream *result = BadaFileStream::makeFromPath(_unicodePath, true); - if (result != null) { + if (result != NULL) { _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr)); } return result; } - -// -// end of fs.cpp -// diff --git a/backends/platform/bada/main.cpp b/backends/platform/bada/main.cpp index 154fec6462..8c40f24dd1 100755 --- a/backends/platform/bada/main.cpp +++ b/backends/platform/bada/main.cpp @@ -64,7 +64,4 @@ int OspMain(int argc, char *pArgv[]) { C_LINKAGE_END -// -// end of main.cpp -// diff --git a/backends/platform/bada/missing.cpp b/backends/platform/bada/missing.cpp index 57369f6f37..1656bac9ef 100755 --- a/backends/platform/bada/missing.cpp +++ b/backends/platform/bada/missing.cpp @@ -96,7 +96,7 @@ int sprintf(char *str, const char *format, ...) { char *strdup(const char *strSource) { char *buffer; int len = strlen(strSource) + 1; - buffer = (char*) malloc(len); + buffer = (char*)malloc(len); if (buffer) { memcpy(buffer, strSource, len); } diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 8192ae8bbd..d174b99a67 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -125,13 +125,13 @@ private: BadaMutexManager::BadaMutexManager() { for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - buffer[i] = null; + buffer[i] = NULL; } } BadaMutexManager::~BadaMutexManager() { for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - if (buffer[i] != null) { + if (buffer[i] != NULL) { delete buffer[i]; } } @@ -142,7 +142,7 @@ OSystem::MutexRef BadaMutexManager::createMutex() { mutex->Create(); for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - if (buffer[i] == null) { + if (buffer[i] == NULL) { buffer[i] = mutex; break; } @@ -166,7 +166,7 @@ void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) { for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { if (buffer[i] == m) { - buffer[i] = null; + buffer[i] = NULL; } } @@ -190,7 +190,7 @@ void BadaEventManager::init() { DefaultEventManager::init(); // theme and vkbd should have now loaded - clear the splash screen - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; BadaGraphicsManager *graphics = system->getGraphics(); if (graphics) { graphics->setReady(); @@ -199,7 +199,7 @@ void BadaEventManager::init() { } int BadaEventManager::shouldQuit() const { - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; return system->isClosing(); } @@ -283,8 +283,8 @@ result BadaSystem::initModules() { void BadaSystem::initBackend() { logEntered(); - // allow translations to be found - ConfMan.set("themepath", "/Res"); + // allow translations and game .DAT files to be found + ConfMan.set("extrapath", "/Res"); // use the mobile device theme ConfMan.set("gui_theme", "/Res/scummmobile"); @@ -326,7 +326,7 @@ void BadaSystem::initBackend() { Graphics::BdfFont *font = Graphics::BdfFont::loadFromCache(fontFile); if (font) { // use this font for the vkbd and on-screen messages - FontMan.assignFontToUsage(Graphics::FontManager::kBigGUIFont, font); + FontMan.setFont(Graphics::FontManager::kBigGUIFont, font); } } } @@ -381,7 +381,7 @@ void BadaSystem::delayMillis(uint msecs) { } void BadaSystem::updateScreen() { - if (_graphicsManager != null) { + if (_graphicsManager != NULL) { _graphicsManager->updateScreen(); } } @@ -460,7 +460,7 @@ int BadaSystem::setVolume(bool up, bool minMax) { } // -// create the scummVM system +// create the ScummVM system // BadaAppForm *systemStart(Osp::App::Application *app) { logEntered(); @@ -468,14 +468,14 @@ BadaAppForm *systemStart(Osp::App::Application *app) { BadaAppForm *appForm = new BadaAppForm(); if (!appForm) { AppLog("Failed to create appForm"); - return null; + return NULL; } if (E_SUCCESS != appForm->Construct() || E_SUCCESS != app->GetAppFrame()->GetFrame()->AddControl(*appForm)) { delete appForm; AppLog("Failed to construct appForm"); - return null; + return NULL; } return appForm; @@ -493,11 +493,7 @@ void systemError(const char *message) { Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT_ERR, args); if (g_system) { - BadaSystem *system = (BadaSystem*)g_system; + BadaSystem *system = (BadaSystem *)g_system; system->exitSystem(); } } - -// -// end of system.cpp -// diff --git a/backends/platform/bada/timer.cpp b/backends/platform/bada/timer.cpp index 0c941795d3..b98af897f8 100755 --- a/backends/platform/bada/timer.cpp +++ b/backends/platform/bada/timer.cpp @@ -62,7 +62,7 @@ void TimerSlot::OnStop() { if (_timer) { _timer->Cancel(); delete _timer; - _timer = null; + _timer = NULL; } } @@ -118,7 +118,3 @@ void BadaTimerManager::removeTimerProc(TimerProc proc) { } } } - -// -// end of timer.cpp -// -- cgit v1.2.3 From 028a67012dafc7655ae194ef05c224d979cd502f Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 16 Aug 2011 15:49:21 +1000 Subject: BADA: Cleanup unused namespace declarations --- backends/platform/bada/application.cpp | 7 ------- backends/platform/bada/form.cpp | 3 --- 2 files changed, 10 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index bf17e66aa3..c66cbeeb58 100755 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -26,14 +26,7 @@ #include "backends/platform/bada/system.h" #include "backends/platform/bada/application.h" -using namespace Osp::Base; -using namespace Osp::Base::Runtime; -using namespace Osp::Graphics; -using namespace Osp::Locales; using namespace Osp::System; -using namespace Osp::App; -using namespace Osp::System; -using namespace Osp::Ui; using namespace Osp::Ui::Controls; Application *BadaScummVM::createInstance() { diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index bbdcc7dd9b..35721dbc5f 100755 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -28,10 +28,7 @@ #include "backends/platform/bada/form.h" #include "backends/platform/bada/system.h" -using namespace Osp::App; -using namespace Osp::Base; using namespace Osp::Base::Runtime; -using namespace Osp::Graphics; using namespace Osp::Ui; using namespace Osp::Ui::Controls; -- cgit v1.2.3 From 7836a0ff207a990d5cf36f7185bb9bd25ffde29c Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Tue, 16 Aug 2011 19:39:15 +1000 Subject: BADA: Hardcoded file system paths now defined as macros --- backends/platform/bada/fs.cpp | 53 ++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 21 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 26603045af..4203545277 100755 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -25,6 +25,17 @@ #define BUFFER_SIZE 1024 +// internal BADA paths +#define PATH_ROOT "/" +#define PATH_HOME "/Home" +#define PATH_HOME_SHARE "/Home/Share" +#define PATH_HOME_SHARE2 "/Home/Share2" +#define PATH_HOME_X "/Home/" +#define PATH_HOME_EXT "/HomeExt" +#define PATH_MEDIA "/Media" +#define PATH_CARD "/Storagecard" +#define PATH_CARD_MEDIA "/Storagecard/Media" + // // BadaFileStream // @@ -211,7 +222,7 @@ BadaFileStream *BadaFileStream::makeFromPath(const String &path, bool writeMode) String filePath = path; if (writeMode && (path[0] != '.' && path[0] != '/')) { - filePath.Insert("/Home/", 0); + filePath.Insert(PATH_HOME_X, 0); } AppLog("Open file %S", filePath.GetPointer()); @@ -267,11 +278,11 @@ void BadaFilesystemNode::init(const Common::String &nodePath) { _displayName = Common::lastPathComponent(_path, '/'); StringUtil::Utf8ToString(_path.c_str(), _unicodePath); - _isVirtualDir = (_path == "/" || - _path == "/Home" || - _path == "/Home/Share" || - _path == "/Home/Share2" || - _path == "/Storagecard"); + _isVirtualDir = (_path == PATH_ROOT || + _path == PATH_HOME || + _path == PATH_HOME_SHARE || + _path == PATH_HOME_SHARE2 || + _path == PATH_CARD); _isValid = _isVirtualDir || !IsFailed(File::GetAttributes(_unicodePath, _attr)); } @@ -289,10 +300,10 @@ bool BadaFilesystemNode::isDirectory() const { bool BadaFilesystemNode::isWritable() const { bool result = (_isValid && !_isVirtualDir && !_attr.IsDirectory() && !_attr.IsReadOnly()); - if (_path == "/Home" || - _path == "/HomeExt" || - _path == "/Home/Share" || - _path == "/Home/Share2") { + if (_path == PATH_HOME || + _path == PATH_HOME_EXT || + _path == PATH_HOME_SHARE || + _path == PATH_HOME_SHARE2) { result = true; } return result; @@ -312,19 +323,19 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, if (_isVirtualDir && mode != Common::FSNode::kListFilesOnly) { // present well known BADA file system areas - if (_path == "/") { - myList.push_back(new BadaFilesystemNode("/Home")); - myList.push_back(new BadaFilesystemNode("/HomeExt")); - myList.push_back(new BadaFilesystemNode("/Media")); - myList.push_back(new BadaFilesystemNode("/Storagecard")); + if (_path == PATH_ROOT) { + myList.push_back(new BadaFilesystemNode(PATH_HOME)); + myList.push_back(new BadaFilesystemNode(PATH_HOME_EXT)); + myList.push_back(new BadaFilesystemNode(PATH_MEDIA)); + myList.push_back(new BadaFilesystemNode(PATH_CARD)); result = true; // no more entries - } else if (_path == "/Storagecard") { - myList.push_back(new BadaFilesystemNode("/Storagecard/Media")); + } else if (_path == PATH_CARD) { + myList.push_back(new BadaFilesystemNode(PATH_CARD_MEDIA)); result = true; // no more entries - } else if (_path == "/Home") { + } else if (_path == PATH_HOME) { // ensure share path is always included - myList.push_back(new BadaFilesystemNode("/Home/Share")); - myList.push_back(new BadaFilesystemNode("/Home/Share2")); + myList.push_back(new BadaFilesystemNode(PATH_HOME_SHARE)); + myList.push_back(new BadaFilesystemNode(PATH_HOME_SHARE2)); } } @@ -384,7 +395,7 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, AbstractFSNode *BadaFilesystemNode::getParent() const { logEntered(); - if (_path == "/") { + if (_path == PATH_ROOT) { return 0; // The filesystem root has no parent } -- cgit v1.2.3 From f01882a6e0bedce7c7d4411ba956681d7e3aa163 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Wed, 17 Aug 2011 21:23:40 +1000 Subject: BADA: Fix for menu based quit handling --- backends/platform/bada/system.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index d174b99a67..33318a1e61 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -200,7 +200,7 @@ void BadaEventManager::init() { int BadaEventManager::shouldQuit() const { BadaSystem *system = (BadaSystem *)g_system; - return system->isClosing(); + return DefaultEventManager::shouldQuit() || system->isClosing(); } // -- cgit v1.2.3 From 68f2ec53f728fdfe3912517df0e13f11d90d8a92 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Thu, 18 Aug 2011 22:51:07 +1000 Subject: BADA: Fix to return correct integer values --- backends/platform/bada/sscanf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp index ddf7eafe94..8eab3ee5d1 100755 --- a/backends/platform/bada/sscanf.cpp +++ b/backends/platform/bada/sscanf.cpp @@ -31,7 +31,7 @@ // bool scanInt(const char **in, va_list *ap, int max) { - while (**in && **in == ' ') { + while (**in && (**in == ' ' || **in == '0')) { (*in)++; } -- cgit v1.2.3 From 43059b18787cda6dfb6b13b90af276930c52d6d1 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sat, 20 Aug 2011 10:41:32 +1000 Subject: BADA: Moved timer manager to backends/timer/bada --- backends/platform/bada/system.cpp | 2 +- backends/platform/bada/timer.cpp | 120 -------------------------------------- backends/platform/bada/timer.h | 62 -------------------- 3 files changed, 1 insertion(+), 183 deletions(-) delete mode 100755 backends/platform/bada/timer.cpp delete mode 100755 backends/platform/bada/timer.h (limited to 'backends/platform') diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 33318a1e61..4503b8fa6b 100755 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -33,12 +33,12 @@ #include "backends/audiocd/default/default-audiocd.h" #include "backends/mutex/mutex.h" #include "backends/fs/fs-factory.h" +#include "backends/timer/bada/timer.h" #include "backends/platform/bada/form.h" #include "backends/platform/bada/system.h" #include "backends/platform/bada/graphics.h" #include "backends/platform/bada/audio.h" -#include "backends/platform/bada/timer.h" using namespace Osp::Base; using namespace Osp::Base::Runtime; diff --git a/backends/platform/bada/timer.cpp b/backends/platform/bada/timer.cpp deleted file mode 100755 index b98af897f8..0000000000 --- a/backends/platform/bada/timer.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* 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/bada/timer.h" -#include "backends/platform/bada/system.h" - -// -// TimerSlot -// -TimerSlot::TimerSlot(Common::TimerManager::TimerProc callback, - uint32 interval, void *refCon) : - _timer(0), - _callback(callback), - _interval(interval), - _refCon(refCon) { - logEntered(); -} - -TimerSlot::~TimerSlot() { - logEntered(); -} - -bool TimerSlot::OnStart() { - logEntered(); - - _timer = new Osp::Base::Runtime::Timer(); - if (!_timer || IsFailed(_timer->Construct(*this))) { - AppLog("Failed to create timer"); - return false; - } - - if (IsFailed(_timer->Start(_interval))) { - AppLog("failed to start timer"); - return false; - } - - AppLog("started timer %d", _interval); - return true; -} - -void TimerSlot::OnStop() { - logEntered(); - if (_timer) { - _timer->Cancel(); - delete _timer; - _timer = NULL; - } -} - -void TimerSlot::OnTimerExpired(Timer &timer) { - _callback(_refCon); - timer.Start(_interval); -} - -// -// BadaTimerManager -// -BadaTimerManager::BadaTimerManager() { - logEntered(); -} - -BadaTimerManager::~BadaTimerManager() { - logEntered(); - for (Common::List::iterator slot = _timers.begin(); - slot != _timers.end(); ++slot) { - slot->Stop(); - slot = _timers.erase(slot); - } -} - -bool BadaTimerManager::installTimerProc(TimerProc proc, int32 interval, void *refCon, - const Common::String &id) { - logEntered(); - TimerSlot *slot = new TimerSlot(proc, interval / 1000, refCon); - - if (IsFailed(slot->Construct(THREAD_TYPE_EVENT_DRIVEN))) { - AppLog("Failed to create timer thread"); - delete slot; - return false; - } - - if (IsFailed(slot->Start())) { - delete slot; - AppLog("Failed to start timer thread"); - return false; - } - - _timers.push_back(*slot); - return true; -} - -void BadaTimerManager::removeTimerProc(TimerProc proc) { - logEntered(); - for (Common::List::iterator slot = _timers.begin(); - slot != _timers.end(); ++slot) { - if (slot->_callback == proc) { - slot->Stop(); - slot = _timers.erase(slot); - } - } -} diff --git a/backends/platform/bada/timer.h b/backends/platform/bada/timer.h deleted file mode 100755 index f9ed32c801..0000000000 --- a/backends/platform/bada/timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* 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 BADA_TIMER_H -#define BADA_TIMER_H - -#include - -#include "common/timer.h" -#include "common/list.h" - -using namespace Osp::Base::Runtime; - -struct TimerSlot: public ITimerEventListener, public Thread { - TimerSlot(Common::TimerManager::TimerProc callback, - uint32 interval, - void *refCon); - ~TimerSlot(); - - bool OnStart(void); - void OnStop(void); - void OnTimerExpired(Timer &timer); - - Timer *_timer; - Common::TimerManager::TimerProc _callback; - uint32 _interval; // in microseconds - void *_refCon; -}; - -class BadaTimerManager : public Common::TimerManager { -public: - BadaTimerManager(); - ~BadaTimerManager(); - - bool installTimerProc(TimerProc proc, int32 interval, void *refCon, - const Common::String &id); - void removeTimerProc(TimerProc proc); - - private: - Common::List _timers; -}; - -#endif -- cgit v1.2.3 From 5e472df21262e139d6b6a9f60d31c206c6e738bc Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sat, 20 Aug 2011 14:19:44 +1000 Subject: BADA: Cleanup unused screen interface implementation --- backends/platform/bada/application.cpp | 8 -------- backends/platform/bada/application.h | 6 +----- 2 files changed, 1 insertion(+), 13 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index c66cbeeb58..7e13006fd1 100755 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -98,14 +98,6 @@ void BadaScummVM::OnBatteryLevelChanged(BatteryLevel batteryLevel) { void BadaScummVM::OnLowMemory(void) { } -void BadaScummVM::OnScreenOn(void) { - logEntered(); -} - -void BadaScummVM::OnScreenOff(void) { - logEntered(); -} - void BadaScummVM::pauseGame(bool pause) { if (pause && _appForm && g_engine && !g_engine->isPaused()) { _appForm->pushKey(Common::KEYCODE_SPACE); diff --git a/backends/platform/bada/application.h b/backends/platform/bada/application.h index f0de4a2c72..f2823c43c3 100755 --- a/backends/platform/bada/application.h +++ b/backends/platform/bada/application.h @@ -31,9 +31,7 @@ #include "backends/platform/bada/system.h" -class BadaScummVM : public Osp::App::Application, - public Osp::System::IScreenEventListener { - +class BadaScummVM : public Osp::App::Application { public: BadaScummVM(); ~BadaScummVM(); @@ -46,8 +44,6 @@ public: void OnBackground(void); void OnLowMemory(void); void OnBatteryLevelChanged(Osp::System::BatteryLevel batteryLevel); - void OnScreenOn(void); - void OnScreenOff(void); void OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList *pArgs); private: -- cgit v1.2.3 From 6fe7f032f6fedfdfb7b70b3d88b3e6e804640dc9 Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Sat, 20 Aug 2011 14:20:44 +1000 Subject: BADA: Fix to restore audio upon mobile call completion --- backends/platform/bada/audio.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'backends/platform') diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 4b435cbd1d..4ead7ebde1 100755 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -216,6 +216,7 @@ void AudioThread::OnAudioOutInterrupted(Osp::Media::AudioOut &src) { void AudioThread::OnAudioOutReleased(Osp::Media::AudioOut &src) { logEntered(); + _audioOut->Start(); } void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { -- cgit v1.2.3 From 911de33e8946de479149e9dc7e16385298815b46 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Mon, 22 Aug 2011 09:45:19 +0200 Subject: BADA: Remove executable flag from files --- backends/platform/bada/README.TXT | 0 backends/platform/bada/application.cpp | 0 backends/platform/bada/application.h | 0 backends/platform/bada/audio.cpp | 0 backends/platform/bada/audio.h | 0 backends/platform/bada/bada.mk | 0 backends/platform/bada/form.cpp | 0 backends/platform/bada/form.h | 0 backends/platform/bada/fs.cpp | 0 backends/platform/bada/fs.h | 0 backends/platform/bada/graphics.cpp | 0 backends/platform/bada/graphics.h | 0 backends/platform/bada/main.cpp | 0 backends/platform/bada/missing.cpp | 0 backends/platform/bada/portdefs.h | 0 backends/platform/bada/sscanf.cpp | 0 backends/platform/bada/system.cpp | 0 backends/platform/bada/system.h | 0 18 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 backends/platform/bada/README.TXT mode change 100755 => 100644 backends/platform/bada/application.cpp mode change 100755 => 100644 backends/platform/bada/application.h mode change 100755 => 100644 backends/platform/bada/audio.cpp mode change 100755 => 100644 backends/platform/bada/audio.h mode change 100755 => 100644 backends/platform/bada/bada.mk mode change 100755 => 100644 backends/platform/bada/form.cpp mode change 100755 => 100644 backends/platform/bada/form.h mode change 100755 => 100644 backends/platform/bada/fs.cpp mode change 100755 => 100644 backends/platform/bada/fs.h mode change 100755 => 100644 backends/platform/bada/graphics.cpp mode change 100755 => 100644 backends/platform/bada/graphics.h mode change 100755 => 100644 backends/platform/bada/main.cpp mode change 100755 => 100644 backends/platform/bada/missing.cpp mode change 100755 => 100644 backends/platform/bada/portdefs.h mode change 100755 => 100644 backends/platform/bada/sscanf.cpp mode change 100755 => 100644 backends/platform/bada/system.cpp mode change 100755 => 100644 backends/platform/bada/system.h (limited to 'backends/platform') diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT old mode 100755 new mode 100644 diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/application.h b/backends/platform/bada/application.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/bada.mk b/backends/platform/bada/bada.mk old mode 100755 new mode 100644 diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/fs.h b/backends/platform/bada/fs.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/main.cpp b/backends/platform/bada/main.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/missing.cpp b/backends/platform/bada/missing.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/portdefs.h b/backends/platform/bada/portdefs.h old mode 100755 new mode 100644 diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp old mode 100755 new mode 100644 diff --git a/backends/platform/bada/system.h b/backends/platform/bada/system.h old mode 100755 new mode 100644 -- cgit v1.2.3 From b406ba58847780d346093d881eb544a3c7b81506 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Mon, 22 Aug 2011 09:45:53 +0200 Subject: BADA: Strip off windows-style line endings --- backends/platform/bada/audio.cpp | 520 +++++++++---------- backends/platform/bada/audio.h | 146 +++--- backends/platform/bada/form.cpp | 928 ++++++++++++++++----------------- backends/platform/bada/form.h | 216 ++++---- backends/platform/bada/graphics.cpp | 630 +++++++++++------------ backends/platform/bada/graphics.h | 146 +++--- backends/platform/bada/sscanf.cpp | 364 ++++++------- backends/platform/bada/system.cpp | 998 ++++++++++++++++++------------------ 8 files changed, 1974 insertions(+), 1974 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 4ead7ebde1..7c20f57f10 100644 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -1,260 +1,260 @@ -/* 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 -#include - -#include "backends/platform/bada/audio.h" -#include "backends/platform/bada/system.h" - -#define TIMER_INCREMENT 10 -#define TIMER_INTERVAL 40 -#define MIN_TIMER_INTERVAL 10 -#define MAX_TIMER_INTERVAL 160 -#define INIT_LEVEL 3 -#define CONFIG_KEY L"audiovol" - -// sound level pre-sets -const int levels[] = {0, 1, 10, 45, 70, 99}; - -AudioThread::AudioThread() : - _mixer(0), - _timer(0), - _audioOut(0), - _head(0), - _tail(0), - _ready(0), - _interval(TIMER_INTERVAL), - _playing(-1), - _muted(true) { -} - -Audio::MixerImpl *AudioThread::Construct(OSystem *system) { - logEntered(); - - if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN, - DEFAULT_STACK_SIZE, - THREAD_PRIORITY_HIGH))) { - AppLog("Failed to create AudioThread"); - return NULL; - } - - _mixer = new Audio::MixerImpl(system, 44100); - return _mixer; -} - -AudioThread::~AudioThread() { - logEntered(); -} - -bool AudioThread::isSilentMode() { - bool silentMode; - String key(L"SilentMode"); - Osp::System::SettingInfo::GetValue(key, silentMode); - return silentMode; -} - -void AudioThread::setMute(bool on) { - if (_audioOut && !isSilentMode()) { - _muted = on; - if (on) { - _timer->Cancel(); - } else { - _timer->Start(_interval); - } - } -} - -int AudioThread::setVolume(bool up, bool minMax) { - int level = -1; - int numLevels = sizeof(levels) / sizeof(levels[0]); - - if (_audioOut && !isSilentMode()) { - int volume = _audioOut->GetVolume(); - if (minMax) { - level = up ? numLevels - 1 : 0; - volume = levels[level]; - } else { - // adjust volume to be one of the preset values - for (int i = 0; i < numLevels && level == -1; i++) { - if (volume == levels[i]) { - level = i; - if (up) { - if (i + 1 < numLevels) { - level = i + 1; - } - } else if (i > 0) { - level = i - 1; - } - } - } - - // default to INIT_LEVEL when current not preset value - if (level == -1) { - level = INIT_LEVEL; - } - volume = levels[level]; - } - - _audioOut->SetVolume(volume); - - // remember the chosen setting - AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); - if (registry) { - registry->Set(CONFIG_KEY, volume); - } - } - return level; -} - -bool AudioThread::OnStart(void) { - logEntered(); - - _audioOut = new Osp::Media::AudioOut(); - if (!_audioOut || - IsFailed(_audioOut->Construct(*this))) { - AppLog("Failed to create AudioOut"); - return false; - } - - int sampleRate = _mixer->getOutputRate(); - - // ideally we would update _mixer with GetOptimizedSampleRate here - if (_audioOut->GetOptimizedSampleRate() != sampleRate) { - AppLog("Non optimal sample rate %d", _audioOut->GetOptimizedSampleRate()); - } - - if (IsFailed(_audioOut->Prepare(AUDIO_TYPE_PCM_S16_LE, - AUDIO_CHANNEL_TYPE_STEREO, - sampleRate))) { - AppLog("Failed to prepare AudioOut %d", sampleRate); - return false; - } - - int bufferSize = _audioOut->GetMinBufferSize(); - for (int i = 0; i < NUM_AUDIO_BUFFERS; i++) { - if (IsFailed(_audioBuffer[i].Construct(bufferSize))) { - AppLog("Failed to create audio buffer"); - return false; - } - } - - _timer = new Timer(); - if (!_timer || IsFailed(_timer->Construct(*this))) { - AppLog("Failed to create audio timer"); - return false; - } - - if (IsFailed(_timer->Start(_interval))) { - AppLog("failed to start audio timer"); - return false; - } - - // get the volume from the app-registry - int volume = levels[INIT_LEVEL]; - AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); - if (registry) { - if (E_KEY_NOT_FOUND == registry->Get(CONFIG_KEY, volume)) { - registry->Add(CONFIG_KEY, volume); - volume = levels[INIT_LEVEL]; - } else { - AppLog("Setting volume: %d", volume); - } - } - - _muted = false; - _mixer->setReady(true); - _audioOut->SetVolume(isSilentMode() ? 0 : volume); - _audioOut->Start(); - return true; -} - -void AudioThread::OnStop(void) { - logEntered(); - - _mixer->setReady(false); - - if (_timer) { - if (!_muted) { - _timer->Cancel(); - } - delete _timer; - } - - if (_audioOut) { - _audioOut->Reset(); - delete _audioOut; - } -} - -void AudioThread::OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r) { - logEntered(); -} - -void AudioThread::OnAudioOutInterrupted(Osp::Media::AudioOut &src) { - logEntered(); -} - -void AudioThread::OnAudioOutReleased(Osp::Media::AudioOut &src) { - logEntered(); - _audioOut->Start(); -} - -void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { - if (_ready > 0) { - _playing = _tail; - _audioOut->WriteBuffer(_audioBuffer[_tail]); - _tail = (_tail + 1) % NUM_AUDIO_BUFFERS; - _ready--; - } else { - // audio buffer empty: decrease timer inverval - _playing = -1; - _interval -= TIMER_INCREMENT; - if (_interval < MIN_TIMER_INTERVAL) { - _interval = MIN_TIMER_INTERVAL; - } - } -} - -void AudioThread::OnTimerExpired(Timer &timer) { - if (_ready < NUM_AUDIO_BUFFERS) { - uint len = _audioBuffer[_head].GetCapacity(); - int samples = _mixer->mixCallback((byte*)_audioBuffer[_head].GetPointer(), len); - if (samples) { - _head = (_head + 1) % NUM_AUDIO_BUFFERS; - _ready++; - } - } else { - // audio buffer full: increase timer inverval - _interval += TIMER_INCREMENT; - if (_interval > MAX_TIMER_INTERVAL) { - _interval = MAX_TIMER_INTERVAL; - } - } - - if (_ready && _playing == -1) { - OnAudioOutBufferEndReached(*_audioOut); - } - - _timer->Start(_interval); -} - +/* 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 +#include + +#include "backends/platform/bada/audio.h" +#include "backends/platform/bada/system.h" + +#define TIMER_INCREMENT 10 +#define TIMER_INTERVAL 40 +#define MIN_TIMER_INTERVAL 10 +#define MAX_TIMER_INTERVAL 160 +#define INIT_LEVEL 3 +#define CONFIG_KEY L"audiovol" + +// sound level pre-sets +const int levels[] = {0, 1, 10, 45, 70, 99}; + +AudioThread::AudioThread() : + _mixer(0), + _timer(0), + _audioOut(0), + _head(0), + _tail(0), + _ready(0), + _interval(TIMER_INTERVAL), + _playing(-1), + _muted(true) { +} + +Audio::MixerImpl *AudioThread::Construct(OSystem *system) { + logEntered(); + + if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN, + DEFAULT_STACK_SIZE, + THREAD_PRIORITY_HIGH))) { + AppLog("Failed to create AudioThread"); + return NULL; + } + + _mixer = new Audio::MixerImpl(system, 44100); + return _mixer; +} + +AudioThread::~AudioThread() { + logEntered(); +} + +bool AudioThread::isSilentMode() { + bool silentMode; + String key(L"SilentMode"); + Osp::System::SettingInfo::GetValue(key, silentMode); + return silentMode; +} + +void AudioThread::setMute(bool on) { + if (_audioOut && !isSilentMode()) { + _muted = on; + if (on) { + _timer->Cancel(); + } else { + _timer->Start(_interval); + } + } +} + +int AudioThread::setVolume(bool up, bool minMax) { + int level = -1; + int numLevels = sizeof(levels) / sizeof(levels[0]); + + if (_audioOut && !isSilentMode()) { + int volume = _audioOut->GetVolume(); + if (minMax) { + level = up ? numLevels - 1 : 0; + volume = levels[level]; + } else { + // adjust volume to be one of the preset values + for (int i = 0; i < numLevels && level == -1; i++) { + if (volume == levels[i]) { + level = i; + if (up) { + if (i + 1 < numLevels) { + level = i + 1; + } + } else if (i > 0) { + level = i - 1; + } + } + } + + // default to INIT_LEVEL when current not preset value + if (level == -1) { + level = INIT_LEVEL; + } + volume = levels[level]; + } + + _audioOut->SetVolume(volume); + + // remember the chosen setting + AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); + if (registry) { + registry->Set(CONFIG_KEY, volume); + } + } + return level; +} + +bool AudioThread::OnStart(void) { + logEntered(); + + _audioOut = new Osp::Media::AudioOut(); + if (!_audioOut || + IsFailed(_audioOut->Construct(*this))) { + AppLog("Failed to create AudioOut"); + return false; + } + + int sampleRate = _mixer->getOutputRate(); + + // ideally we would update _mixer with GetOptimizedSampleRate here + if (_audioOut->GetOptimizedSampleRate() != sampleRate) { + AppLog("Non optimal sample rate %d", _audioOut->GetOptimizedSampleRate()); + } + + if (IsFailed(_audioOut->Prepare(AUDIO_TYPE_PCM_S16_LE, + AUDIO_CHANNEL_TYPE_STEREO, + sampleRate))) { + AppLog("Failed to prepare AudioOut %d", sampleRate); + return false; + } + + int bufferSize = _audioOut->GetMinBufferSize(); + for (int i = 0; i < NUM_AUDIO_BUFFERS; i++) { + if (IsFailed(_audioBuffer[i].Construct(bufferSize))) { + AppLog("Failed to create audio buffer"); + return false; + } + } + + _timer = new Timer(); + if (!_timer || IsFailed(_timer->Construct(*this))) { + AppLog("Failed to create audio timer"); + return false; + } + + if (IsFailed(_timer->Start(_interval))) { + AppLog("failed to start audio timer"); + return false; + } + + // get the volume from the app-registry + int volume = levels[INIT_LEVEL]; + AppRegistry *registry = Application::GetInstance()->GetAppRegistry(); + if (registry) { + if (E_KEY_NOT_FOUND == registry->Get(CONFIG_KEY, volume)) { + registry->Add(CONFIG_KEY, volume); + volume = levels[INIT_LEVEL]; + } else { + AppLog("Setting volume: %d", volume); + } + } + + _muted = false; + _mixer->setReady(true); + _audioOut->SetVolume(isSilentMode() ? 0 : volume); + _audioOut->Start(); + return true; +} + +void AudioThread::OnStop(void) { + logEntered(); + + _mixer->setReady(false); + + if (_timer) { + if (!_muted) { + _timer->Cancel(); + } + delete _timer; + } + + if (_audioOut) { + _audioOut->Reset(); + delete _audioOut; + } +} + +void AudioThread::OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r) { + logEntered(); +} + +void AudioThread::OnAudioOutInterrupted(Osp::Media::AudioOut &src) { + logEntered(); +} + +void AudioThread::OnAudioOutReleased(Osp::Media::AudioOut &src) { + logEntered(); + _audioOut->Start(); +} + +void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) { + if (_ready > 0) { + _playing = _tail; + _audioOut->WriteBuffer(_audioBuffer[_tail]); + _tail = (_tail + 1) % NUM_AUDIO_BUFFERS; + _ready--; + } else { + // audio buffer empty: decrease timer inverval + _playing = -1; + _interval -= TIMER_INCREMENT; + if (_interval < MIN_TIMER_INTERVAL) { + _interval = MIN_TIMER_INTERVAL; + } + } +} + +void AudioThread::OnTimerExpired(Timer &timer) { + if (_ready < NUM_AUDIO_BUFFERS) { + uint len = _audioBuffer[_head].GetCapacity(); + int samples = _mixer->mixCallback((byte*)_audioBuffer[_head].GetPointer(), len); + if (samples) { + _head = (_head + 1) % NUM_AUDIO_BUFFERS; + _ready++; + } + } else { + // audio buffer full: increase timer inverval + _interval += TIMER_INCREMENT; + if (_interval > MAX_TIMER_INTERVAL) { + _interval = MAX_TIMER_INTERVAL; + } + } + + if (_ready && _playing == -1) { + OnAudioOutBufferEndReached(*_audioOut); + } + + _timer->Start(_interval); +} + diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h index 9279593afd..a6debef5a8 100644 --- a/backends/platform/bada/audio.h +++ b/backends/platform/bada/audio.h @@ -1,73 +1,73 @@ -/* 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 BADA_AUDIO_H -#define BADA_AUDIO_H - -#include -#include -#include -#include - -#include "config.h" -#include "common/scummsys.h" -#include "common/system.h" -#include "audio/mixer_intern.h" - -using namespace Osp::Base; -using namespace Osp::Base::Collection; -using namespace Osp::Base::Runtime; -using namespace Osp::Media; -using namespace Osp::Io; - -#define NUM_AUDIO_BUFFERS 2 - -class AudioThread: public Osp::Media::IAudioOutEventListener, - public Osp::Base::Runtime::ITimerEventListener, - public Osp::Base::Runtime::Thread { -public: - AudioThread(void); - ~AudioThread(void); - - Audio::MixerImpl *Construct(OSystem *system); - bool isSilentMode(); - void setMute(bool on); - int setVolume(bool up, bool minMax); - - bool OnStart(void); - void OnStop(void); - void OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r); - void OnAudioOutInterrupted(Osp::Media::AudioOut &src); - void OnAudioOutReleased(Osp::Media::AudioOut &src); - void OnAudioOutBufferEndReached(Osp::Media::AudioOut &src); - void OnTimerExpired(Timer &timer); - -private: - Audio::MixerImpl *_mixer; - Osp::Base::Runtime::Timer *_timer; - Osp::Media::AudioOut *_audioOut; - Osp::Base::ByteBuffer _audioBuffer[NUM_AUDIO_BUFFERS]; - int _head, _tail, _ready, _interval, _playing; - bool _muted; -}; - -#endif +/* 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 BADA_AUDIO_H +#define BADA_AUDIO_H + +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "common/system.h" +#include "audio/mixer_intern.h" + +using namespace Osp::Base; +using namespace Osp::Base::Collection; +using namespace Osp::Base::Runtime; +using namespace Osp::Media; +using namespace Osp::Io; + +#define NUM_AUDIO_BUFFERS 2 + +class AudioThread: public Osp::Media::IAudioOutEventListener, + public Osp::Base::Runtime::ITimerEventListener, + public Osp::Base::Runtime::Thread { +public: + AudioThread(void); + ~AudioThread(void); + + Audio::MixerImpl *Construct(OSystem *system); + bool isSilentMode(); + void setMute(bool on); + int setVolume(bool up, bool minMax); + + bool OnStart(void); + void OnStop(void); + void OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r); + void OnAudioOutInterrupted(Osp::Media::AudioOut &src); + void OnAudioOutReleased(Osp::Media::AudioOut &src); + void OnAudioOutBufferEndReached(Osp::Media::AudioOut &src); + void OnTimerExpired(Timer &timer); + +private: + Audio::MixerImpl *_mixer; + Osp::Base::Runtime::Timer *_timer; + Osp::Media::AudioOut *_audioOut; + Osp::Base::ByteBuffer _audioBuffer[NUM_AUDIO_BUFFERS]; + int _head, _tail, _ready, _interval, _playing; + bool _muted; +}; + +#endif diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 35721dbc5f..418cdc482b 100644 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -1,464 +1,464 @@ -/* 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 - -#include "common/translation.h" -#include "base/main.h" - -#include "backends/platform/bada/form.h" -#include "backends/platform/bada/system.h" - -using namespace Osp::Base::Runtime; -using namespace Osp::Ui; -using namespace Osp::Ui::Controls; - -// number of volume levels -#define LEVEL_RANGE 5 - -// round down small Y touch values to 1 to allow the -// cursor to be positioned at the top of the screen -#define MIN_TOUCH_Y 10 - -// block for up to 2.5 seconds during shutdown to -// allow the game thread to exit gracefully. -#define EXIT_SLEEP_STEP 10 -#define EXIT_SLEEP 250 - -// -// BadaAppForm -// -BadaAppForm::BadaAppForm() : - _gameThread(0), - _state(InitState), - _buttonState(LeftButton), - _shortcut(SetVolume) { - _eventQueueLock = new Mutex(); - _eventQueueLock->Create(); -} - -result BadaAppForm::Construct() { - result r = Form::Construct(Controls::FORM_STYLE_NORMAL); - if (IsFailed(r)) { - return r; - } - - BadaSystem *badaSystem = NULL; - _gameThread = NULL; - - badaSystem = new BadaSystem(this); - r = badaSystem != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; - - if (!IsFailed(r)) { - r = badaSystem->Construct(); - } - - if (!IsFailed(r)) { - _gameThread = new Thread(); - r = _gameThread != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; - } - - if (!IsFailed(r)) { - r = _gameThread->Construct(*this); - } - - if (IsFailed(r)) { - if (badaSystem != NULL) { - delete badaSystem; - } - if (_gameThread != NULL) { - delete _gameThread; - _gameThread = NULL; - } - } else { - g_system = badaSystem; - } - - return r; -} - -BadaAppForm::~BadaAppForm() { - logEntered(); - - if (_gameThread && _state != ErrorState) { - terminate(); - - _gameThread->Stop(); - if (_state != ErrorState) { - _gameThread->Join(); - } - - delete _gameThread; - _gameThread = NULL; - } - - if (_eventQueueLock) { - delete _eventQueueLock; - _eventQueueLock = NULL; - } - - logLeaving(); -} - -// -// abort the game thread -// -void BadaAppForm::terminate() { - if (_state == ActiveState) { - ((BadaSystem *)g_system)->setMute(true); - - _eventQueueLock->Acquire(); - - Common::Event e; - e.type = Common::EVENT_QUIT; - _eventQueue.push(e); - _state = ClosingState; - - _eventQueueLock->Release(); - - // block while thread ends - AppLog("waiting for shutdown"); - for (int i = 0; i < EXIT_SLEEP_STEP && _state == ClosingState; i++) { - Thread::Sleep(EXIT_SLEEP); - } - - if (_state == ClosingState) { - // failed to terminate - Join() will freeze - _state = ErrorState; - } - } -} - -void BadaAppForm::exitSystem() { - _state = ErrorState; - - if (_gameThread) { - _gameThread->Stop(); - delete _gameThread; - _gameThread = NULL; - } -} - -result BadaAppForm::OnInitializing(void) { - logEntered(); - - SetOrientation(ORIENTATION_LANDSCAPE); - AddOrientationEventListener(*this); - AddTouchEventListener(*this); - AddKeyEventListener(*this); - - // set focus to enable receiving key events - SetFocusable(true); - SetFocus(); - - return E_SUCCESS; -} - -result BadaAppForm::OnDraw(void) { - logEntered(); - - if (g_system) { - BadaSystem *system = (BadaSystem *)g_system; - BadaGraphicsManager *graphics = system->getGraphics(); - if (graphics && graphics->isReady()) { - g_system->updateScreen(); - } - } - - return E_SUCCESS; -} - -bool BadaAppForm::pollEvent(Common::Event &event) { - bool result = false; - - _eventQueueLock->Acquire(); - if (!_eventQueue.empty()) { - event = _eventQueue.pop(); - result = true; - } - _eventQueueLock->Release(); - - return result; -} - -void BadaAppForm::pushEvent(Common::EventType type, - const Point ¤tPosition) { - BadaSystem *system = (BadaSystem *)g_system; - BadaGraphicsManager *graphics = system->getGraphics(); - if (graphics) { - // graphics could be NULL at startup or when - // displaying the system error screen - Common::Event e; - e.type = type; - e.mouse.x = currentPosition.x; - e.mouse.y = currentPosition.y > MIN_TOUCH_Y ? currentPosition.y : 1; - - bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y); - - _eventQueueLock->Acquire(); - - if (moved && type != Common::EVENT_MOUSEMOVE) { - Common::Event moveEvent; - moveEvent.type = Common::EVENT_MOUSEMOVE; - moveEvent.mouse = e.mouse; - _eventQueue.push(moveEvent); - } - - _eventQueue.push(e); - _eventQueueLock->Release(); - } -} - -void BadaAppForm::pushKey(Common::KeyCode keycode) { - Common::Event e; - e.synthetic = false; - e.kbd.keycode = keycode; - e.kbd.ascii = keycode; - e.kbd.flags = 0; - - _eventQueueLock->Acquire(); - - e.type = Common::EVENT_KEYDOWN; - _eventQueue.push(e); - e.type = Common::EVENT_KEYUP; - _eventQueue.push(e); - - _eventQueueLock->Release(); -} - -void BadaAppForm::OnOrientationChanged(const Control &source, - OrientationStatus orientationStatus) { - logEntered(); - if (_state == InitState) { - _state = ActiveState; - _gameThread->Start(); - } -} - -Object *BadaAppForm::Run(void) { - scummvm_main(0, 0); - - if (_state == ActiveState) { - Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, NULL); - } - _state = DoneState; - return NULL; -} - -void BadaAppForm::setButtonShortcut() { - switch (_buttonState) { - case LeftButton: - g_system->displayMessageOnOSD(_("Right Click Once")); - _buttonState = RightButtonOnce; - break; - case RightButtonOnce: - g_system->displayMessageOnOSD(_("Right Click")); - _buttonState = RightButton; - break; - case RightButton: - g_system->displayMessageOnOSD(_("Move Only")); - _buttonState = MoveOnly; - break; - case MoveOnly: - g_system->displayMessageOnOSD(_("Left Click")); - _buttonState = LeftButton; - break; - } -} - -void BadaAppForm::setShortcut() { - // cycle to the next shortcut - switch (_shortcut) { - case ControlMouse: - g_system->displayMessageOnOSD(_("Escape Key")); - _shortcut = EscapeKey; - break; - - case EscapeKey: - g_system->displayMessageOnOSD(_("Game Menu")); - _shortcut = GameMenu; - break; - - case GameMenu: - g_system->displayMessageOnOSD(_("Show Keypad")); - _shortcut = ShowKeypad; - break; - - case SetVolume: - // fallthru - - case ShowKeypad: - g_system->displayMessageOnOSD(_("Control Mouse")); - _shortcut = ControlMouse; - break; - } -} - -void BadaAppForm::setVolume(bool up, bool minMax) { - int level = ((BadaSystem *)g_system)->setVolume(up, minMax); - if (level != -1) { - char message[32]; - char ind[LEVEL_RANGE]; // 1..5 (0=off) - int j = LEVEL_RANGE - 1; // 0..4 - for (int i = 1; i <= LEVEL_RANGE; i++) { - ind[j--] = level >= i ? '|' : ' '; - } - snprintf(message, sizeof(message), "Volume: [ %c%c%c%c%c ]", - ind[0], ind[1], ind[2], ind[3], ind[4]); - g_system->displayMessageOnOSD(message); - } -} - -void BadaAppForm::showKeypad() { - // display the soft keyboard - _buttonState = LeftButton; - pushKey(Common::KEYCODE_F7); -} - -void BadaAppForm::OnTouchDoublePressed(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, - currentPosition); - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, - currentPosition); - } -} - -void BadaAppForm::OnTouchFocusIn(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { -} - -void BadaAppForm::OnTouchFocusOut(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { -} - -void BadaAppForm::OnTouchLongPressed(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { - if (_buttonState != LeftButton) { - pushKey(Common::KEYCODE_RETURN); - } -} - -void BadaAppForm::OnTouchMoved(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { - pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); -} - -void BadaAppForm::OnTouchPressed(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, - currentPosition); - } -} - -void BadaAppForm::OnTouchReleased(const Control &source, - const Point ¤tPosition, - const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, - currentPosition); - if (_buttonState == RightButtonOnce) { - _buttonState = LeftButton; - } - // flick to skip dialog - if (touchInfo.IsFlicked()) { - pushKey(Common::KEYCODE_PERIOD); - } - } -} - -void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { - logEntered(); - switch (keyCode) { - case KEY_SIDE_UP: - _shortcut = SetVolume; - setVolume(true, true); - return; - - case KEY_SIDE_DOWN: - _shortcut = SetVolume; - setVolume(false, true); - return; - - case KEY_CAMERA: - _shortcut = ShowKeypad; - showKeypad(); - return; - - default: - break; - } -} - -void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { - switch (keyCode) { - case KEY_SIDE_UP: - if (_shortcut != SetVolume) { - _shortcut = SetVolume; - } else { - setVolume(true, false); - } - return; - - case KEY_SIDE_DOWN: - switch (_shortcut) { - case ControlMouse: - setButtonShortcut(); - break; - - case EscapeKey: - pushKey(Common::KEYCODE_ESCAPE); - break; - - case GameMenu: - pushKey(Common::KEYCODE_F5); - break; - - case ShowKeypad: - showKeypad(); - break; - - default: - setVolume(false, false); - break; - } - break; - - case KEY_CAMERA: - setShortcut(); - break; - - default: - break; - } -} - -void BadaAppForm::OnKeyReleased(const Control &source, KeyCode keyCode) { -} +/* 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 + +#include "common/translation.h" +#include "base/main.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" + +using namespace Osp::Base::Runtime; +using namespace Osp::Ui; +using namespace Osp::Ui::Controls; + +// number of volume levels +#define LEVEL_RANGE 5 + +// round down small Y touch values to 1 to allow the +// cursor to be positioned at the top of the screen +#define MIN_TOUCH_Y 10 + +// block for up to 2.5 seconds during shutdown to +// allow the game thread to exit gracefully. +#define EXIT_SLEEP_STEP 10 +#define EXIT_SLEEP 250 + +// +// BadaAppForm +// +BadaAppForm::BadaAppForm() : + _gameThread(0), + _state(InitState), + _buttonState(LeftButton), + _shortcut(SetVolume) { + _eventQueueLock = new Mutex(); + _eventQueueLock->Create(); +} + +result BadaAppForm::Construct() { + result r = Form::Construct(Controls::FORM_STYLE_NORMAL); + if (IsFailed(r)) { + return r; + } + + BadaSystem *badaSystem = NULL; + _gameThread = NULL; + + badaSystem = new BadaSystem(this); + r = badaSystem != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; + + if (!IsFailed(r)) { + r = badaSystem->Construct(); + } + + if (!IsFailed(r)) { + _gameThread = new Thread(); + r = _gameThread != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; + } + + if (!IsFailed(r)) { + r = _gameThread->Construct(*this); + } + + if (IsFailed(r)) { + if (badaSystem != NULL) { + delete badaSystem; + } + if (_gameThread != NULL) { + delete _gameThread; + _gameThread = NULL; + } + } else { + g_system = badaSystem; + } + + return r; +} + +BadaAppForm::~BadaAppForm() { + logEntered(); + + if (_gameThread && _state != ErrorState) { + terminate(); + + _gameThread->Stop(); + if (_state != ErrorState) { + _gameThread->Join(); + } + + delete _gameThread; + _gameThread = NULL; + } + + if (_eventQueueLock) { + delete _eventQueueLock; + _eventQueueLock = NULL; + } + + logLeaving(); +} + +// +// abort the game thread +// +void BadaAppForm::terminate() { + if (_state == ActiveState) { + ((BadaSystem *)g_system)->setMute(true); + + _eventQueueLock->Acquire(); + + Common::Event e; + e.type = Common::EVENT_QUIT; + _eventQueue.push(e); + _state = ClosingState; + + _eventQueueLock->Release(); + + // block while thread ends + AppLog("waiting for shutdown"); + for (int i = 0; i < EXIT_SLEEP_STEP && _state == ClosingState; i++) { + Thread::Sleep(EXIT_SLEEP); + } + + if (_state == ClosingState) { + // failed to terminate - Join() will freeze + _state = ErrorState; + } + } +} + +void BadaAppForm::exitSystem() { + _state = ErrorState; + + if (_gameThread) { + _gameThread->Stop(); + delete _gameThread; + _gameThread = NULL; + } +} + +result BadaAppForm::OnInitializing(void) { + logEntered(); + + SetOrientation(ORIENTATION_LANDSCAPE); + AddOrientationEventListener(*this); + AddTouchEventListener(*this); + AddKeyEventListener(*this); + + // set focus to enable receiving key events + SetFocusable(true); + SetFocus(); + + return E_SUCCESS; +} + +result BadaAppForm::OnDraw(void) { + logEntered(); + + if (g_system) { + BadaSystem *system = (BadaSystem *)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics && graphics->isReady()) { + g_system->updateScreen(); + } + } + + return E_SUCCESS; +} + +bool BadaAppForm::pollEvent(Common::Event &event) { + bool result = false; + + _eventQueueLock->Acquire(); + if (!_eventQueue.empty()) { + event = _eventQueue.pop(); + result = true; + } + _eventQueueLock->Release(); + + return result; +} + +void BadaAppForm::pushEvent(Common::EventType type, + const Point ¤tPosition) { + BadaSystem *system = (BadaSystem *)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics) { + // graphics could be NULL at startup or when + // displaying the system error screen + Common::Event e; + e.type = type; + e.mouse.x = currentPosition.x; + e.mouse.y = currentPosition.y > MIN_TOUCH_Y ? currentPosition.y : 1; + + bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y); + + _eventQueueLock->Acquire(); + + if (moved && type != Common::EVENT_MOUSEMOVE) { + Common::Event moveEvent; + moveEvent.type = Common::EVENT_MOUSEMOVE; + moveEvent.mouse = e.mouse; + _eventQueue.push(moveEvent); + } + + _eventQueue.push(e); + _eventQueueLock->Release(); + } +} + +void BadaAppForm::pushKey(Common::KeyCode keycode) { + Common::Event e; + e.synthetic = false; + e.kbd.keycode = keycode; + e.kbd.ascii = keycode; + e.kbd.flags = 0; + + _eventQueueLock->Acquire(); + + e.type = Common::EVENT_KEYDOWN; + _eventQueue.push(e); + e.type = Common::EVENT_KEYUP; + _eventQueue.push(e); + + _eventQueueLock->Release(); +} + +void BadaAppForm::OnOrientationChanged(const Control &source, + OrientationStatus orientationStatus) { + logEntered(); + if (_state == InitState) { + _state = ActiveState; + _gameThread->Start(); + } +} + +Object *BadaAppForm::Run(void) { + scummvm_main(0, 0); + + if (_state == ActiveState) { + Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, NULL); + } + _state = DoneState; + return NULL; +} + +void BadaAppForm::setButtonShortcut() { + switch (_buttonState) { + case LeftButton: + g_system->displayMessageOnOSD(_("Right Click Once")); + _buttonState = RightButtonOnce; + break; + case RightButtonOnce: + g_system->displayMessageOnOSD(_("Right Click")); + _buttonState = RightButton; + break; + case RightButton: + g_system->displayMessageOnOSD(_("Move Only")); + _buttonState = MoveOnly; + break; + case MoveOnly: + g_system->displayMessageOnOSD(_("Left Click")); + _buttonState = LeftButton; + break; + } +} + +void BadaAppForm::setShortcut() { + // cycle to the next shortcut + switch (_shortcut) { + case ControlMouse: + g_system->displayMessageOnOSD(_("Escape Key")); + _shortcut = EscapeKey; + break; + + case EscapeKey: + g_system->displayMessageOnOSD(_("Game Menu")); + _shortcut = GameMenu; + break; + + case GameMenu: + g_system->displayMessageOnOSD(_("Show Keypad")); + _shortcut = ShowKeypad; + break; + + case SetVolume: + // fallthru + + case ShowKeypad: + g_system->displayMessageOnOSD(_("Control Mouse")); + _shortcut = ControlMouse; + break; + } +} + +void BadaAppForm::setVolume(bool up, bool minMax) { + int level = ((BadaSystem *)g_system)->setVolume(up, minMax); + if (level != -1) { + char message[32]; + char ind[LEVEL_RANGE]; // 1..5 (0=off) + int j = LEVEL_RANGE - 1; // 0..4 + for (int i = 1; i <= LEVEL_RANGE; i++) { + ind[j--] = level >= i ? '|' : ' '; + } + snprintf(message, sizeof(message), "Volume: [ %c%c%c%c%c ]", + ind[0], ind[1], ind[2], ind[3], ind[4]); + g_system->displayMessageOnOSD(message); + } +} + +void BadaAppForm::showKeypad() { + // display the soft keyboard + _buttonState = LeftButton; + pushKey(Common::KEYCODE_F7); +} + +void BadaAppForm::OnTouchDoublePressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (_buttonState != MoveOnly) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + } +} + +void BadaAppForm::OnTouchFocusIn(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { +} + +void BadaAppForm::OnTouchFocusOut(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { +} + +void BadaAppForm::OnTouchLongPressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (_buttonState != LeftButton) { + pushKey(Common::KEYCODE_RETURN); + } +} + +void BadaAppForm::OnTouchMoved(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); +} + +void BadaAppForm::OnTouchPressed(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (_buttonState != MoveOnly) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + currentPosition); + } +} + +void BadaAppForm::OnTouchReleased(const Control &source, + const Point ¤tPosition, + const TouchEventInfo &touchInfo) { + if (_buttonState != MoveOnly) { + pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, + currentPosition); + if (_buttonState == RightButtonOnce) { + _buttonState = LeftButton; + } + // flick to skip dialog + if (touchInfo.IsFlicked()) { + pushKey(Common::KEYCODE_PERIOD); + } + } +} + +void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { + logEntered(); + switch (keyCode) { + case KEY_SIDE_UP: + _shortcut = SetVolume; + setVolume(true, true); + return; + + case KEY_SIDE_DOWN: + _shortcut = SetVolume; + setVolume(false, true); + return; + + case KEY_CAMERA: + _shortcut = ShowKeypad; + showKeypad(); + return; + + default: + break; + } +} + +void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { + switch (keyCode) { + case KEY_SIDE_UP: + if (_shortcut != SetVolume) { + _shortcut = SetVolume; + } else { + setVolume(true, false); + } + return; + + case KEY_SIDE_DOWN: + switch (_shortcut) { + case ControlMouse: + setButtonShortcut(); + break; + + case EscapeKey: + pushKey(Common::KEYCODE_ESCAPE); + break; + + case GameMenu: + pushKey(Common::KEYCODE_F5); + break; + + case ShowKeypad: + showKeypad(); + break; + + default: + setVolume(false, false); + break; + } + break; + + case KEY_CAMERA: + setShortcut(); + break; + + default: + break; + } +} + +void BadaAppForm::OnKeyReleased(const Control &source, KeyCode keyCode) { +} diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index aa134615b7..ec04f19559 100644 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -1,108 +1,108 @@ -/* 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 BADA_FORM_H -#define BADA_FORM_H - -#include -#include -#include -#include -#include -#include - -#include "config.h" -#include "common/scummsys.h" -#include "common/events.h" -#include "common/queue.h" -#include "common/mutex.h" - -// -// BadaAppForm -// -class BadaAppForm : public Osp::Ui::Controls::Form, - public Osp::Ui::IOrientationEventListener, - public Osp::Ui::ITouchEventListener, - public Osp::Ui::IKeyEventListener, - public Osp::Base::Runtime::IRunnable { -public: - BadaAppForm(); - ~BadaAppForm(); - - result Construct(); - bool pollEvent(Common::Event &event); - bool isClosing() { return _state == ClosingState; } - void pushKey(Common::KeyCode keycode); - void exitSystem(); - -private: - Object *Run(); - result OnInitializing(void); - result OnDraw(void); - void OnOrientationChanged(const Osp::Ui::Control &source, - Osp::Ui::OrientationStatus orientationStatus); - void OnTouchDoublePressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchFocusIn(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchFocusOut(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchLongPressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchMoved(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchPressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchReleased(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, - const Osp::Ui::TouchEventInfo &touchInfo); - void OnKeyLongPressed(const Osp::Ui::Control &source, - Osp::Ui::KeyCode keyCode); - void OnKeyPressed(const Osp::Ui::Control &source, - Osp::Ui::KeyCode keyCode); - void OnKeyReleased(const Osp::Ui::Control &source, - Osp::Ui::KeyCode keyCode); - - void pushEvent(Common::EventType type, - const Osp::Graphics::Point ¤tPosition); - void terminate(); - void setButtonShortcut(); - void setShortcut(); - void setVolume(bool up, bool minMax); - void showKeypad(); - - // event handling - Osp::Base::Runtime::Thread *_gameThread; - Osp::Base::Runtime::Mutex *_eventQueueLock; - Common::Queue _eventQueue; - enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; - enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; - enum {ControlMouse, EscapeKey, GameMenu, ShowKeypad, SetVolume} _shortcut; -}; - -#endif +/* 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 BADA_FORM_H +#define BADA_FORM_H + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "common/scummsys.h" +#include "common/events.h" +#include "common/queue.h" +#include "common/mutex.h" + +// +// BadaAppForm +// +class BadaAppForm : public Osp::Ui::Controls::Form, + public Osp::Ui::IOrientationEventListener, + public Osp::Ui::ITouchEventListener, + public Osp::Ui::IKeyEventListener, + public Osp::Base::Runtime::IRunnable { +public: + BadaAppForm(); + ~BadaAppForm(); + + result Construct(); + bool pollEvent(Common::Event &event); + bool isClosing() { return _state == ClosingState; } + void pushKey(Common::KeyCode keycode); + void exitSystem(); + +private: + Object *Run(); + result OnInitializing(void); + result OnDraw(void); + void OnOrientationChanged(const Osp::Ui::Control &source, + Osp::Ui::OrientationStatus orientationStatus); + void OnTouchDoublePressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchFocusIn(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchFocusOut(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchLongPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchMoved(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnTouchReleased(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, + const Osp::Ui::TouchEventInfo &touchInfo); + void OnKeyLongPressed(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + void OnKeyPressed(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + void OnKeyReleased(const Osp::Ui::Control &source, + Osp::Ui::KeyCode keyCode); + + void pushEvent(Common::EventType type, + const Osp::Graphics::Point ¤tPosition); + void terminate(); + void setButtonShortcut(); + void setShortcut(); + void setVolume(bool up, bool minMax); + void showKeypad(); + + // event handling + Osp::Base::Runtime::Thread *_gameThread; + Osp::Base::Runtime::Mutex *_eventQueueLock; + Common::Queue _eventQueue; + enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; + enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; + enum {ControlMouse, EscapeKey, GameMenu, ShowKeypad, SetVolume} _shortcut; +}; + +#endif diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp index 81176b13d3..7c4fc03ac1 100644 --- a/backends/platform/bada/graphics.cpp +++ b/backends/platform/bada/graphics.cpp @@ -1,315 +1,315 @@ -/* 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 "graphics/fontman.h" - -#include "backends/platform/bada/form.h" -#include "backends/platform/bada/system.h" -#include "backends/platform/bada/graphics.h" - -// -// BadaGraphicsManager -// -BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) : - _appForm(appForm), - _eglDisplay(EGL_DEFAULT_DISPLAY), - _eglSurface(EGL_NO_SURFACE), - _eglConfig(0), - _eglContext(EGL_NO_CONTEXT), - _initState(true) { - assert(appForm != NULL); - _videoMode.fullscreen = true; - _videoMode.antialiasing = true; -} - -const Graphics::Font *BadaGraphicsManager::getFontOSD() { - return FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont); -} - -bool BadaGraphicsManager::moveMouse(int16 &x, int16 &y) { - int16 currentX = _cursorState.x; - int16 currentY = _cursorState.y; - - // save the current hardware coordinates - _cursorState.x = x; - _cursorState.y = y; - - // return x/y as game coordinates - adjustMousePosition(x, y); - - // convert current x/y to game coordinates - adjustMousePosition(currentX, currentY); - - // return whether game coordinates have changed - return (currentX != x || currentY != y); -} - -Common::List BadaGraphicsManager::getSupportedFormats() const { - logEntered(); - - Common::List res; - res.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0)); - res.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0)); - res.push_back(Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0)); - res.push_back(Graphics::PixelFormat::createFormatCLUT8()); - return res; -} - -bool BadaGraphicsManager::hasFeature(OSystem::Feature f) { - bool result = (f == OSystem::kFeatureFullscreenMode || - f == OSystem::kFeatureVirtualKeyboard || - OpenGLGraphicsManager::hasFeature(f)); - return result; -} - -void BadaGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) { - OpenGLGraphicsManager::setFeatureState(f, enable); -} - -void BadaGraphicsManager::setReady() { - _initState = false; -} - -void BadaGraphicsManager::updateScreen() { - if (_transactionMode == kTransactionNone) { - internUpdateScreen(); - } -} - -bool BadaGraphicsManager::loadEgl() { - logEntered(); - - EGLint numConfigs = 1; - EGLint eglConfigList[] = { - EGL_RED_SIZE, 5, - EGL_GREEN_SIZE, 6, - EGL_BLUE_SIZE, 5, - EGL_ALPHA_SIZE, 0, - EGL_DEPTH_SIZE, 8, - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, - EGL_NONE - }; - - EGLint eglContextList[] = { - EGL_CONTEXT_CLIENT_VERSION, 1, - EGL_NONE - }; - - eglBindAPI(EGL_OPENGL_ES_API); - - if (_eglDisplay) { - unloadGFXMode(); - } - - _eglDisplay = eglGetDisplay((EGLNativeDisplayType) EGL_DEFAULT_DISPLAY); - if (EGL_NO_DISPLAY == _eglDisplay) { - systemError("eglGetDisplay() failed"); - return false; - } - - if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) || - EGL_SUCCESS != eglGetError()) { - systemError("eglInitialize() failed"); - return false; - } - - if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList, - &_eglConfig, 1, &numConfigs) || - EGL_SUCCESS != eglGetError()) { - systemError("eglChooseConfig() failed"); - return false; - } - - if (!numConfigs) { - systemError("eglChooseConfig() failed. Matching config does not exist \n"); - return false; - } - - _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, - (EGLNativeWindowType)_appForm, NULL); - if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) { - systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE"); - return false; - } - - _eglContext = eglCreateContext(_eglDisplay, _eglConfig, - EGL_NO_CONTEXT, eglContextList); - if (EGL_NO_CONTEXT == _eglContext || - EGL_SUCCESS != eglGetError()) { - systemError("eglCreateContext() failed"); - return false; - } - - if (false == eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext) || - EGL_SUCCESS != eglGetError()) { - systemError("eglMakeCurrent() failed"); - return false; - } - - logLeaving(); - return true; -} - -bool BadaGraphicsManager::loadGFXMode() { - logEntered(); - - if (!loadEgl()) { - unloadGFXMode(); - return false; - } - - int x, y, width, height; - _appForm->GetBounds(x, y, width, height); - _videoMode.overlayWidth = _videoMode.hardwareWidth = width; - _videoMode.overlayHeight = _videoMode.hardwareHeight = height; - _videoMode.scaleFactor = 3; // for proportional sized cursor in the launcher - - AppLog("screen size: %dx%d", _videoMode.hardwareWidth, _videoMode.hardwareHeight); - return OpenGLGraphicsManager::loadGFXMode(); -} - -void BadaGraphicsManager::loadTextures() { - logEntered(); - - OpenGLGraphicsManager::loadTextures(); - - // prevent image skew in some games, see: - // http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall - // note: this did not solve the pixel border problem in refreshGameScreen() - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); -} - -void BadaGraphicsManager::internUpdateScreen() { - if (!_initState) { - OpenGLGraphicsManager::internUpdateScreen(); - eglSwapBuffers(_eglDisplay, _eglSurface); - } else { - showSplash(); - } -} - -void BadaGraphicsManager::unloadGFXMode() { - logEntered(); - - if (EGL_NO_DISPLAY != _eglDisplay) { - eglMakeCurrent(_eglDisplay, NULL, NULL, NULL); - - if (_eglContext != EGL_NO_CONTEXT) { - eglDestroyContext(_eglDisplay, _eglContext); - _eglContext = EGL_NO_CONTEXT; - } - - if (_eglSurface != EGL_NO_SURFACE) { - eglDestroySurface(_eglDisplay, _eglSurface); - _eglSurface = EGL_NO_SURFACE; - } - - eglTerminate(_eglDisplay); - _eglDisplay = EGL_NO_DISPLAY; - } - - _eglConfig = NULL; - - OpenGLGraphicsManager::unloadGFXMode(); - logLeaving(); -} - -void BadaGraphicsManager::refreshGameScreen() { - if (_screenNeedsRedraw) - _screenDirtyRect = Common::Rect(0, 0, _screenData.w, _screenData.h); - - int x = _screenDirtyRect.left; - int y = _screenDirtyRect.top; - int w = _screenDirtyRect.width(); - int h = _screenDirtyRect.height(); - - if (_screenData.format.bytesPerPixel == 1) { - // Create a temporary RGB888 surface - int sw = w; - int sh = h; - - if (_videoMode.screenWidth == w && _videoMode.screenHeight == h) { - // The extra border prevents random pixels from appearing in the right and bottom - // screen column/row. Not sure whether this should be applied to opengl-graphics.cpp - sw = w + 1; - sh = h + 1; - } - - byte *surface = new byte[sw * sh * 3]; - - // Convert the paletted buffer to RGB888 - const byte *src = (byte *)_screenData.pixels + y * _screenData.pitch; - src += x * _screenData.format.bytesPerPixel; - byte *dst = surface; - for (int i = 0; i < h; i++) { - for (int j = 0; j < w; j++) { - dst[0] = _gamePalette[src[j] * 3]; - dst[1] = _gamePalette[src[j] * 3 + 1]; - dst[2] = _gamePalette[src[j] * 3 + 2]; - dst += 3; - } - src += _screenData.pitch; - } - - // Update the texture - _gameTexture->updateBuffer(surface, w * 3, x, y, sw, sh); - - // Free the temp surface - delete[] surface; - } else { - // Update the texture - _gameTexture->updateBuffer((byte *)_screenData.pixels + y * _screenData.pitch + - x * _screenData.format.bytesPerPixel, _screenData.pitch, x, y, w, h); - } - - _screenNeedsRedraw = false; - _screenDirtyRect = Common::Rect(); -} - -// display a simple splash screen until launcher is ready -void BadaGraphicsManager::showSplash() { - Canvas canvas; - canvas.Construct(); - canvas.SetBackgroundColor(Color::COLOR_BLACK); - canvas.Clear(); - - int x = _videoMode.hardwareWidth / 3; - int y = _videoMode.hardwareHeight / 3; - - Font *pFont = new Font(); - pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 55); - canvas.SetFont(*pFont); - canvas.SetForegroundColor(Color::COLOR_GREEN); - canvas.DrawText(Point(x, y), L"ScummVM"); - delete pFont; - - pFont = new Font(); - pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 35); - canvas.SetFont(*pFont); - canvas.SetForegroundColor(Color::COLOR_WHITE); - canvas.DrawText(Point(x + 70, y + 50), L"Loading ..."); - delete pFont; - - canvas.Show(); - -} +/* 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 "graphics/fontman.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/graphics.h" + +// +// BadaGraphicsManager +// +BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) : + _appForm(appForm), + _eglDisplay(EGL_DEFAULT_DISPLAY), + _eglSurface(EGL_NO_SURFACE), + _eglConfig(0), + _eglContext(EGL_NO_CONTEXT), + _initState(true) { + assert(appForm != NULL); + _videoMode.fullscreen = true; + _videoMode.antialiasing = true; +} + +const Graphics::Font *BadaGraphicsManager::getFontOSD() { + return FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont); +} + +bool BadaGraphicsManager::moveMouse(int16 &x, int16 &y) { + int16 currentX = _cursorState.x; + int16 currentY = _cursorState.y; + + // save the current hardware coordinates + _cursorState.x = x; + _cursorState.y = y; + + // return x/y as game coordinates + adjustMousePosition(x, y); + + // convert current x/y to game coordinates + adjustMousePosition(currentX, currentY); + + // return whether game coordinates have changed + return (currentX != x || currentY != y); +} + +Common::List BadaGraphicsManager::getSupportedFormats() const { + logEntered(); + + Common::List res; + res.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0)); + res.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0)); + res.push_back(Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0)); + res.push_back(Graphics::PixelFormat::createFormatCLUT8()); + return res; +} + +bool BadaGraphicsManager::hasFeature(OSystem::Feature f) { + bool result = (f == OSystem::kFeatureFullscreenMode || + f == OSystem::kFeatureVirtualKeyboard || + OpenGLGraphicsManager::hasFeature(f)); + return result; +} + +void BadaGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) { + OpenGLGraphicsManager::setFeatureState(f, enable); +} + +void BadaGraphicsManager::setReady() { + _initState = false; +} + +void BadaGraphicsManager::updateScreen() { + if (_transactionMode == kTransactionNone) { + internUpdateScreen(); + } +} + +bool BadaGraphicsManager::loadEgl() { + logEntered(); + + EGLint numConfigs = 1; + EGLint eglConfigList[] = { + EGL_RED_SIZE, 5, + EGL_GREEN_SIZE, 6, + EGL_BLUE_SIZE, 5, + EGL_ALPHA_SIZE, 0, + EGL_DEPTH_SIZE, 8, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT, + EGL_NONE + }; + + EGLint eglContextList[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_NONE + }; + + eglBindAPI(EGL_OPENGL_ES_API); + + if (_eglDisplay) { + unloadGFXMode(); + } + + _eglDisplay = eglGetDisplay((EGLNativeDisplayType) EGL_DEFAULT_DISPLAY); + if (EGL_NO_DISPLAY == _eglDisplay) { + systemError("eglGetDisplay() failed"); + return false; + } + + if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) || + EGL_SUCCESS != eglGetError()) { + systemError("eglInitialize() failed"); + return false; + } + + if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList, + &_eglConfig, 1, &numConfigs) || + EGL_SUCCESS != eglGetError()) { + systemError("eglChooseConfig() failed"); + return false; + } + + if (!numConfigs) { + systemError("eglChooseConfig() failed. Matching config does not exist \n"); + return false; + } + + _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, + (EGLNativeWindowType)_appForm, NULL); + if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) { + systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE"); + return false; + } + + _eglContext = eglCreateContext(_eglDisplay, _eglConfig, + EGL_NO_CONTEXT, eglContextList); + if (EGL_NO_CONTEXT == _eglContext || + EGL_SUCCESS != eglGetError()) { + systemError("eglCreateContext() failed"); + return false; + } + + if (false == eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext) || + EGL_SUCCESS != eglGetError()) { + systemError("eglMakeCurrent() failed"); + return false; + } + + logLeaving(); + return true; +} + +bool BadaGraphicsManager::loadGFXMode() { + logEntered(); + + if (!loadEgl()) { + unloadGFXMode(); + return false; + } + + int x, y, width, height; + _appForm->GetBounds(x, y, width, height); + _videoMode.overlayWidth = _videoMode.hardwareWidth = width; + _videoMode.overlayHeight = _videoMode.hardwareHeight = height; + _videoMode.scaleFactor = 3; // for proportional sized cursor in the launcher + + AppLog("screen size: %dx%d", _videoMode.hardwareWidth, _videoMode.hardwareHeight); + return OpenGLGraphicsManager::loadGFXMode(); +} + +void BadaGraphicsManager::loadTextures() { + logEntered(); + + OpenGLGraphicsManager::loadTextures(); + + // prevent image skew in some games, see: + // http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall + // note: this did not solve the pixel border problem in refreshGameScreen() + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +} + +void BadaGraphicsManager::internUpdateScreen() { + if (!_initState) { + OpenGLGraphicsManager::internUpdateScreen(); + eglSwapBuffers(_eglDisplay, _eglSurface); + } else { + showSplash(); + } +} + +void BadaGraphicsManager::unloadGFXMode() { + logEntered(); + + if (EGL_NO_DISPLAY != _eglDisplay) { + eglMakeCurrent(_eglDisplay, NULL, NULL, NULL); + + if (_eglContext != EGL_NO_CONTEXT) { + eglDestroyContext(_eglDisplay, _eglContext); + _eglContext = EGL_NO_CONTEXT; + } + + if (_eglSurface != EGL_NO_SURFACE) { + eglDestroySurface(_eglDisplay, _eglSurface); + _eglSurface = EGL_NO_SURFACE; + } + + eglTerminate(_eglDisplay); + _eglDisplay = EGL_NO_DISPLAY; + } + + _eglConfig = NULL; + + OpenGLGraphicsManager::unloadGFXMode(); + logLeaving(); +} + +void BadaGraphicsManager::refreshGameScreen() { + if (_screenNeedsRedraw) + _screenDirtyRect = Common::Rect(0, 0, _screenData.w, _screenData.h); + + int x = _screenDirtyRect.left; + int y = _screenDirtyRect.top; + int w = _screenDirtyRect.width(); + int h = _screenDirtyRect.height(); + + if (_screenData.format.bytesPerPixel == 1) { + // Create a temporary RGB888 surface + int sw = w; + int sh = h; + + if (_videoMode.screenWidth == w && _videoMode.screenHeight == h) { + // The extra border prevents random pixels from appearing in the right and bottom + // screen column/row. Not sure whether this should be applied to opengl-graphics.cpp + sw = w + 1; + sh = h + 1; + } + + byte *surface = new byte[sw * sh * 3]; + + // Convert the paletted buffer to RGB888 + const byte *src = (byte *)_screenData.pixels + y * _screenData.pitch; + src += x * _screenData.format.bytesPerPixel; + byte *dst = surface; + for (int i = 0; i < h; i++) { + for (int j = 0; j < w; j++) { + dst[0] = _gamePalette[src[j] * 3]; + dst[1] = _gamePalette[src[j] * 3 + 1]; + dst[2] = _gamePalette[src[j] * 3 + 2]; + dst += 3; + } + src += _screenData.pitch; + } + + // Update the texture + _gameTexture->updateBuffer(surface, w * 3, x, y, sw, sh); + + // Free the temp surface + delete[] surface; + } else { + // Update the texture + _gameTexture->updateBuffer((byte *)_screenData.pixels + y * _screenData.pitch + + x * _screenData.format.bytesPerPixel, _screenData.pitch, x, y, w, h); + } + + _screenNeedsRedraw = false; + _screenDirtyRect = Common::Rect(); +} + +// display a simple splash screen until launcher is ready +void BadaGraphicsManager::showSplash() { + Canvas canvas; + canvas.Construct(); + canvas.SetBackgroundColor(Color::COLOR_BLACK); + canvas.Clear(); + + int x = _videoMode.hardwareWidth / 3; + int y = _videoMode.hardwareHeight / 3; + + Font *pFont = new Font(); + pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 55); + canvas.SetFont(*pFont); + canvas.SetForegroundColor(Color::COLOR_GREEN); + canvas.DrawText(Point(x, y), L"ScummVM"); + delete pFont; + + pFont = new Font(); + pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 35); + canvas.SetFont(*pFont); + canvas.SetForegroundColor(Color::COLOR_WHITE); + canvas.DrawText(Point(x + 70, y + 50), L"Loading ..."); + delete pFont; + + canvas.Show(); + +} diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h index 573965bc36..5e49419979 100644 --- a/backends/platform/bada/graphics.h +++ b/backends/platform/bada/graphics.h @@ -1,73 +1,73 @@ -/* 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 BADA_GRAPHICS_H -#define BADA_GRAPHICS_H - -#include -#include -#include -#include -#include -#include - -#include "config.h" -#include "backends/graphics/opengl/opengl-graphics.h" -#include "graphics/font.h" -#include "backends/platform/bada/form.h" - -using namespace Osp::Graphics; -using namespace Osp::Graphics::Opengl; -using namespace Osp::App; - -class BadaGraphicsManager : public OpenGLGraphicsManager { -public: - BadaGraphicsManager(BadaAppForm *appForm); - - Common::List getSupportedFormats() const; - bool hasFeature(OSystem::Feature f); - void updateScreen(); - void setFeatureState(OSystem::Feature f, bool enable); - void setReady(); - bool isReady() { return !_initState; } - const Graphics::Font *getFontOSD(); - bool moveMouse(int16 &x, int16 &y); - -private: - void internUpdateScreen(); - bool loadGFXMode(); - void loadTextures(); - void unloadGFXMode(); - void refreshGameScreen(); - void setInternalMousePosition(int x, int y) {} - void showSplash(); - - bool loadEgl(); - BadaAppForm *_appForm; - EGLDisplay _eglDisplay; - EGLSurface _eglSurface; - EGLConfig _eglConfig; - EGLContext _eglContext; - bool _initState; -}; - -#endif +/* 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 BADA_GRAPHICS_H +#define BADA_GRAPHICS_H + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "backends/graphics/opengl/opengl-graphics.h" +#include "graphics/font.h" +#include "backends/platform/bada/form.h" + +using namespace Osp::Graphics; +using namespace Osp::Graphics::Opengl; +using namespace Osp::App; + +class BadaGraphicsManager : public OpenGLGraphicsManager { +public: + BadaGraphicsManager(BadaAppForm *appForm); + + Common::List getSupportedFormats() const; + bool hasFeature(OSystem::Feature f); + void updateScreen(); + void setFeatureState(OSystem::Feature f, bool enable); + void setReady(); + bool isReady() { return !_initState; } + const Graphics::Font *getFontOSD(); + bool moveMouse(int16 &x, int16 &y); + +private: + void internUpdateScreen(); + bool loadGFXMode(); + void loadTextures(); + void unloadGFXMode(); + void refreshGameScreen(); + void setInternalMousePosition(int x, int y) {} + void showSplash(); + + bool loadEgl(); + BadaAppForm *_appForm; + EGLDisplay _eglDisplay; + EGLSurface _eglSurface; + EGLConfig _eglConfig; + EGLContext _eglContext; + bool _initState; +}; + +#endif diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp index 8eab3ee5d1..421c23b288 100644 --- a/backends/platform/bada/sscanf.cpp +++ b/backends/platform/bada/sscanf.cpp @@ -1,182 +1,182 @@ -/* 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 -#include -#include -#include -#include - -// -// simple sscanf replacement to match scummvm usage patterns -// - -bool scanInt(const char **in, va_list *ap, int max) { - while (**in && (**in == ' ' || **in == '0')) { - (*in)++; - } - - int *arg = va_arg(*ap, int*); - char *end; - long n = strtol(*in, &end, 0); - - bool err = false; - if (end == *in || (max > 0 && (end - *in) > max)) { - err = true; - } else { - *arg = (int)n; - *in = end; - } - return err; -} - -bool scanHex(const char **in, va_list *ap) { - unsigned *arg = va_arg(*ap, unsigned*); - char *end; - long n = strtol(*in, &end, 16); - if (end == *in) { - return true; - } - - *in = end; - *arg = (unsigned) n; - return false; -} - -bool scanString(const char **in, va_list *ap) { - char *arg = va_arg(*ap, char*); - while (**in && **in != ' ' && **in != '\n' && **in != '\t') { - *arg = **in; - arg++; - (*in)++; - } - *arg = '\0'; - (*in)++; - return false; -} - -bool scanStringUntil(const char **in, va_list *ap, char c_end) { - char *arg = va_arg(*ap, char*); - while (**in && **in != c_end) { - *arg = **in; - *arg++; - (*in)++; - } - *arg = 0; - (*in)++; - return false; -} - -bool scanChar(const char **in, va_list *ap) { - char *arg = va_arg(*ap, char*); - if (**in) { - *arg = **in; - (*in)++; - } - return false; -} - -extern "C" int simple_sscanf(const char *input, const char *format, ...) { - va_list ap; - int result = 0; - const char *next = input; - - va_start(ap, format); - - while (*format) { - if (*format == '%') { - format++; - int max = 0; - while (isdigit(*format)) { - max = (max * 10) + (*format - '0'); - format++; - } - - bool err = false; - switch (*format++) { - case 'c': - err = scanChar(&next, &ap); - break; - case 'd': - case 'u': - err = scanInt(&next, &ap, max); - break; - case 'x': - err = scanHex(&next, &ap); - break; - case 's': - err = scanString(&next, &ap); - break; - case '[': - // assume %[^c] - if ('^' != *format) { - err = true; - } else { - format++; - if (*format && *(format+1) == ']') { - err = scanStringUntil(&next, &ap, *format); - format += 2; - } else { - err = true; - } - } - break; - default: - err = true; - break; - } - - if (err) { - break; - } else { - result++; - } - } else if (*format++ != *next++) { - // match input - break; - } - } - - va_end(ap); - return result; -} - -#if defined(TEST) -int main(int argc, char *pArgv[]) { - int x,y,h; - char buffer[100]; - unsigned u; - char c; - strcpy(buffer, "hello"); - char *b = buffer; - - // strcpy(buffer, "in the buffer something"); - if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $", - "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", - &x, &y, &h, b, &u, &c) != 6) { - printf("Failed\n"); - } else { - printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c); - } - return 0; -} -#endif +/* 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 +#include +#include +#include +#include + +// +// simple sscanf replacement to match scummvm usage patterns +// + +bool scanInt(const char **in, va_list *ap, int max) { + while (**in && (**in == ' ' || **in == '0')) { + (*in)++; + } + + int *arg = va_arg(*ap, int*); + char *end; + long n = strtol(*in, &end, 0); + + bool err = false; + if (end == *in || (max > 0 && (end - *in) > max)) { + err = true; + } else { + *arg = (int)n; + *in = end; + } + return err; +} + +bool scanHex(const char **in, va_list *ap) { + unsigned *arg = va_arg(*ap, unsigned*); + char *end; + long n = strtol(*in, &end, 16); + if (end == *in) { + return true; + } + + *in = end; + *arg = (unsigned) n; + return false; +} + +bool scanString(const char **in, va_list *ap) { + char *arg = va_arg(*ap, char*); + while (**in && **in != ' ' && **in != '\n' && **in != '\t') { + *arg = **in; + arg++; + (*in)++; + } + *arg = '\0'; + (*in)++; + return false; +} + +bool scanStringUntil(const char **in, va_list *ap, char c_end) { + char *arg = va_arg(*ap, char*); + while (**in && **in != c_end) { + *arg = **in; + *arg++; + (*in)++; + } + *arg = 0; + (*in)++; + return false; +} + +bool scanChar(const char **in, va_list *ap) { + char *arg = va_arg(*ap, char*); + if (**in) { + *arg = **in; + (*in)++; + } + return false; +} + +extern "C" int simple_sscanf(const char *input, const char *format, ...) { + va_list ap; + int result = 0; + const char *next = input; + + va_start(ap, format); + + while (*format) { + if (*format == '%') { + format++; + int max = 0; + while (isdigit(*format)) { + max = (max * 10) + (*format - '0'); + format++; + } + + bool err = false; + switch (*format++) { + case 'c': + err = scanChar(&next, &ap); + break; + case 'd': + case 'u': + err = scanInt(&next, &ap, max); + break; + case 'x': + err = scanHex(&next, &ap); + break; + case 's': + err = scanString(&next, &ap); + break; + case '[': + // assume %[^c] + if ('^' != *format) { + err = true; + } else { + format++; + if (*format && *(format+1) == ']') { + err = scanStringUntil(&next, &ap, *format); + format += 2; + } else { + err = true; + } + } + break; + default: + err = true; + break; + } + + if (err) { + break; + } else { + result++; + } + } else if (*format++ != *next++) { + // match input + break; + } + } + + va_end(ap); + return result; +} + +#if defined(TEST) +int main(int argc, char *pArgv[]) { + int x,y,h; + char buffer[100]; + unsigned u; + char c; + strcpy(buffer, "hello"); + char *b = buffer; + + // strcpy(buffer, "in the buffer something"); + if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $", + "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", + &x, &y, &h, b, &u, &c) != 6) { + printf("Failed\n"); + } else { + printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c); + } + return 0; +} +#endif diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 4503b8fa6b..bc921e0dff 100644 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -1,499 +1,499 @@ -/* 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 - -#include "common/config-manager.h" -#include "common/file.h" -#include "engines/engine.h" -#include "graphics/font.h" -#include "graphics/fontman.h" -#include "graphics/fonts/bdf.h" -#include "backends/saves/default/default-saves.h" -#include "backends/events/default/default-events.h" -#include "backends/audiocd/default/default-audiocd.h" -#include "backends/mutex/mutex.h" -#include "backends/fs/fs-factory.h" -#include "backends/timer/bada/timer.h" - -#include "backends/platform/bada/form.h" -#include "backends/platform/bada/system.h" -#include "backends/platform/bada/graphics.h" -#include "backends/platform/bada/audio.h" - -using namespace Osp::Base; -using namespace Osp::Base::Runtime; -using namespace Osp::Ui::Controls; - -#define DEFAULT_CONFIG_FILE "/Home/scummvm.ini" -#define MUTEX_BUFFER_SIZE 5 - -// -// BadaFilesystemFactory -// -class BadaFilesystemFactory : public FilesystemFactory { - AbstractFSNode *makeRootFileNode() const; - AbstractFSNode *makeCurrentDirectoryFileNode() const; - AbstractFSNode *makeFileNodePath(const Common::String &path) const; -}; - -AbstractFSNode *BadaFilesystemFactory::makeRootFileNode() const { - return new BadaFilesystemNode("/"); -} - -AbstractFSNode *BadaFilesystemFactory::makeCurrentDirectoryFileNode() const { - return new BadaFilesystemNode("/Home"); -} - -AbstractFSNode *BadaFilesystemFactory::makeFileNodePath(const Common::String &path) const { - AppAssert(!path.empty()); - return new BadaFilesystemNode(path); -} - -// -// BadaSaveFileManager -// -struct BadaSaveFileManager : public DefaultSaveFileManager { - bool removeSavefile(const Common::String &filename); -}; - -bool BadaSaveFileManager::removeSavefile(const Common::String &filename) { - Common::String savePathName = getSavePath(); - - checkPath(Common::FSNode(savePathName)); - if (getError().getCode() != Common::kNoError) { - return false; - } - - // recreate FSNode since checkPath may have changed/created the directory - Common::FSNode savePath(savePathName); - Common::FSNode file = savePath.getChild(filename); - - String unicodeFileName; - StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName); - - switch (Osp::Io::File::Remove(unicodeFileName)) { - case E_SUCCESS: - return true; - - case E_ILLEGAL_ACCESS: - setError(Common::kWritePermissionDenied, "Search or write permission denied: " + - file.getName()); - break; - - default: - setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() + - "' does not exist or path is invalid"); - break; - } - - return false; -} - -// -// BadaMutexManager -// -struct BadaMutexManager : public MutexManager { - BadaMutexManager(); - ~BadaMutexManager(); - OSystem::MutexRef createMutex(); - void lockMutex(OSystem::MutexRef mutex); - void unlockMutex(OSystem::MutexRef mutex); - void deleteMutex(OSystem::MutexRef mutex); -private: - Mutex *buffer[MUTEX_BUFFER_SIZE]; -}; - -BadaMutexManager::BadaMutexManager() { - for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - buffer[i] = NULL; - } -} - -BadaMutexManager::~BadaMutexManager() { - for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - if (buffer[i] != NULL) { - delete buffer[i]; - } - } -} - -OSystem::MutexRef BadaMutexManager::createMutex() { - Mutex *mutex = new Mutex(); - mutex->Create(); - - for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - if (buffer[i] == NULL) { - buffer[i] = mutex; - break; - } - } - - return (OSystem::MutexRef) mutex; -} - -void BadaMutexManager::lockMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; - m->Acquire(); -} - -void BadaMutexManager::unlockMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; - m->Release(); -} - -void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; - - for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { - if (buffer[i] == m) { - buffer[i] = NULL; - } - } - - delete m; -} - -// -// BadaEventManager -// -struct BadaEventManager : public DefaultEventManager { - BadaEventManager(Common::EventSource *boss); - void init(); - int shouldQuit() const; -}; - -BadaEventManager::BadaEventManager(Common::EventSource *boss) : - DefaultEventManager(boss) { -} - -void BadaEventManager::init() { - DefaultEventManager::init(); - - // theme and vkbd should have now loaded - clear the splash screen - BadaSystem *system = (BadaSystem *)g_system; - BadaGraphicsManager *graphics = system->getGraphics(); - if (graphics) { - graphics->setReady(); - graphics->updateScreen(); - } -} - -int BadaEventManager::shouldQuit() const { - BadaSystem *system = (BadaSystem *)g_system; - return DefaultEventManager::shouldQuit() || system->isClosing(); -} - -// -// BadaSystem -// -BadaSystem::BadaSystem(BadaAppForm *appForm) : - _appForm(appForm), - _audioThread(0), - _epoch(0) { -} - -result BadaSystem::Construct(void) { - logEntered(); - - _fsFactory = new BadaFilesystemFactory(); - if (!_fsFactory) { - return E_OUT_OF_MEMORY; - } - - return E_SUCCESS; -} - -BadaSystem::~BadaSystem() { - logEntered(); -} - -result BadaSystem::initModules() { - logEntered(); - - _mutexManager = new BadaMutexManager(); - if (!_mutexManager) { - return E_OUT_OF_MEMORY; - } - - _timerManager = new BadaTimerManager(); - if (!_timerManager) { - return E_OUT_OF_MEMORY; - } - - _savefileManager = new BadaSaveFileManager(); - if (!_savefileManager) { - return E_OUT_OF_MEMORY; - } - - _graphicsManager = (GraphicsManager*) new BadaGraphicsManager(_appForm); - if (!_graphicsManager) { - return E_OUT_OF_MEMORY; - } - - // depends on _graphicsManager when ENABLE_VKEYBD enabled - _eventManager = new BadaEventManager(this); - if (!_eventManager) { - return E_OUT_OF_MEMORY; - } - - _audioThread = new AudioThread(); - if (!_audioThread) { - return E_OUT_OF_MEMORY; - } - - _mixer = _audioThread->Construct(this); - if (!_mixer) { - return E_OUT_OF_MEMORY; - } - - _audiocdManager = (AudioCDManager*) new DefaultAudioCDManager(); - if (!_audiocdManager) { - return E_OUT_OF_MEMORY; - } - - if (IsFailed(_audioThread->Start())) { - AppLog("Failed to start audio thread"); - return E_OUT_OF_MEMORY; - } - - logLeaving(); - return E_SUCCESS; -} - -void BadaSystem::initBackend() { - logEntered(); - - // allow translations and game .DAT files to be found - ConfMan.set("extrapath", "/Res"); - - // use the mobile device theme - ConfMan.set("gui_theme", "/Res/scummmobile"); - - // allow bada virtual keypad pack to be found - ConfMan.set("vkeybdpath", "/Res/vkeybd_bada"); - ConfMan.set("vkeybd_pack_name", "vkeybd_bada"); - - // set default save path to writable area - if (!ConfMan.hasKey("savepath")) { - ConfMan.set("savepath", "/Home/Share"); - } - - // default to no auto-save - if (!ConfMan.hasKey("autosave_period")) { - ConfMan.setInt("autosave_period", 0); - } - - ConfMan.registerDefault("fullscreen", true); - ConfMan.registerDefault("aspect_ratio", true); - ConfMan.setBool("confirm_exit", false); - - Osp::System::SystemTime::GetTicks(_epoch); - - if (E_SUCCESS != initModules()) { - AppLog("initModules failed"); - } else { - OSystem::initBackend(); - } - - // replace kBigGUIFont using the large font from the scummmobile theme - Common::File fontFile; - Common::String fileName = "/Res/scummmobile/helvB14-ASCII.fcc"; - BadaFilesystemNode file(fileName); - if (file.exists()) { - Common::SeekableReadStream *stream = file.createReadStream(); - if (stream) { - if (fontFile.open(stream, fileName)) { - Graphics::BdfFont *font = Graphics::BdfFont::loadFromCache(fontFile); - if (font) { - // use this font for the vkbd and on-screen messages - FontMan.setFont(Graphics::FontManager::kBigGUIFont, font); - } - } - } - } - - logLeaving(); -} - -void BadaSystem::destroyBackend() { - closeAudio(); - - delete _graphicsManager; - _graphicsManager = 0; - - delete _savefileManager; - _savefileManager = 0; - - delete _fsFactory; - _fsFactory = 0; - - delete _mixer; - _mixer = 0; - - delete _audiocdManager; - _audiocdManager = 0; - - delete _timerManager; - _timerManager = 0; - - delete _eventManager; - _eventManager = 0; - - delete _mutexManager; - _mutexManager = 0; -} - -bool BadaSystem::pollEvent(Common::Event &event) { - return _appForm->pollEvent(event); -} - -uint32 BadaSystem::getMillis() { - long long result, ticks = 0; - Osp::System::SystemTime::GetTicks(ticks); - result = ticks - _epoch; - return result; -} - -void BadaSystem::delayMillis(uint msecs) { - if (!_appForm->isClosing()) { - Thread::Sleep(msecs); - } -} - -void BadaSystem::updateScreen() { - if (_graphicsManager != NULL) { - _graphicsManager->updateScreen(); - } -} - -void BadaSystem::getTimeAndDate(TimeDate &td) const { - DateTime currentTime; - - if (E_SUCCESS == Osp::System::SystemTime::GetCurrentTime(currentTime)) { - td.tm_sec = currentTime.GetSecond(); - td.tm_min = currentTime.GetMinute(); - td.tm_hour = currentTime.GetHour(); - td.tm_mday = currentTime.GetDay(); - td.tm_mon = currentTime.GetMonth(); - td.tm_year = currentTime.GetYear(); - } -} - -void BadaSystem::fatalError() { - systemError("ScummVM: Fatal internal error."); -} - -void BadaSystem::exitSystem() { - if (_appForm) { - closeAudio(); - closeGraphics(); - _appForm->exitSystem(); - } -} - -void BadaSystem::logMessage(LogMessageType::Type type, const char *message) { - if (type == LogMessageType::kError) { - systemError(message); - } else { - AppLog(message); - } -} - -Common::SeekableReadStream *BadaSystem::createConfigReadStream() { - BadaFilesystemNode file(DEFAULT_CONFIG_FILE); - return file.createReadStream(); -} - -Common::WriteStream *BadaSystem::createConfigWriteStream() { - BadaFilesystemNode file(DEFAULT_CONFIG_FILE); - return file.createWriteStream(); -} - -void BadaSystem::closeAudio() { - if (_audioThread) { - _audioThread->Stop(); - _audioThread->Join(); - delete _audioThread; - _audioThread = 0; - } -} - -void BadaSystem::closeGraphics() { - if (_graphicsManager) { - delete _graphicsManager; - _graphicsManager = 0; - } -} - -void BadaSystem::setMute(bool on) { - if (_audioThread) { - _audioThread->setMute(on); - } -} - -int BadaSystem::setVolume(bool up, bool minMax) { - int level = -1; - if (_audioThread) { - level = _audioThread->setVolume(up, minMax); - } - return level; -} - -// -// create the ScummVM system -// -BadaAppForm *systemStart(Osp::App::Application *app) { - logEntered(); - - BadaAppForm *appForm = new BadaAppForm(); - if (!appForm) { - AppLog("Failed to create appForm"); - return NULL; - } - - if (E_SUCCESS != appForm->Construct() || - E_SUCCESS != app->GetAppFrame()->GetFrame()->AddControl(*appForm)) { - delete appForm; - AppLog("Failed to construct appForm"); - return NULL; - } - - return appForm; -} - -// -// display a fatal error notification -// -void systemError(const char *message) { - AppLog("Fatal system error: %s", message); - - ArrayList *args = new ArrayList(); - args->Construct(); - args->Add(*(new String(message))); - Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT_ERR, args); - - if (g_system) { - BadaSystem *system = (BadaSystem *)g_system; - system->exitSystem(); - } -} +/* 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 + +#include "common/config-manager.h" +#include "common/file.h" +#include "engines/engine.h" +#include "graphics/font.h" +#include "graphics/fontman.h" +#include "graphics/fonts/bdf.h" +#include "backends/saves/default/default-saves.h" +#include "backends/events/default/default-events.h" +#include "backends/audiocd/default/default-audiocd.h" +#include "backends/mutex/mutex.h" +#include "backends/fs/fs-factory.h" +#include "backends/timer/bada/timer.h" + +#include "backends/platform/bada/form.h" +#include "backends/platform/bada/system.h" +#include "backends/platform/bada/graphics.h" +#include "backends/platform/bada/audio.h" + +using namespace Osp::Base; +using namespace Osp::Base::Runtime; +using namespace Osp::Ui::Controls; + +#define DEFAULT_CONFIG_FILE "/Home/scummvm.ini" +#define MUTEX_BUFFER_SIZE 5 + +// +// BadaFilesystemFactory +// +class BadaFilesystemFactory : public FilesystemFactory { + AbstractFSNode *makeRootFileNode() const; + AbstractFSNode *makeCurrentDirectoryFileNode() const; + AbstractFSNode *makeFileNodePath(const Common::String &path) const; +}; + +AbstractFSNode *BadaFilesystemFactory::makeRootFileNode() const { + return new BadaFilesystemNode("/"); +} + +AbstractFSNode *BadaFilesystemFactory::makeCurrentDirectoryFileNode() const { + return new BadaFilesystemNode("/Home"); +} + +AbstractFSNode *BadaFilesystemFactory::makeFileNodePath(const Common::String &path) const { + AppAssert(!path.empty()); + return new BadaFilesystemNode(path); +} + +// +// BadaSaveFileManager +// +struct BadaSaveFileManager : public DefaultSaveFileManager { + bool removeSavefile(const Common::String &filename); +}; + +bool BadaSaveFileManager::removeSavefile(const Common::String &filename) { + Common::String savePathName = getSavePath(); + + checkPath(Common::FSNode(savePathName)); + if (getError().getCode() != Common::kNoError) { + return false; + } + + // recreate FSNode since checkPath may have changed/created the directory + Common::FSNode savePath(savePathName); + Common::FSNode file = savePath.getChild(filename); + + String unicodeFileName; + StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName); + + switch (Osp::Io::File::Remove(unicodeFileName)) { + case E_SUCCESS: + return true; + + case E_ILLEGAL_ACCESS: + setError(Common::kWritePermissionDenied, "Search or write permission denied: " + + file.getName()); + break; + + default: + setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() + + "' does not exist or path is invalid"); + break; + } + + return false; +} + +// +// BadaMutexManager +// +struct BadaMutexManager : public MutexManager { + BadaMutexManager(); + ~BadaMutexManager(); + OSystem::MutexRef createMutex(); + void lockMutex(OSystem::MutexRef mutex); + void unlockMutex(OSystem::MutexRef mutex); + void deleteMutex(OSystem::MutexRef mutex); +private: + Mutex *buffer[MUTEX_BUFFER_SIZE]; +}; + +BadaMutexManager::BadaMutexManager() { + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + buffer[i] = NULL; + } +} + +BadaMutexManager::~BadaMutexManager() { + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] != NULL) { + delete buffer[i]; + } + } +} + +OSystem::MutexRef BadaMutexManager::createMutex() { + Mutex *mutex = new Mutex(); + mutex->Create(); + + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] == NULL) { + buffer[i] = mutex; + break; + } + } + + return (OSystem::MutexRef) mutex; +} + +void BadaMutexManager::lockMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + m->Acquire(); +} + +void BadaMutexManager::unlockMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + m->Release(); +} + +void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) { + Mutex *m = (Mutex*)mutex; + + for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { + if (buffer[i] == m) { + buffer[i] = NULL; + } + } + + delete m; +} + +// +// BadaEventManager +// +struct BadaEventManager : public DefaultEventManager { + BadaEventManager(Common::EventSource *boss); + void init(); + int shouldQuit() const; +}; + +BadaEventManager::BadaEventManager(Common::EventSource *boss) : + DefaultEventManager(boss) { +} + +void BadaEventManager::init() { + DefaultEventManager::init(); + + // theme and vkbd should have now loaded - clear the splash screen + BadaSystem *system = (BadaSystem *)g_system; + BadaGraphicsManager *graphics = system->getGraphics(); + if (graphics) { + graphics->setReady(); + graphics->updateScreen(); + } +} + +int BadaEventManager::shouldQuit() const { + BadaSystem *system = (BadaSystem *)g_system; + return DefaultEventManager::shouldQuit() || system->isClosing(); +} + +// +// BadaSystem +// +BadaSystem::BadaSystem(BadaAppForm *appForm) : + _appForm(appForm), + _audioThread(0), + _epoch(0) { +} + +result BadaSystem::Construct(void) { + logEntered(); + + _fsFactory = new BadaFilesystemFactory(); + if (!_fsFactory) { + return E_OUT_OF_MEMORY; + } + + return E_SUCCESS; +} + +BadaSystem::~BadaSystem() { + logEntered(); +} + +result BadaSystem::initModules() { + logEntered(); + + _mutexManager = new BadaMutexManager(); + if (!_mutexManager) { + return E_OUT_OF_MEMORY; + } + + _timerManager = new BadaTimerManager(); + if (!_timerManager) { + return E_OUT_OF_MEMORY; + } + + _savefileManager = new BadaSaveFileManager(); + if (!_savefileManager) { + return E_OUT_OF_MEMORY; + } + + _graphicsManager = (GraphicsManager*) new BadaGraphicsManager(_appForm); + if (!_graphicsManager) { + return E_OUT_OF_MEMORY; + } + + // depends on _graphicsManager when ENABLE_VKEYBD enabled + _eventManager = new BadaEventManager(this); + if (!_eventManager) { + return E_OUT_OF_MEMORY; + } + + _audioThread = new AudioThread(); + if (!_audioThread) { + return E_OUT_OF_MEMORY; + } + + _mixer = _audioThread->Construct(this); + if (!_mixer) { + return E_OUT_OF_MEMORY; + } + + _audiocdManager = (AudioCDManager*) new DefaultAudioCDManager(); + if (!_audiocdManager) { + return E_OUT_OF_MEMORY; + } + + if (IsFailed(_audioThread->Start())) { + AppLog("Failed to start audio thread"); + return E_OUT_OF_MEMORY; + } + + logLeaving(); + return E_SUCCESS; +} + +void BadaSystem::initBackend() { + logEntered(); + + // allow translations and game .DAT files to be found + ConfMan.set("extrapath", "/Res"); + + // use the mobile device theme + ConfMan.set("gui_theme", "/Res/scummmobile"); + + // allow bada virtual keypad pack to be found + ConfMan.set("vkeybdpath", "/Res/vkeybd_bada"); + ConfMan.set("vkeybd_pack_name", "vkeybd_bada"); + + // set default save path to writable area + if (!ConfMan.hasKey("savepath")) { + ConfMan.set("savepath", "/Home/Share"); + } + + // default to no auto-save + if (!ConfMan.hasKey("autosave_period")) { + ConfMan.setInt("autosave_period", 0); + } + + ConfMan.registerDefault("fullscreen", true); + ConfMan.registerDefault("aspect_ratio", true); + ConfMan.setBool("confirm_exit", false); + + Osp::System::SystemTime::GetTicks(_epoch); + + if (E_SUCCESS != initModules()) { + AppLog("initModules failed"); + } else { + OSystem::initBackend(); + } + + // replace kBigGUIFont using the large font from the scummmobile theme + Common::File fontFile; + Common::String fileName = "/Res/scummmobile/helvB14-ASCII.fcc"; + BadaFilesystemNode file(fileName); + if (file.exists()) { + Common::SeekableReadStream *stream = file.createReadStream(); + if (stream) { + if (fontFile.open(stream, fileName)) { + Graphics::BdfFont *font = Graphics::BdfFont::loadFromCache(fontFile); + if (font) { + // use this font for the vkbd and on-screen messages + FontMan.setFont(Graphics::FontManager::kBigGUIFont, font); + } + } + } + } + + logLeaving(); +} + +void BadaSystem::destroyBackend() { + closeAudio(); + + delete _graphicsManager; + _graphicsManager = 0; + + delete _savefileManager; + _savefileManager = 0; + + delete _fsFactory; + _fsFactory = 0; + + delete _mixer; + _mixer = 0; + + delete _audiocdManager; + _audiocdManager = 0; + + delete _timerManager; + _timerManager = 0; + + delete _eventManager; + _eventManager = 0; + + delete _mutexManager; + _mutexManager = 0; +} + +bool BadaSystem::pollEvent(Common::Event &event) { + return _appForm->pollEvent(event); +} + +uint32 BadaSystem::getMillis() { + long long result, ticks = 0; + Osp::System::SystemTime::GetTicks(ticks); + result = ticks - _epoch; + return result; +} + +void BadaSystem::delayMillis(uint msecs) { + if (!_appForm->isClosing()) { + Thread::Sleep(msecs); + } +} + +void BadaSystem::updateScreen() { + if (_graphicsManager != NULL) { + _graphicsManager->updateScreen(); + } +} + +void BadaSystem::getTimeAndDate(TimeDate &td) const { + DateTime currentTime; + + if (E_SUCCESS == Osp::System::SystemTime::GetCurrentTime(currentTime)) { + td.tm_sec = currentTime.GetSecond(); + td.tm_min = currentTime.GetMinute(); + td.tm_hour = currentTime.GetHour(); + td.tm_mday = currentTime.GetDay(); + td.tm_mon = currentTime.GetMonth(); + td.tm_year = currentTime.GetYear(); + } +} + +void BadaSystem::fatalError() { + systemError("ScummVM: Fatal internal error."); +} + +void BadaSystem::exitSystem() { + if (_appForm) { + closeAudio(); + closeGraphics(); + _appForm->exitSystem(); + } +} + +void BadaSystem::logMessage(LogMessageType::Type type, const char *message) { + if (type == LogMessageType::kError) { + systemError(message); + } else { + AppLog(message); + } +} + +Common::SeekableReadStream *BadaSystem::createConfigReadStream() { + BadaFilesystemNode file(DEFAULT_CONFIG_FILE); + return file.createReadStream(); +} + +Common::WriteStream *BadaSystem::createConfigWriteStream() { + BadaFilesystemNode file(DEFAULT_CONFIG_FILE); + return file.createWriteStream(); +} + +void BadaSystem::closeAudio() { + if (_audioThread) { + _audioThread->Stop(); + _audioThread->Join(); + delete _audioThread; + _audioThread = 0; + } +} + +void BadaSystem::closeGraphics() { + if (_graphicsManager) { + delete _graphicsManager; + _graphicsManager = 0; + } +} + +void BadaSystem::setMute(bool on) { + if (_audioThread) { + _audioThread->setMute(on); + } +} + +int BadaSystem::setVolume(bool up, bool minMax) { + int level = -1; + if (_audioThread) { + level = _audioThread->setVolume(up, minMax); + } + return level; +} + +// +// create the ScummVM system +// +BadaAppForm *systemStart(Osp::App::Application *app) { + logEntered(); + + BadaAppForm *appForm = new BadaAppForm(); + if (!appForm) { + AppLog("Failed to create appForm"); + return NULL; + } + + if (E_SUCCESS != appForm->Construct() || + E_SUCCESS != app->GetAppFrame()->GetFrame()->AddControl(*appForm)) { + delete appForm; + AppLog("Failed to construct appForm"); + return NULL; + } + + return appForm; +} + +// +// display a fatal error notification +// +void systemError(const char *message) { + AppLog("Fatal system error: %s", message); + + ArrayList *args = new ArrayList(); + args->Construct(); + args->Add(*(new String(message))); + Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT_ERR, args); + + if (g_system) { + BadaSystem *system = (BadaSystem *)g_system; + system->exitSystem(); + } +} -- cgit v1.2.3 From 58ab4cdab79c2f55a96f373f948d47fabded68b4 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Mon, 22 Aug 2011 09:46:30 +0200 Subject: BADA: Strip trailing whitespace --- backends/platform/bada/README.TXT | 8 +++--- backends/platform/bada/application.cpp | 6 ++--- backends/platform/bada/application.h | 2 +- backends/platform/bada/audio.cpp | 4 +-- backends/platform/bada/audio.h | 4 +-- backends/platform/bada/bada.mk | 2 +- backends/platform/bada/form.cpp | 48 +++++++++++++++++----------------- backends/platform/bada/form.h | 36 ++++++++++++------------- backends/platform/bada/fs.cpp | 32 +++++++++++------------ backends/platform/bada/graphics.cpp | 22 ++++++++-------- backends/platform/bada/missing.cpp | 2 +- backends/platform/bada/portdefs.h | 4 +-- backends/platform/bada/sscanf.cpp | 4 +-- backends/platform/bada/system.cpp | 8 +++--- backends/platform/bada/system.h | 4 +-- 15 files changed, 93 insertions(+), 93 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT index 38d9fd1217..ca6f8f245a 100644 --- a/backends/platform/bada/README.TXT +++ b/backends/platform/bada/README.TXT @@ -41,7 +41,7 @@ Build instructions: for instructions on how to obtain these modules 3.1 For Target-Release configure ogg and mad with: - + ./configure --host=arm-samsung-nucleuseabi --disable-shared when building vorbis and flac: @@ -73,13 +73,13 @@ Build instructions: 5. Build the front end application using BADA-Ide: - Copy the scummvm/dists/bada folder into a clean directory - outside of the scummvm package. Start the BADA IDE then + Copy the scummvm/dists/bada folder into a clean directory + outside of the scummvm package. Start the BADA IDE then choose this folder as the eclipse workspace. Click Project / Build. Links: A short turorial on implementing OpenGL ES 1.1 in BADA: - http://forums.badadev.com/viewtopic.php?f=7&t=208 + http://forums.badadev.com/viewtopic.php?f=7&t=208 diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index 7e13006fd1..a287fa6352 100644 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -51,13 +51,13 @@ bool BadaScummVM::OnAppInitializing(AppRegistry &appRegistry) { return (_appForm != NULL); } -bool BadaScummVM::OnAppTerminating(AppRegistry &appRegistry, +bool BadaScummVM::OnAppTerminating(AppRegistry &appRegistry, bool forcedTermination) { logEntered(); return true; } -void BadaScummVM::OnUserEventReceivedN(RequestId requestId, +void BadaScummVM::OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList *args) { logEntered(); @@ -73,7 +73,7 @@ void BadaScummVM::OnUserEventReceivedN(RequestId requestId, if (!message) { message = new String("Unknown error"); } - + MessageBox messageBox; messageBox.Construct(L"Oops...", *message, MSGBOX_STYLE_OK); int modalResult; diff --git a/backends/platform/bada/application.h b/backends/platform/bada/application.h index f2823c43c3..2b0d37f1ef 100644 --- a/backends/platform/bada/application.h +++ b/backends/platform/bada/application.h @@ -37,7 +37,7 @@ public: ~BadaScummVM(); static Osp::App::Application *createInstance(void); - + bool OnAppInitializing(Osp::App::AppRegistry &appRegistry); bool OnAppTerminating(Osp::App::AppRegistry &appRegistry, bool forcedTermination = false); void OnForeground(void); diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index 7c20f57f10..cfa6418e08 100644 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -36,7 +36,7 @@ // sound level pre-sets const int levels[] = {0, 1, 10, 45, 70, 99}; -AudioThread::AudioThread() : +AudioThread::AudioThread() : _mixer(0), _timer(0), _audioOut(0), @@ -254,7 +254,7 @@ void AudioThread::OnTimerExpired(Timer &timer) { if (_ready && _playing == -1) { OnAudioOutBufferEndReached(*_audioOut); } - + _timer->Start(_interval); } diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h index a6debef5a8..72c537a942 100644 --- a/backends/platform/bada/audio.h +++ b/backends/platform/bada/audio.h @@ -42,7 +42,7 @@ using namespace Osp::Io; #define NUM_AUDIO_BUFFERS 2 class AudioThread: public Osp::Media::IAudioOutEventListener, - public Osp::Base::Runtime::ITimerEventListener, + public Osp::Base::Runtime::ITimerEventListener, public Osp::Base::Runtime::Thread { public: AudioThread(void); @@ -60,7 +60,7 @@ public: void OnAudioOutReleased(Osp::Media::AudioOut &src); void OnAudioOutBufferEndReached(Osp::Media::AudioOut &src); void OnTimerExpired(Timer &timer); - + private: Audio::MixerImpl *_mixer; Osp::Base::Runtime::Timer *_timer; diff --git a/backends/platform/bada/bada.mk b/backends/platform/bada/bada.mk index fe90af4f8f..7c72d7752b 100644 --- a/backends/platform/bada/bada.mk +++ b/backends/platform/bada/bada.mk @@ -1,5 +1,5 @@ # Bada specific modules are built under eclipse $(EXECUTABLE): $(OBJS) - rm -f $@ + rm -f $@ ar Tru $@ $(OBJS) diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 418cdc482b..6163053c96 100644 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -39,7 +39,7 @@ using namespace Osp::Ui::Controls; // cursor to be positioned at the top of the screen #define MIN_TOUCH_Y 10 -// block for up to 2.5 seconds during shutdown to +// block for up to 2.5 seconds during shutdown to // allow the game thread to exit gracefully. #define EXIT_SLEEP_STEP 10 #define EXIT_SLEEP 250 @@ -47,8 +47,8 @@ using namespace Osp::Ui::Controls; // // BadaAppForm // -BadaAppForm::BadaAppForm() : - _gameThread(0), +BadaAppForm::BadaAppForm() : + _gameThread(0), _state(InitState), _buttonState(LeftButton), _shortcut(SetVolume) { @@ -67,7 +67,7 @@ result BadaAppForm::Construct() { badaSystem = new BadaSystem(this); r = badaSystem != NULL ? E_SUCCESS : E_OUT_OF_MEMORY; - + if (!IsFailed(r)) { r = badaSystem->Construct(); } @@ -105,7 +105,7 @@ BadaAppForm::~BadaAppForm() { _gameThread->Stop(); if (_state != ErrorState) { _gameThread->Join(); - } + } delete _gameThread; _gameThread = NULL; @@ -205,13 +205,13 @@ void BadaAppForm::pushEvent(Common::EventType type, BadaSystem *system = (BadaSystem *)g_system; BadaGraphicsManager *graphics = system->getGraphics(); if (graphics) { - // graphics could be NULL at startup or when + // graphics could be NULL at startup or when // displaying the system error screen Common::Event e; e.type = type; e.mouse.x = currentPosition.x; e.mouse.y = currentPosition.y > MIN_TOUCH_Y ? currentPosition.y : 1; - + bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y); _eventQueueLock->Acquire(); @@ -245,7 +245,7 @@ void BadaAppForm::pushKey(Common::KeyCode keycode) { _eventQueueLock->Release(); } -void BadaAppForm::OnOrientationChanged(const Control &source, +void BadaAppForm::OnOrientationChanged(const Control &source, OrientationStatus orientationStatus) { logEntered(); if (_state == InitState) { @@ -334,8 +334,8 @@ void BadaAppForm::showKeypad() { pushKey(Common::KEYCODE_F7); } -void BadaAppForm::OnTouchDoublePressed(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchDoublePressed(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, @@ -345,32 +345,32 @@ void BadaAppForm::OnTouchDoublePressed(const Control &source, } } -void BadaAppForm::OnTouchFocusIn(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchFocusIn(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { } -void BadaAppForm::OnTouchFocusOut(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchFocusOut(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { } -void BadaAppForm::OnTouchLongPressed(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchLongPressed(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { if (_buttonState != LeftButton) { pushKey(Common::KEYCODE_RETURN); } } -void BadaAppForm::OnTouchMoved(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchMoved(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { pushEvent(Common::EVENT_MOUSEMOVE, currentPosition); } -void BadaAppForm::OnTouchPressed(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchPressed(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, @@ -378,8 +378,8 @@ void BadaAppForm::OnTouchPressed(const Control &source, } } -void BadaAppForm::OnTouchReleased(const Control &source, - const Point ¤tPosition, +void BadaAppForm::OnTouchReleased(const Control &source, + const Point ¤tPosition, const TouchEventInfo &touchInfo) { if (_buttonState != MoveOnly) { pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, @@ -434,7 +434,7 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { break; case EscapeKey: - pushKey(Common::KEYCODE_ESCAPE); + pushKey(Common::KEYCODE_ESCAPE); break; case GameMenu: @@ -446,7 +446,7 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { break; default: - setVolume(false, false); + setVolume(false, false); break; } break; diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index ec04f19559..09ce941a7b 100644 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -58,34 +58,34 @@ private: Object *Run(); result OnInitializing(void); result OnDraw(void); - void OnOrientationChanged(const Osp::Ui::Control &source, + void OnOrientationChanged(const Osp::Ui::Control &source, Osp::Ui::OrientationStatus orientationStatus); - void OnTouchDoublePressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchDoublePressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchFocusIn(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchFocusIn(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchFocusOut(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchFocusOut(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchLongPressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchLongPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchMoved(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchMoved(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchPressed(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchPressed(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnTouchReleased(const Osp::Ui::Control &source, - const Osp::Graphics::Point ¤tPosition, + void OnTouchReleased(const Osp::Ui::Control &source, + const Osp::Graphics::Point ¤tPosition, const Osp::Ui::TouchEventInfo &touchInfo); - void OnKeyLongPressed(const Osp::Ui::Control &source, + void OnKeyLongPressed(const Osp::Ui::Control &source, Osp::Ui::KeyCode keyCode); - void OnKeyPressed(const Osp::Ui::Control &source, + void OnKeyPressed(const Osp::Ui::Control &source, Osp::Ui::KeyCode keyCode); - void OnKeyReleased(const Osp::Ui::Control &source, + void OnKeyReleased(const Osp::Ui::Control &source, Osp::Ui::KeyCode keyCode); void pushEvent(Common::EventType type, diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 4203545277..8e3c4f0f7c 100644 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -35,7 +35,7 @@ #define PATH_MEDIA "/Media" #define PATH_CARD "/Storagecard" #define PATH_CARD_MEDIA "/Storagecard/Media" - + // // BadaFileStream // @@ -68,7 +68,7 @@ private: File *file; }; -BadaFileStream::BadaFileStream(File *ioFile, bool writeMode) : +BadaFileStream::BadaFileStream(File *ioFile, bool writeMode) : bufferIndex(0), bufferLength(0), writeMode(writeMode), @@ -178,7 +178,7 @@ uint32 BadaFileStream::read(void *ptr, uint32 len) { memcpy((byte*)ptr, &buffer[bufferIndex], available); uint32 remaining = len - available; result = available; - + if (remaining) { result += file->Read(((byte*)ptr) + available, remaining); } @@ -231,7 +231,7 @@ BadaFileStream *BadaFileStream::makeFromPath(const String &path, bool writeMode) if (r == E_SUCCESS) { return new BadaFileStream(ioFile, writeMode); } - + AppLog("Failed to open file"); delete ioFile; return 0; @@ -244,7 +244,7 @@ Common::String fromString(const Osp::Base::String &in) { ByteBuffer *buf = StringUtil::StringToUtf8N(in); Common::String result((const char*)buf->GetPointer()); delete buf; - + return result; } @@ -300,8 +300,8 @@ bool BadaFilesystemNode::isDirectory() const { bool BadaFilesystemNode::isWritable() const { bool result = (_isValid && !_isVirtualDir && !_attr.IsDirectory() && !_attr.IsReadOnly()); - if (_path == PATH_HOME || - _path == PATH_HOME_EXT || + if (_path == PATH_HOME || + _path == PATH_HOME_EXT || _path == PATH_HOME_SHARE || _path == PATH_HOME_SHARE2) { result = true; @@ -338,11 +338,11 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, myList.push_back(new BadaFilesystemNode(PATH_HOME_SHARE2)); } } - + if (!result) { DirEnumerator *pDirEnum = 0; Directory *pDir = new Directory(); - + // open directory if (IsFailed(pDir->Construct(_unicodePath))) { AppLog("Failed to open directory"); @@ -352,24 +352,24 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, if (pDirEnum) { result = true; } - + // loop through all directory entries while (pDirEnum && pDirEnum->MoveNext() == E_SUCCESS) { DirEntry dirEntry = pDirEnum->GetCurrentDirEntry(); - + // skip 'invisible' files if necessary Osp::Base::String fileName = dirEntry.GetName(); - + if (fileName[0] == '.' && !hidden) { continue; } - + // skip '.' and '..' to avoid cycles if ((fileName[0] == '.' && fileName[1] == 0) || (fileName[0] == '.' && fileName[1] == '.')) { continue; } - + // Honor the chosen mode if ((mode == Common::FSNode::kListFilesOnly && dirEntry.IsDirectory()) || (mode == Common::FSNode::kListDirectoriesOnly && !dirEntry.IsDirectory())) { @@ -378,12 +378,12 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, myList.push_back(new BadaFilesystemNode(_path, fromString(fileName))); } } - + // cleanup if (pDirEnum) { delete pDirEnum; } - + // close the opened directory if (pDir) { delete pDir; diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp index 7c4fc03ac1..4ab90a633f 100644 --- a/backends/platform/bada/graphics.cpp +++ b/backends/platform/bada/graphics.cpp @@ -75,7 +75,7 @@ Common::List BadaGraphicsManager::getSupportedFormats() c } bool BadaGraphicsManager::hasFeature(OSystem::Feature f) { - bool result = (f == OSystem::kFeatureFullscreenMode || + bool result = (f == OSystem::kFeatureFullscreenMode || f == OSystem::kFeatureVirtualKeyboard || OpenGLGraphicsManager::hasFeature(f)); return result; @@ -111,7 +111,7 @@ bool BadaGraphicsManager::loadEgl() { }; EGLint eglContextList[] = { - EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_CONTEXT_CLIENT_VERSION, 1, EGL_NONE }; @@ -126,14 +126,14 @@ bool BadaGraphicsManager::loadEgl() { systemError("eglGetDisplay() failed"); return false; } - - if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) || + + if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) || EGL_SUCCESS != eglGetError()) { systemError("eglInitialize() failed"); return false; } - if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList, + if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList, &_eglConfig, 1, &numConfigs) || EGL_SUCCESS != eglGetError()) { systemError("eglChooseConfig() failed"); @@ -145,14 +145,14 @@ bool BadaGraphicsManager::loadEgl() { return false; } - _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, + _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig, (EGLNativeWindowType)_appForm, NULL); if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) { systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE"); return false; } - - _eglContext = eglCreateContext(_eglDisplay, _eglConfig, + + _eglContext = eglCreateContext(_eglDisplay, _eglConfig, EGL_NO_CONTEXT, eglContextList); if (EGL_NO_CONTEXT == _eglContext || EGL_SUCCESS != eglGetError()) { @@ -227,7 +227,7 @@ void BadaGraphicsManager::unloadGFXMode() { eglTerminate(_eglDisplay); _eglDisplay = EGL_NO_DISPLAY; } - + _eglConfig = NULL; OpenGLGraphicsManager::unloadGFXMode(); @@ -292,7 +292,7 @@ void BadaGraphicsManager::showSplash() { canvas.Construct(); canvas.SetBackgroundColor(Color::COLOR_BLACK); canvas.Clear(); - + int x = _videoMode.hardwareWidth / 3; int y = _videoMode.hardwareHeight / 3; @@ -309,7 +309,7 @@ void BadaGraphicsManager::showSplash() { canvas.SetForegroundColor(Color::COLOR_WHITE); canvas.DrawText(Point(x + 70, y + 50), L"Loading ..."); delete pFont; - + canvas.Show(); } diff --git a/backends/platform/bada/missing.cpp b/backends/platform/bada/missing.cpp index 1656bac9ef..a5433ec61a 100644 --- a/backends/platform/bada/missing.cpp +++ b/backends/platform/bada/missing.cpp @@ -41,7 +41,7 @@ C_LINKAGE_BEGIN int __errno; // for overridden method in saves/default/default-saves.cpp -void __assert_func(const char *file, int line, +void __assert_func(const char *file, int line, const char *func, const char *err) { char buffer[BUF_SIZE]; snprintf(buffer, sizeof(buffer), "%s %d %s %s", file, line, func, err); diff --git a/backends/platform/bada/portdefs.h b/backends/platform/bada/portdefs.h index c96d6646b5..e85d578678 100644 --- a/backends/platform/bada/portdefs.h +++ b/backends/platform/bada/portdefs.h @@ -37,7 +37,7 @@ #include // causes a link error when building c programs #define C_LINKAGE_BEGIN extern "C" { #define C_LINKAGE_END } -#else +#else #define C_LINKAGE_BEGIN #define C_LINKAGE_END #endif @@ -50,7 +50,7 @@ C_LINKAGE_BEGIN #define fseeko fseek #define ftello ftell -// overcome use of fprintf since bada/newlib (1.2) does not +// overcome use of fprintf since bada/newlib (1.2) does not // support stderr/stdout (undefined reference to `_impure_ptr'). void stderr_fprintf(void*, const char *format, ...); diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp index 421c23b288..4ef964b47e 100644 --- a/backends/platform/bada/sscanf.cpp +++ b/backends/platform/bada/sscanf.cpp @@ -155,7 +155,7 @@ extern "C" int simple_sscanf(const char *input, const char *format, ...) { break; } } - + va_end(ap); return result; } @@ -171,7 +171,7 @@ int main(int argc, char *pArgv[]) { // strcpy(buffer, "in the buffer something"); if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $", - "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", + "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", &x, &y, &h, b, &u, &c) != 6) { printf("Failed\n"); } else { diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index bc921e0dff..37d7028687 100644 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -96,7 +96,7 @@ bool BadaSaveFileManager::removeSavefile(const Common::String &filename) { return true; case E_ILLEGAL_ACCESS: - setError(Common::kWritePermissionDenied, "Search or write permission denied: " + + setError(Common::kWritePermissionDenied, "Search or write permission denied: " + file.getName()); break; @@ -206,9 +206,9 @@ int BadaEventManager::shouldQuit() const { // // BadaSystem // -BadaSystem::BadaSystem(BadaAppForm *appForm) : +BadaSystem::BadaSystem(BadaAppForm *appForm) : _appForm(appForm), - _audioThread(0), + _audioThread(0), _epoch(0) { } @@ -251,7 +251,7 @@ result BadaSystem::initModules() { } // depends on _graphicsManager when ENABLE_VKEYBD enabled - _eventManager = new BadaEventManager(this); + _eventManager = new BadaEventManager(this); if (!_eventManager) { return E_OUT_OF_MEMORY; } diff --git a/backends/platform/bada/system.h b/backends/platform/bada/system.h index 7b5b9d87de..a091f952e5 100644 --- a/backends/platform/bada/system.h +++ b/backends/platform/bada/system.h @@ -58,7 +58,7 @@ void systemError(const char *message); // // BadaSystem // -class BadaSystem : public ModularBackend, +class BadaSystem : public ModularBackend, Common::EventSource { public: BadaSystem(BadaAppForm *appForm); @@ -92,7 +92,7 @@ private: Common::EventSource *getDefaultEventSource() {return this;} Common::SeekableReadStream *createConfigReadStream(); Common::WriteStream *createConfigWriteStream(); - + BadaAppForm *_appForm; AudioThread *_audioThread; long long _epoch; -- cgit v1.2.3 From 775f26555499ff1d8a1e0e6c479042b6b81304e3 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Wed, 29 Jun 2011 15:41:32 -0500 Subject: MAEMO: removing obsolete patch --- backends/platform/maemo/scummvm-1.1.0-maemo.patch | 1371 --------------------- 1 file changed, 1371 deletions(-) delete mode 100644 backends/platform/maemo/scummvm-1.1.0-maemo.patch (limited to 'backends/platform') diff --git a/backends/platform/maemo/scummvm-1.1.0-maemo.patch b/backends/platform/maemo/scummvm-1.1.0-maemo.patch deleted file mode 100644 index 49b14120b5..0000000000 --- a/backends/platform/maemo/scummvm-1.1.0-maemo.patch +++ /dev/null @@ -1,1371 +0,0 @@ -diff -Naur scummvm-1.1.orig/debian/changelog scummvm-1.1/debian/changelog ---- scummvm-1.1.orig/debian/changelog 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/changelog 2010-03-24 15:40:44.000000000 +0100 -@@ -0,0 +1,211 @@ -+scummvm (1.1.0~pre) unstable; urgency=low -+ -+ * 1.1.0 testing release -+ * cleanup for N900 (new firmwares need less hacks) -+ * unified binary for all devices now have datafiles included (~2MB) -+ -+ -- Frantisek Dufka Wed, 24 Mar 2010 01:48:05 +0100 -+scummvm (1.0.0-4) unstable; urgency=low -+ -+ * datadir optified (/usr/share/scummvm -> /opt/scummvm/share) -+ * added engine files to datadir -+ * Application Manager icon enlarged to 48x48 -+ -+ -- Frantisek Dufka Thu, 17 Dec 2009 13:54:51 +0100 -+scummvm (1.0.0-3) unstable; urgency=low -+ -+ * disable taskmanager topleft button in fullscreen mode (N900) -+ * map shift+click to right button click -+ * mam ctrl+click to mouse move (no click) -+ * set fullscreen window as _HILDON_NON_COMPOSITED_WINDOW (N900) -+ -+ -- Frantisek Dufka Tue, 15 Dec 2009 23:12:51 +0100 -+scummvm (1.0.0-2) unstable; urgency=low -+ -+ * grab N900 volume keys -+ * map Shift+Backspace to Escape key, shift+enter to Menu key (N900) -+ * optified = main binary moved to /opt/scummvm/bin/scummvm -+ -+ -- Frantisek Dufka Sat, 12 Dec 2009 23:39:04 +0100 -+scummvm (1.0.0-1) unstable; urgency=low -+ -+ * -mcpu=arm1136j-s -mfpu=vfp -mfloat-abi=softfp breaks Gobliins, reverted -+ -+ -- Frantisek Dufka Wed, 2 Dec 2009 10:25:11 +0100 -+scummvm (1.0.0) unstable; urgency=low -+ -+ * upstream 1.0 release -+ * Initial support for N900 -+ -+ -- Frantisek Dufka Fri, 6 Nov 2009 22:02:25 +0100 -+scummvm (1.0.0~rc1-3) unstable; urgency=low -+ -+ * updated to 1.0 branch revision 43999 to fix bugs (Cruise pause, ..) -+ * Cruise for Corpse mapping added to zoom+ for N800/770 -+ -+ -- Frantisek Dufka Mon, 7 Sep 2009 09:03:13 +0200 -+scummvm (1.0.0~rc1-2) unstable; urgency=low -+ -+ * Cruise for Corpse key bindings added -+ - menu key for menu, zoom-=right click, zoom+=context menu -+ -+ -- Frantisek Dufka Wed, 2 Sep 2009 23:03:59 +0200 -+scummvm (1.0.0~rc1-1) unstable; urgency=low -+ -+ * Discworld key bindings added - menu key for menu, zoom-=right click, zoom+=Enter/y key -+ -+ -- Frantisek Dufka Wed, 2 Sep 2009 09:53:08 +0200 -+scummvm (1.0.0~rc1) unstable; urgency=low -+ -+ * upstream 1.0.0rc1 release -+ -+ -- Frantisek Dufka Thu, 20 Aug 2009 23:33:59 +0200 -+scummvm (0.13.1) unstable; urgency=low -+ -+ * upstream 0.13.1 release -+ -+ -- Frantisek Dufka Sat, 18 Apr 2009 22:40:42 +0200 -+scummvm (0.13.0-2) unstable; urgency=low -+ -+ * dbus_service.patch is incomplete - needs also install line in debian/rules -+ -+ -- Frantisek Dufka Fri, 27 Feb 2009 20:37:29 +0100 -+scummvm (0.13.0-1) unstable; urgency=low -+ -+ * fix crash in task switcher caption code when .scummvmrc had fullscreen value set -+ * enabled also dbus_service.patch for home key switching back (not needed in OS < 2008) -+ -+ -- Frantisek Dufka Fri, 27 Feb 2009 09:29:01 +0100 -+scummvm (0.13.0) unstable; urgency=low -+ -+ * upstream 0.13.0 release -+ * Feeble Files mapping -+ * task switcher item name patch from mikkov -+ -+ -- Frantisek Dufka Wed, 18 Feb 2009 21:52:33 +0100 -+scummvm (0.11.99-4) unstable; urgency=low -+ -+ * Maemo extras-devel test version -+ - maemo-taskswitcher.patch: title shown right from the beginning -+ and title not fixed to "ScummVM" only -+ - dbus_service.patch: modify scummvm.desktop, scummvm.wrapper and -+ scummvm.service to make switching application automatically back -+ via second home key long press to work -+ -+ -- Mikko Vartiainen Thu, 03 Jan 2009 01:59:52 +0200 -+scummvm (0.11.99-3) unstable; urgency=low -+ -+ * Maemo extras-devel test version -+ - maemo-taskswitcher.patch -+ -+ -- Mikko Vartiainen Thu, 01 Jan 2009 13:13:13 +0200 -+scummvm (0.11.99-2) unstable; urgency=low -+ -+ * Maemo extras-devel test version -+ - keeping version below 0.12.0 -+ - not in user/ category -+ -+ -- Mikko Vartiainen Thu, 01 Jan 2009 02:04:14 +0200 -+scummvm (0.12.0) unstable; urgency=low -+ -+ * upstream 0.12.0 release -+ * update description -+ -+ -- Frantisek Dufka Mon, 25 Aug 2008 21:47:41 +0200 -+scummvm (0.11.99) unstable; urgency=low -+ -+ * upstream 0.12.0 testing pre-release -+ * big icons added for OS2008 menu -+ -+ -- Frantisek Dufka Fri, 22 Aug 2008 08:20:48 +0200 -+scummvm (0.11.1) unstable; urgency=low -+ -+ * upstream 0.11.1 release -+ * mapping for N810: zoom+ = menu for all games (except FW) -+ -+ -- Frantisek Dufka Sat, 23 Feb 2008 20:41:37 +0100 -+scummvm (0.11.0-2) unstable; urgency=low -+ -+ * mapping for N800/770: zoom+ = y, zoom- = 1 (all games except FW) -+ this fixes save dialog in BS1 and also allows to exit some games via 'y' -+ * mapping for N810: zoom- = rightclick for all games -+ * updated to revision 30849 from 0.11 branch (some bugfixes for 0.11.1) -+ -+ -- Frantisek Dufka Mon, 11 Feb 2008 22:22:48 +0100 -+scummvm (0.11.0-1) unstable; urgency=low -+ -+ * theme files added back -+ * SWORD2,SAGA - added zoom keys =1/2 for saved games -+ * different mapping for N810 rightclick=zoom-,menu=zoom+ (currently only in LURE) -+ * added NEWS README COPYRIGHT do doc dir as per scummvm project guidelines -+ -+ -- Frantisek Dufka Sun, 13 Jan 2008 22:58:41 +0100 -+scummvm (0.11.0-0) unstable; urgency=low -+ -+ * upstream 0.11 release -+ -+ -- Frantisek Dufka Sat, 12 Jan 2008 22:26:34 +0100 -+scummvm (0.10.0-5) unstable; urgency=low -+ -+ * fixed for chinook, menu selection postinst script added -+ -+ -- Frantisek Dufka Thu, 25 Oct 2007 09:56:32 +0200 -+scummvm (0.10.0-4) unstable; urgency=low -+ -+ * AGI - added pred.dic to DATA_PATH (=/usr/share/scummvm) to enable -+ predictive input -+ -+ -- Frantisek Dufka Tue, 28 Aug 2007 09:58:29 +0200 -+scummvm (0.10.0-3) unstable; urgency=low -+ -+ * SCUMM - added mapping also for key up events (may fix right button in FT?) -+ * SWORD2 - added right button press mapping (not tested) -+ -+ -- Frantisek Dufka Mon, 20 Aug 2007 22:39:07 +0200 -+scummvm (0.10.0-2) unstable; urgency=low -+ -+ * Future Wars - add mapping for left/up/down/right,zoom +/- -+ * fix SDL backend to set mouse position on button down event -+ as we may not have mousemove events with touchscreen -+ -+ -- Frantisek Dufka Fri, 13 Jul 2007 09:56:37 +0200 -+scummvm (0.10.0-1) unstable; urgency=low -+ -+ * mapped F10 in Future Wars to menu key -+ -+ -- Frantisek Dufka Wed, 11 Jul 2007 22:20:00 +0200 -+scummvm (0.10.0) unstable; urgency=low -+ -+ * upstream 0.10 release, enabled FLAC too -+ -+ -- Frantisek Dufka Wed, 4 Jul 2007 12:48:48 +0200 -+scummvm (0.9.1-1) unstable; urgency=low -+ -+ * 0.9.1 mapped right mouse button in sword1 -+ -+ -- Frantisek Dufka Mon, 18 Jun 2007 21:15:31 +0200 -+scummvm (0.9.1) unstable; urgency=low -+ -+ * 0.9.1 upstream release -+ -+ -- Frantisek Dufka Wed, 1 Nov 2006 20:40:51 +0100 -+scummvm (0.9.0-3) unstable; urgency=low -+ -+ * merged fixes in 0.9.0 upstream branch -+ -+ -- Frantisek Dufka Mon, 9 Oct 2006 15:40:59 +0200 -+scummvm (0.9.0-2) unstable; urgency=low -+ -+ * merged fixes in 0.9.0 upstream branch -+ -+ -- Frantisek Dufka Sat, 12 Aug 2006 20:10:47 +0200 -+scummvm (0.9.0-1) unstable; urgency=low -+ -+ * merged changes in 0.9.0 upstream release -+ -+ -- Frantisek Dufka Sun, 23 Jul 2006 22:29:51 +0200 -+scummvm (0.9.0) unstable; urgency=low -+ -+ * 0.9.0 upstream release -+ -+ -- Frantisek Dufka Tue, 27 Jun 2006 20:30:54 +0200 -diff -Naur scummvm-1.1.orig/debian/compat scummvm-1.1/debian/compat ---- scummvm-1.1.orig/debian/compat 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/compat 2010-03-24 00:14:36.000000000 +0100 -@@ -0,0 +1 @@ -+4 -diff -Naur scummvm-1.1.orig/debian/control scummvm-1.1/debian/control ---- scummvm-1.1.orig/debian/control 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/control 2010-03-24 00:14:36.000000000 +0100 -@@ -0,0 +1,51 @@ -+Source: scummvm -+Section: user/games -+Priority: optional -+Maintainer: Frantisek Dufka -+Build-Depends: debhelper (>> 4.0.0), libsdl1.2-dev, libmad0-dev, libasound2-dev, libvorbisidec-dev, libmpeg2-4-dev, libflac-dev (>= 1.1.2), libz-dev, quilt -+ -+Standards-Version: 3.6.1.1 -+Package: scummvm -+Depends: ${shlibs:Depends} -+Architecture: i386 armel -+Section: user/games -+Description: interpreter that will play graphic adventure games -+ written for LucasArts' SCUMM virtual machine, Sierra's AGI adventures, -+ Adventure Soft's Simon the Sorcerer 1, 2 and Feeble Files, -+ Revolution Software's Beneath a Steel Sky and Broken Sword 1 and 2, -+ Interactive Binary Illusions' Flight of the Amazon Queen, -+ Coktel Vision's Gobliiins, Wyrmkeep's Inherit the Earth, -+ Westwood's Legend of Kyrandia, and various others. -+ This package does not contain any actual games. -+XBS-Maemo-Icon-26: -+ iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAC/VBMVEUICwcH -+ CQUKDAgLDQoMDwsOEAwREAUPEQ0QEg8PFQoRExAUEwoVFAwPGAcTFBIRFg0W -+ FQ0XFg4RGgkTGA8XGQsTGwwUHA0aGRIWGxMXHQkVHQ8aGhMbGxQcHQocGxUZ -+ HwsYIgcfHxgeIRUbJQwhIBofJAweJwgfKQocKwwgKgshKw0gLggfLg8jLQ8n -+ LwwpLhEmMwcoMRQjNgotLCYmNwQlNwwqOBQtOQgsOQ8xNh4sPQswNyQqQAUw -+ PAsuOiAsQgcwOyIqRgIsSAQvRgs0PyY1Rg06RA0+PDAwSwg2RxUzTQE4TQsz -+ VAc/SSo6VAk4VwE6VRM2XAVAUC85XwlJVCNEXQo+YwJGXwxMWS1JXC5AagBI -+ awJUagRIcQBSbwpHeAJTaD9OdwNXcwJKewZNfABacRlOfQBPfgBQfwBMggBW -+ fgBNgwNSgQJOhAVecUJjdSZefwNUiABZhgBjeDZieDxhezFQjQBgghZkhQ5j -+ iQJUkAZcixJmgDZnhCtckQpblgBekw5clwBqgkthlQBdmAJriz90hz5omgBs -+ mAhxlgd0mAB5lgBpnA16khdzmAtxnABooQBtnwB4jUpzngBkpQR5nQF8j0Vr -+ pQduoRZ4nRR3k014oQBzpAt8oAh/ogBvqA5trACBmypwqRF1pw+GogCAow+D -+ pQB8phJ/nUNurxh0rRd4rwmHqQd6qDOArwCJqwyDsgCMrgB8ryiFtAB7uQN8 -+ sDKBuAWOsBWJqFR8ti2IsiOSswaBuRt6vxCOtgqXsgePrjR9wQCFuw2KuQyB -+ uSeSuACEux6JuR2OvACAxACEvCuSuhOHujSMwQGTtiqfuACRvwGOvRWHuz2T -+ wASPwwmYvwaLvTebuxiWvhmSwBqZwAmNu0aevgiKvkCVviaMvE6bwQycuTid -+ vhylvQyZwB2cwg+QywCawR6fwB+bwyGI0gaewCudxCOjwyOT1ACmwjiX0g+j -+ xTqmxzOd1gCV0i6kyyuoyTah1Sif2h6tzjukzF+pz1uq1Eeg2Uml3U1kaLAB -+ AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAHrSURBVCjPY2BAAC5ubkFB -+ BkzAzggDfKgSUFEmKCmOIsPvktA0aVpbSYQ+FwsjkwpMBsi2m/X7z89v3759 -+ +ngg1UqIlZEVponJYcW/rw9unH/04u2bc0vbo+WZWGCahEv/fj+6Yc2SZfv3 -+ b5w6+eACHVYWmCazMz+unN44b3ZfV3dnx5yDiaKsUAOZGD2/fL58+PSGg3Gu -+ buEVWyZacLCzw6S8X324fOHqibMxWpKy5okBIjAZoNOt9r47e+HOnafbe/ND -+ DNWkOGAyDKwsCtXPTly4eufqm+fvHy4M1RRggsnJMLI6z9x99Oqtx7cuPP/2 -+ ele5LjtCGyObbcHcDfuevHn+5s319RuSpOByrEwcwsqhlcvXHbp38+LxiXP6 -+ DeBSTKzWvkrCun5Zq04dO7S6p67ZHibFziiRt6PYUk5YtfbUqSMTGnKyHaFS -+ rMDA3fHr7tqayKDWa0dWVmXHp5lCpRgZ2QI2HTl25NLt+1t3rppRFJ8SrwGX -+ 4g9rmbJo0cpVqxZNaK5OS0nzF4NLMWkHZ1TVN9bXlxXmAo2L0uNgZITaxcjI -+ axAYH5+RATQrPtZHk5udA+Z2cIpQN3Hy8vOwMVLmYGTidoenDSawLAsnJz8L -+ kMUiY4ySpviYoKmKRVAcIyXKyIiLyygi+ADqVqrAkApevwAAAABJRU5ErkJg -+ gg== -diff -Naur scummvm-1.1.orig/debian/copyright scummvm-1.1/debian/copyright ---- scummvm-1.1.orig/debian/copyright 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/copyright 2010-03-24 00:14:36.000000000 +0100 -@@ -0,0 +1,20 @@ -+ScummVM was debianized by Bastien Nocera the 5th Apr 2002. -+It was adopted by Tore Anderson the 4th Oct 2002. -+Packaged for the Maemo platform by Tomas Junnoen Oct 2005 -+Since 0.8.2 packaging for Maemo done by Frantisek Dufka -+ -+It was downloaded from . -+ -+Upstream Authors: see AUTHORS file of the ScummVM source distribution. -+ -+Copyright: -+ -+ 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, or (at your option) any -+ later version. -+ -+ On Debian GNU/Linux systems, the complete text of the GNU General -+ Public License can be found in `/usr/share/common-licenses/GPL'. -+ -+This copyright also applies to the Debian-related build scripts. -diff -Naur scummvm-1.1.orig/debian/postinst scummvm-1.1/debian/postinst ---- scummvm-1.1.orig/debian/postinst 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/postinst 2010-03-24 00:14:36.000000000 +0100 -@@ -0,0 +1,19 @@ -+#! /bin/sh -+if [ "$1" = "configure" ] ; then -+OSVER=$OSSO_VERSION -+[ -z "$OSVER" -a -f /etc/osso_software_version ] && OSVER=`cat /etc/osso_software_version` -+OSVER=`echo $OSVER | cut -d _ -f 2` -+case $OSVER in -+ 2006*|2007*) -+ #nothing to do -+ true -+ ;; -+ *) -+ #ugly trick, until this icon is removed big icon in menu does not show -+ [ -f /usr/share/icons/scummvm.xpm ] && rm /usr/share/icons/scummvm.xpm -+ ;; -+esac -+ [ -x /usr/bin/gtk-update-icon-cache ] && /usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor -+ [ -x /usr/bin/maemo-select-menu-location -a -z "$2" ] && /usr/bin/maemo-select-menu-location scummvm.desktop tana_fi_games -+fi -+exit 0 -diff -Naur scummvm-1.1.orig/debian/rules scummvm-1.1/debian/rules ---- scummvm-1.1.orig/debian/rules 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/rules 2010-03-24 13:39:46.000000000 +0100 -@@ -0,0 +1,72 @@ -+#!/usr/bin/make -f -+ -+#include /usr/share/quilt/quilt.make -+ -+build: scummvm -+ -+scummvm: -+ dh_testdir -+ CXXFLAGS="-Os -mcpu=arm926ej-s -fomit-frame-pointer -DMAEMO_SDL -I/usr/X11R6/include" ./configure --prefix=/usr --disable-debug --disable-mt32emu --disable-hq-scalers --with-tremor-prefix=/usr --enable-tremor --with-zlib-prefix=/usr --enable-zlib --with-mad-prefix=/usr --enable-mad --enable-flac --disable-alsa --prefix=/opt/scummvm --datadir=/opt/scummvm/share -+## --host=arm-linux --enable-plugins --disable-scumm-7-8 -+ $(MAKE) -+ -+clean: -+ dh_testdir -+ dh_testroot -+ -$(MAKE) distclean -+ dh_clean -+ -+install: build -+ dh_testdir -+ dh_testroot -+ dh_clean -+ dh_installdirs -+# not as a service -+# install -m0755 dists/maemo/scummvm.wrapper debian/scummvm/usr/games/scummvm -+# install -m0644 dists/maemo/scummvm.desktop debian/scummvm/usr/share/applications/hildon -+# run as fake dbus-service to enable switching back to application from desktop via home key -+ install -m0755 dists/maemo/scummvm.servicewrapper debian/scummvm/usr/games/scummvm -+ install -m0644 dists/maemo/scummvm.servicedesktop debian/scummvm/usr/share/applications/hildon/scummvm.desktop -+ install -m0644 dists/maemo/scummvm.service debian/scummvm/usr/share/dbus-1/services -+# end of fake dbus service -+ install -m0644 dists/maemo/scummvm26.png debian/scummvm/usr/share/icons/hicolor/26x26/hildon/scummvm.png -+ install -m0644 dists/maemo/scummvm40.png debian/scummvm/usr/share/icons/hicolor/40x40/hildon/scummvm.png -+ install -m0644 dists/maemo/scummvm48.png debian/scummvm/usr/share/icons/hicolor/48x48/hildon/scummvm.png -+ install -m0644 dists/maemo/scummvm64.png debian/scummvm/usr/share/icons/hicolor/64x64/hildon/scummvm.png -+ install -m0644 icons/scummvm.xpm debian/scummvm/usr/share/icons -+# install -m0644 -d debian/scummvm/usr/lib/scummvm -+# install -m0644 plugins/lib*.so debian/scummvm/usr/lib/scummvm -+##non-optified version -+# install -m0755 scummvm debian/scummvm/usr/games/scummvm.bin -+# install -m0644 -d debian/scummvm/usr/share/scummvm -+# install -m0644 dists/pred.dic debian/scummvm/usr/share/scummvm -+# install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/usr/share/scummvm -+# optified version (save rootfs space on N900), see also configure prefix and datadir paths above -+ install -m0644 -d debian/scummvm/opt/scummvm/bin -+ install -m0755 scummvm debian/scummvm/opt/scummvm/bin -+ install -m0644 -d debian/scummvm/opt/scummvm/share -+ install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share -+ install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share -+# for optified version we can also add engine datafiles -+ install -m0644 dists/engine-data/drascula.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat debian/scummvm/opt/scummvm/share -+ -+ install -m0644 -d debian/scummvm/usr/share/doc/scummvm -+ install -m0644 NEWS README COPYRIGHT debian/scummvm/usr/share/doc/scummvm -+binary: binary-arch -+ -+binary-arch: build install -+ dh_testdir -+ dh_testroot -+ dh_installchangelogs NEWS -+ dh_link -+ dh_strip -+ dh_fixperms -+ dh_installdeb -+ dh_shlibdeps -+ dh_gencontrol -+ dh_md5sums -+ dh_builddeb -+ -+binary-indep: -+ -+.PHONY: build clean binary install binary-arch binary-indep -diff -Naur scummvm-1.1.orig/debian/scummvm.dirs scummvm-1.1/debian/scummvm.dirs ---- scummvm-1.1.orig/debian/scummvm.dirs 1970-01-01 01:00:00.000000000 +0100 -+++ scummvm-1.1/debian/scummvm.dirs 2010-03-24 00:14:36.000000000 +0100 -@@ -0,0 +1,8 @@ -+usr/games -+usr/share/icons -+usr/share/icons/hicolor/26x26/hildon -+usr/share/icons/hicolor/40x40/hildon -+usr/share/icons/hicolor/48x48/hildon -+usr/share/icons/hicolor/64x64/hildon -+usr/share/applications/hildon -+usr/share/dbus-1/services -\ No newline at end of file ---- scummvm-1.1.orig/configure 2010-03-24 21:25:00.000000000 +0100 -+++ scummvm-1.1/configure 2010-03-24 21:24:28.000000000 +0100 -@@ -1355,6 +1355,9 @@ - _need_memalign=yes - add_line_to_config_mk 'USE_ARM_SOUND_ASM = 1' - add_line_to_config_mk 'USE_ARM_SMUSH_ASM = 1' -+ add_line_to_config_mk 'USE_ARM_GFX_ASM = 1' -+ add_line_to_config_mk 'ARM_USE_GFX_ASM = 1' -+ add_line_to_config_mk 'USE_ARM_COSTUME_ASM = 1' - ;; - arm-riscos|linupy) - DEFINES="$DEFINES -DUNIX -DLINUPY" -@@ -2205,11 +2208,11 @@ - # - test -z "$_bindir" && _bindir="$_prefix/bin" - test -z "$_mandir" && _mandir="$_prefix/share/man" --test -z "$_datadir" && _datadir="$_prefix/share" --test -z "$_libdir" && _libdir="$_prefix/lib" -+test -z "$_datadir" && _datadir="$_prefix/share/scummvm" -+test -z "$_libdir" && _libdir="$_prefix/lib/scummvm" - --DEFINES="$DEFINES -DDATA_PATH=\\\"$_datadir/scummvm\\\"" --DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$_libdir/scummvm\\\"" -+DEFINES="$DEFINES -DDATA_PATH=\\\"$_datadir\\\"" -+DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$_libdir\\\"" - - - echo_n "Backend... " ---- scummvm-1.1.orig/engines/kyra/module.mk 2010-03-21 22:01:04.000000000 +0100 -+++ scummvm-1.1/engines/kyra/module.mk 2010-03-24 00:14:36.000000000 +0100 -@@ -95,3 +95,9 @@ - - # Include common rules - include $(srcdir)/rules.mk -+ -+#ugly workaround, screen.cpp crashes gcc version 3.4.4 (CodeSourcery ARM 2005q3-2) with anything but -O3 -+$(MODULE)/screen.o: $(MODULE)/screen.cpp -+ $(MKDIR) $(*D)/$(DEPDIR) -+ $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) -O3 $(CPPFLAGS) -c $(<) -o $*.o -+ ---- scummvm-1.1.orig/engines/gob/util.cpp 2010-03-21 22:01:08.000000000 +0100 -+++ scummvm-1.1/engines/gob/util.cpp 2010-03-24 00:17:52.000000000 +0100 -@@ -114,6 +114,10 @@ - _mouseButtons = (MouseButtons) (((uint32) _mouseButtons) & ~((uint32) kMouseButtonsRight)); - break; - case Common::EVENT_KEYDOWN: -+#ifdef MAEMO_SDL -+ if (event.kbd.keycode==Common::KEYCODE_F4) -+ _mouseButtons = (MouseButtons) (((uint32) _mouseButtons) | ((uint32) kMouseButtonsRight)); -+#endif - if (event.kbd.hasFlags(Common::KBD_CTRL)) { - if (event.kbd.keycode == Common::KEYCODE_f) - _fastMode ^= 1; -@@ -126,6 +130,10 @@ - addKeyToBuffer(event.kbd); - break; - case Common::EVENT_KEYUP: -+#ifdef MAEMO_SDL -+ if (event.kbd.keycode==Common::KEYCODE_F4) -+ _mouseButtons = (MouseButtons) (((uint32) _mouseButtons) & ~((uint32) kMouseButtonsRight)); -+#endif - break; - default: - break; ---- scummvm-1.1.orig/engines/queen/input.cpp 2010-03-21 22:01:14.000000000 +0100 -+++ scummvm-1.1/engines/queen/input.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -176,7 +176,11 @@ - } - break; - case Common::KEYCODE_F1: // use Journal -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_F4: // menu key on N770 -+#else - case Common::KEYCODE_F5: -+#endif - if (_cutawayRunning) { - if (_canQuit) { - _keyVerb = VERB_USE_JOURNAL; ---- scummvm-1.1.orig/engines/sword1/sword1.cpp 2010-03-21 22:01:22.000000000 +0100 -+++ scummvm-1.1/engines/sword1/sword1.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -697,8 +697,21 @@ - while (_eventMan->pollEvent(event)) { - switch (event.type) { - case Common::EVENT_KEYDOWN: -+#ifdef MAEMO_SDL -+// map center to right button -+ if (event.kbd.keycode == 13) { -+ _mouseState |= BS1R_BUTTON_DOWN; -+ } else -+#endif - _keyPressed = event.kbd; - break; -+#ifdef MAEMO_SDL -+ case Common::EVENT_KEYUP: -+ if (event.kbd.keycode == 13) { -+ _mouseState |= BS1R_BUTTON_UP; -+ } -+ break; -+#endif - case Common::EVENT_MOUSEMOVE: - _mouseCoord = event.mouse; - break; ---- scummvm-1.1.orig/engines/sword2/sword2.cpp 2010-03-21 22:01:23.000000000 +0100 -+++ scummvm-1.1/engines/sword2/sword2.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -662,11 +662,27 @@ - _gameSpeed = 1; - } - } -+#ifdef MAEMO_SDL -+// map center to right button -+ else if (event.kbd.keycode == 13 && !(_inputEventFilter & RD_RIGHTBUTTONDOWN)) { -+ _mouseEvent.pending = true; -+ _mouseEvent.buttons = RD_RIGHTBUTTONDOWN; -+ } else -+#endif - if (!(_inputEventFilter & RD_KEYDOWN)) { - _keyboardEvent.pending = true; - _keyboardEvent.kbd = event.kbd; - } - break; -+#ifdef MAEMO_SDL -+ case Common::EVENT_KEYUP: -+// map center to right button -+ if (event.kbd.keycode == 13 && !(_inputEventFilter & RD_RIGHTBUTTONUP)) { -+ _mouseEvent.pending = true; -+ _mouseEvent.buttons = RD_RIGHTBUTTONUP; -+ } -+ break; -+#endif - case Common::EVENT_LBUTTONDOWN: - if (!(_inputEventFilter & RD_LEFTBUTTONDOWN)) { - _mouseEvent.pending = true; ---- scummvm-1.1.orig/engines/scumm/input.cpp 2010-03-21 22:01:31.000000000 +0100 -+++ scummvm-1.1/engines/scumm/input.cpp 2010-03-24 00:19:14.000000000 +0100 -@@ -135,7 +135,20 @@ - // Normal key press, pass on to the game. - _keyPressed = event.kbd; - } -- -+#ifdef MAEMO_SDL -+ switch (_keyPressed.keycode) { -+ case Common::KEYCODE_F8: _fastMode ^= 1; break ;// Map F8 (zoom out) to toggle fast mode -+ case Common::KEYCODE_F4: _keyPressed.keycode = Common::KEYCODE_F5; _keyPressed.ascii=Common::ASCII_F5 ; break; // map F4 to F5 (menu key) -+ case Common::KEYCODE_RETURN: _keyPressed.keycode = Common::KEYCODE_TAB; _keyPressed.ascii=Common::ASCII_TAB ; break; // map Select (return) to Tab (right mouse button) -+ default: ; -+ } -+ if (_game.version < 7) switch(event.kbd.keycode){ -+ case Common::KEYCODE_UP: _keyPressed.ascii = ' '; _keyPressed.keycode=Common::KEYCODE_SPACE; break ;// map Up to space (pause game) -+ case Common::KEYCODE_DOWN: _keyPressed.ascii ='.'; _keyPressed.keycode=Common::KEYCODE_PERIOD; break ;// map Down to . (skip one line of dialog) -+ default: ; -+ } -+#endif -+ - // FIXME: We are using ASCII values to index the _keyDownMap here, - // yet later one code which checks _keyDownMap will use KEYCODEs - // to do so. That is, we are mixing ascii and keycode values here, -@@ -151,6 +164,20 @@ - break; - - case Common::EVENT_KEYUP: -+#ifdef MAEMO_SDL -+ // map keyup with similar rules as keydown -+ switch (event.kbd.keycode) { -+ -+ case Common::KEYCODE_F4: event.kbd.keycode = Common::KEYCODE_F5; event.kbd.ascii=Common::ASCII_F5 ; break; // map F4 to F5 (menu key) -+ case Common::KEYCODE_RETURN: event.kbd.keycode = Common::KEYCODE_TAB; event.kbd.ascii=Common::ASCII_TAB ; break; // map Select (return) to Tab (right mouse button) -+ default: ; -+ } -+ if (_game.version < 7) switch(event.kbd.keycode){ -+ case Common::KEYCODE_UP: event.kbd.ascii = ' '; event.kbd.keycode=Common::KEYCODE_SPACE; break ;// map Up to space (pause game) -+ case Common::KEYCODE_DOWN: event.kbd.ascii ='.'; event.kbd.keycode=Common::KEYCODE_PERIOD; break ;// map Down to . (skip one line of dialog) -+ default: ; -+ } -+#endif - if (event.kbd.ascii >= 512) { - debugC(DEBUG_GENERAL, "keyPressed > 512 (%d)", event.kbd.ascii); - } else { -@@ -513,9 +540,10 @@ - if (VAR_SAVELOAD_SCRIPT != 0xFF && _currentRoom != 0) - runScript(VAR(VAR_SAVELOAD_SCRIPT2), 0, 0, 0); - -+#ifndef MAEMO_SDL - } else if (restartKeyEnabled && (lastKeyHit.keycode == Common::KEYCODE_F8 && lastKeyHit.hasFlags(0))) { - confirmRestartDialog(); -- -+#endif - } else if (pauseKeyEnabled && (lastKeyHit.keycode == Common::KEYCODE_SPACE && lastKeyHit.hasFlags(0))) { - pauseGame(); - ---- scummvm-1.1.orig/engines/scumm/dialogs.cpp 2010-03-21 22:01:31.000000000 +0100 -+++ scummvm-1.1/engines/scumm/dialogs.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -633,7 +633,11 @@ - } - - void PauseDialog::handleKeyDown(Common::KeyState state) { -+#ifdef MAEMO_SDL -+ if (state.ascii == ' ' || state.keycode == Common::KEYCODE_UP ) // Close pause dialog if space or UP key is pressed -+#else - if (state.ascii == ' ') // Close pause dialog if space key is pressed -+#endif - close(); - else - ScummDialog::handleKeyDown(state); -@@ -695,12 +699,19 @@ - } - - void ValueDisplayDialog::handleKeyDown(Common::KeyState state) { -+#ifdef MAEMO_SDL -+ if (state.ascii == _incKey || state.ascii == _decKey || state.keycode == 275 || state.keycode == 276) { -+ if ((state.ascii == _incKey || state.keycode == 275 ) && _value < _max) -+ _value++; -+ else if ((state.ascii == _decKey || state.keycode == 276) && _value > _min) -+ _value--; -+#else - if (state.ascii == _incKey || state.ascii == _decKey) { - if (state.ascii == _incKey && _value < _max) - _value++; - else if (state.ascii == _decKey && _value > _min) - _value--; -- -+#endif - setResult(_value); - _timer = getMillis() + kDisplayDelay; - draw(); ---- scummvm-1.1.orig/engines/touche/touche.cpp 2010-03-21 22:01:32.000000000 +0100 -+++ scummvm-1.1/engines/touche/touche.cpp 2010-03-24 00:25:29.000000000 +0100 -@@ -294,6 +294,13 @@ - while (_eventMan->pollEvent(event)) { - switch (event.type) { - case Common::EVENT_KEYDOWN: -+#ifdef MAEMO_SDL -+ if (event.kbd.keycode == 13) { // select button simulates righ button toggle -+ _inp_rightMouseButtonPressed=!_inp_rightMouseButtonPressed; -+ } else { -+ _inp_rightMouseButtonPressed = false; -+ } -+#endif - if (!handleKeyEvents) { - break; - } -@@ -304,10 +311,18 @@ - quitGame(); - } - } -+#ifdef MAEMO_SDL -+ } else if (event.kbd.keycode == Common::KEYCODE_F4) { -+#else - } else if (event.kbd.keycode == Common::KEYCODE_F5) { -+#endif - if (_flagsTable[618] == 0 && !_hideInventoryTexts) { - handleOptions(0); - } -+#ifdef MAEMO_SDL -+ } else if (event.kbd.keycode == Common::KEYCODE_F8) { -+ _fastWalkMode = !_fastWalkMode; -+#endif - } else if (event.kbd.keycode == Common::KEYCODE_F9) { - _fastWalkMode = true; - } else if (event.kbd.keycode == Common::KEYCODE_F10) { -@@ -332,12 +347,22 @@ - case Common::EVENT_LBUTTONDOWN: - _inp_leftMouseButtonPressed = true; - break; -+#ifdef MAEMO_SDL -+ case Common::EVENT_LBUTTONUP: -+ // this is done elsewhere _inp_leftMouseButtonPressed = false; -+ _inp_rightMouseButtonPressed = false; // simulate rbutton up to close menu -+ break; -+ case Common::EVENT_RBUTTONDOWN: -+ _inp_rightMouseButtonPressed = !_inp_rightMouseButtonPressed; -+ break; -+#else - case Common::EVENT_RBUTTONDOWN: - _inp_rightMouseButtonPressed = true; - break; - case Common::EVENT_RBUTTONUP: - _inp_rightMouseButtonPressed = false; - break; -+#endif - default: - break; - } ---- scummvm-1.1.orig/engines/sky/sky.cpp 2010-03-21 22:01:39.000000000 +0100 -+++ scummvm-1.1/engines/sky/sky.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -406,6 +406,17 @@ - switch (event.type) { - case Common::EVENT_KEYDOWN: - _keyPressed = event.kbd; -+#ifdef MAEMO_SDL -+ // Maemo platform keybindings -+ if (_keyPressed.keycode == Common::KEYCODE_F4) // Map F4 (menu) to F5 (access main menu) -+ _keyPressed.keycode = Common::KEYCODE_F5; -+ if (_keyPressed.ascii == 13) // Map Select=Enter to right mouse button -+ _skyMouse->buttonPressed(1); -+ if (_keyPressed.keycode == Common::KEYCODE_F8) // Map F8 (zoom out) to toggle fast mode -+ _fastMode ^= 1; -+ if (_keyPressed.keycode == Common::KEYCODE_DOWN) // Map Down to . (skip one line of dialog) -+ _keyPressed.ascii = '.'; -+#endif - break; - case Common::EVENT_MOUSEMOVE: - if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED)) ---- scummvm-1.1.orig/engines/lure/menu.cpp 2010-03-21 22:01:40.000000000 +0100 -+++ scummvm-1.1/engines/lure/menu.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -34,7 +34,7 @@ - #include "lure/events.h" - #include "lure/lure.h" - --#if defined(_WIN32_WCE) || defined(__SYMBIAN32__) -+#if defined(_WIN32_WCE) || defined(MAEMO_SDL) || defined(__SYMBIAN32__) - #define LURE_CLICKABLE_MENUS - #endif - ---- scummvm-1.1.orig/engines/cine/main_loop.cpp 2010-03-21 22:01:43.000000000 +0100 -+++ scummvm-1.1/engines/cine/main_loop.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -75,18 +75,27 @@ - mouseRight = 1; - } - break; -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_UP: -+#else - case Common::KEYCODE_F1: -+#endif - if (allowPlayerInput) { - playerCommand = 0; // EXAMINE - makeCommandLine(); - } - break; -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_DOWN: -+#else - case Common::KEYCODE_F2: -+#endif - if (allowPlayerInput) { - playerCommand = 1; // TAKE - makeCommandLine(); - } - break; -+#ifndef MAEMO_SDL - case Common::KEYCODE_F3: - if (allowPlayerInput) { - playerCommand = 2; // INVENTORY -@@ -99,13 +108,43 @@ - makeCommandLine(); - } - break; -+#else -+//map f3, f4 to f8,f7 = zoom +- keys, when in menu generate keypresses for savegame -+ case Common::KEYCODE_F8: -+ if (inMenu) -+ lastKeyStroke = '1'; -+ else if (allowPlayerInput) { -+ playerCommand = 2; // INVENTORY -+ makeCommandLine(); -+ } -+ break; -+ case Common::KEYCODE_F7: -+ if (inMenu) -+ lastKeyStroke = '2'; -+ else -+ if (allowPlayerInput) { -+ playerCommand = 3; // USE -+ makeCommandLine(); -+ } -+ break; -+#endif -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_LEFT: -+// if (event.kbd.flags&Common::KBD_SHIFT) -+// moveUsingKeyboard(-1, 0); // Left -+#else - case Common::KEYCODE_F5: -+#endif - if (allowPlayerInput) { - playerCommand = 4; // ACTIVATE - makeCommandLine(); - } - break; -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_RIGHT: -+#else - case Common::KEYCODE_F6: -+#endif - if (allowPlayerInput) { - playerCommand = 5; // SPEAK - makeCommandLine(); -@@ -117,7 +156,11 @@ - makeCommandLine(); - } - break; -+#ifdef MAEMO_SDL -+ case Common::KEYCODE_F4: // Menu key -+#else - case Common::KEYCODE_F10: -+#endif - if (!disableSystemMenu && !inMenu) { - g_cine->makeSystemMenu(); - } -@@ -133,19 +176,19 @@ - case Common::KEYCODE_KP_PLUS: - g_cine->modifyGameSpeed(+1); // Faster - break; -- case Common::KEYCODE_LEFT: -+// case Common::KEYCODE_LEFT: - case Common::KEYCODE_KP4: - moveUsingKeyboard(-1, 0); // Left - break; -- case Common::KEYCODE_RIGHT: -+// case Common::KEYCODE_RIGHT: - case Common::KEYCODE_KP6: - moveUsingKeyboard(+1, 0); // Right - break; -- case Common::KEYCODE_UP: -+// case Common::KEYCODE_UP: - case Common::KEYCODE_KP8: - moveUsingKeyboard(0, +1); // Up - break; -- case Common::KEYCODE_DOWN: -+// case Common::KEYCODE_DOWN: - case Common::KEYCODE_KP2: - moveUsingKeyboard(0, -1); // Down - break; ---- scummvm-1.1.orig/backends/platform/sdl/graphics.cpp 2010-03-21 22:01:52.000000000 +0100 -+++ scummvm-1.1/backends/platform/sdl/graphics.cpp 2010-03-24 09:34:28.000000000 +0100 -@@ -520,6 +520,56 @@ - height = bestMode->h; - } - -+#ifdef MAEMO_SDL -+#include "SDL_syswm.h" -+ -+static void maemo5_WM_init(int fullscreen){ -+//static int fsdone=0; -+//static int wmdone=0; -+SDL_SysWMinfo info; -+SDL_VERSION(&info.version); -+if ( SDL_GetWMInfo(&info) ) { -+ Display *dpy = info.info.x11.display; -+ Window win; -+ unsigned long val = 1; -+ Atom atom_zoom = XInternAtom(dpy, "_HILDON_ZOOM_KEY_ATOM", 0); -+ info.info.x11.lock_func(); -+ win = info.info.x11.fswindow; -+ if (win) -+ XChangeProperty (dpy,win,atom_zoom,XA_INTEGER,32,PropModeReplace,(unsigned char *) &val,1); // grab zoom keys -+ win = info.info.x11.wmwindow; -+ if (win) -+ XChangeProperty (dpy,win,atom_zoom,XA_INTEGER,32,PropModeReplace,(unsigned char *) &val,1); // grab zoom keys -+#if 0 -+ if (win && fullscreen /* && !fsdone */ ) { -+ XUnmapWindow(dpy,win); -+ XChangeProperty (dpy,win,atom_zoom,XA_INTEGER,32,PropModeReplace,(unsigned char *) &val,1); // grab zoom keys -+ Atom atom_noncomposited = XInternAtom(dpy, "_HILDON_NON_COMPOSITED_WINDOW", 0); -+ Atom atom_wmstate = XInternAtom(dpy, "_NET_WM_STATE", 0); -+ Atom atom_wmstate_fullscreen = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", 0); -+ XSetWindowAttributes xattr; -+ xattr.override_redirect = False; -+ XChangeProperty (dpy,win,atom_noncomposited,XA_INTEGER,32,PropModeReplace,(unsigned char *) &val,1); // make window not composited -+ //XChangeWindowAttributes(dpy, win, CWOverrideRedirect, &xattr); // -+ XChangeProperty (dpy,win,atom_wmstate,XA_ATOM,32,PropModeReplace,(unsigned char *) &atom_wmstate_fullscreen,1); // mark as fullscreen = disable tskswitch button -+ XMapWindow(dpy,win); -+ //fsdone=1; -+ } -+ win = info.info.x11.wmwindow; -+ if (win && !fullscreen /* && !wmdone */) { -+ XUnmapWindow(dpy,win); -+ XChangeProperty (dpy,win,atom_zoom,XA_INTEGER,32,PropModeReplace,(unsigned char *) &val,1); -+ XMapWindow(dpy,win); -+ //wmdone=1; -+ } -+#endif -+ info.info.x11.unlock_func(); -+// XSync(dpy,False); -+} -+} -+#endif -+ -+ - bool OSystem_SDL::loadGFXMode() { - assert(_inited); - _forceFull = true; -@@ -560,6 +610,9 @@ - error("allocating _screen failed"); - #endif - -+#ifdef MAEMO_SDL -+ maemo5_WM_init(_videoMode.fullscreen); -+#endif - // - // Create the surface that contains the scaled graphics in 16 bit mode - // -@@ -939,6 +992,14 @@ - _videoMode.fullscreen = enable; - _transactionDetails.needHotswap = true; - } -+#ifdef MAEMO_SDL -+ char *caption; -+ char title[50]; -+ title[49] = '\0'; -+ SDL_WM_GetCaption(&caption, NULL); -+ if (caption!=NULL) {strncpy(title,caption,49); -+ setXWindowName(caption); } -+#endif - } - - void OSystem_SDL::setAspectRatioCorrection(bool enable) { ---- scummvm-1.1.orig/backends/platform/sdl/sdl.cpp 2010-03-21 22:01:52.000000000 +0100 -+++ scummvm-1.1/backends/platform/sdl/sdl.cpp 2010-03-24 00:14:36.000000000 +0100 -@@ -47,6 +47,10 @@ - #include "icons/scummvm.xpm" - - #include // for getTimeAndDate() -+#ifdef MAEMO_SDL -+#include -+#include -+#endif - - //#define SAMPLES_PER_SEC 11025 - #define SAMPLES_PER_SEC 22050 -@@ -212,7 +216,15 @@ - _timerID = SDL_AddTimer(10, &timer_handler, _timer); - } - -- // Invoke parent implementation of this method -+#ifdef MAEMO_SDL -+ // some keymappings are done differently for devices with full keyboard (N810=RX-34) -+ _have_keyboard=0; -+ char *device=getenv("SCUMMVM_MAEMO_DEVICE"); -+ if (device != NULL) -+ if ( (strcmp(device,"RX-44") == 0) || (strcmp(device,"RX-48") == 0) || (strcmp(device,"RX-51") == 0)) -+ _have_keyboard=1; -+#endif -+ // Invoke parent implementation of this method - OSystem::initBackend(); - - _inited = true; -@@ -429,6 +441,23 @@ - return file.createWriteStream(); - } - -+#ifdef MAEMO_SDL -+void OSystem_SDL::setXWindowName(const char *caption) { -+ SDL_SysWMinfo info; -+ SDL_VERSION(&info.version); -+ if ( SDL_GetWMInfo(&info) ) { -+ Display *dpy = info.info.x11.display; -+ Window win; -+ //if (_videoMode.fullscreen) -+ win = info.info.x11.fswindow; -+ if (win) XStoreName(dpy, win, caption); -+ //else -+ win = info.info.x11.wmwindow; -+ if (win) XStoreName(dpy, win, caption); -+ } -+} -+#endif -+ - void OSystem_SDL::setWindowCaption(const char *caption) { - Common::String cap; - byte c; -@@ -445,6 +474,11 @@ - } - - SDL_WM_SetCaption(cap.c_str(), cap.c_str()); -+#ifdef MAEMO_SDL -+ Common::String cap2("ScummVM - "); // 2 lines in OS2008 task switcher, set first line -+ cap=cap2+cap; -+ setXWindowName(cap.c_str()); -+#endif - } - - bool OSystem_SDL::hasFeature(Feature f) { -@@ -529,6 +563,14 @@ - #endif - } - -+#ifdef MAEMO_SDL -+// no Maemo version needs setupIcon -+// also N900 is hit by SDL_WM_SetIcon bug (window cannot receive input) -+// http://bugzilla.libsdl.org/show_bug.cgi?id=586 -+void OSystem_SDL::setupIcon() { -+ ; -+} -+#else - void OSystem_SDL::setupIcon() { - int x, y, w, h, ncols, nbytes, i; - unsigned int rgba[256]; -@@ -580,6 +622,7 @@ - SDL_FreeSurface(sdl_surf); - free(icon); - } -+#endif - - OSystem::MutexRef OSystem_SDL::createMutex() { - return (MutexRef) SDL_CreateMutex(); ---- scummvm-1.1.orig/backends/platform/sdl/events.cpp 2010-04-02 22:45:24.000000000 +0200 -+++ scummvm-1.1/backends/platform/sdl/events.cpp 2010-04-02 22:44:04.000000000 +0200 -@@ -26,7 +26,9 @@ - #include "backends/platform/sdl/sdl.h" - #include "common/util.h" - #include "common/events.h" -- -+#ifdef MAEMO_SDL -+#include "common/config-manager.h" -+#endif - // FIXME move joystick defines out and replace with confile file options - // we should really allow users to map any key to a joystick button - #define JOY_DEADZONE 3200 -@@ -232,8 +234,13 @@ - - bool OSystem_SDL::handleKeyDown(SDL_Event &ev, Common::Event &event) { - -+#ifdef MAEMO_SDL -+// we want to remap first including ctr/shift/alt modifiers -+ const bool event_complete = remapKey(ev, event); -+ SDLModToOSystemKeyFlags(ev.key.keysym.mod, event); -+#else - SDLModToOSystemKeyFlags(SDL_GetModState(), event); -- -+#endif - // Handle scroll lock as a key modifier - if (ev.key.keysym.sym == SDLK_SCROLLOCK) - _scrollLock = !_scrollLock; -@@ -241,8 +248,13 @@ - if (_scrollLock) - event.kbd.flags |= Common::KBD_SCRL; - -+#ifdef MAEMO_SDL -+ // fullscreen button or ctrl+space toggle full screen mode -+ if (ev.key.keysym.sym == SDLK_F6 || (_have_keyboard && event.kbd.hasFlags(Common::KBD_CTRL) && (ev.key.keysym.sym == SDLK_SPACE) ) ) { -+#else - // Alt-Return and Alt-Enter toggle full screen mode - if (event.kbd.hasFlags(Common::KBD_ALT) && (ev.key.keysym.sym == SDLK_RETURN || ev.key.keysym.sym == SDLK_KP_ENTER)) { -+#endif - beginGFXTransaction(); - setFullscreenMode(!_videoMode.fullscreen); - endGFXTransaction(); -@@ -276,11 +288,15 @@ - return false; - } - -+#ifndef MAEMO_SDL - // Ctrl-m toggles mouse capture - if (event.kbd.hasFlags(Common::KBD_CTRL) && ev.key.keysym.sym == 'm') { - toggleMouseGrab(); - return false; - } -+#else -+// mouse capture makes no sense for Maemo and ctrl+m is used for global menu -+#endif - - #if defined(MACOSX) - // On Macintosh', Cmd-Q quits -@@ -313,7 +329,11 @@ - return false; - } - -+#ifdef MAEMO_SDL -+ if (event_complete) -+#else - if (remapKey(ev, event)) -+#endif - return true; - - event.type = Common::EVENT_KEYDOWN; -@@ -332,7 +352,12 @@ - event.kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod, ev.key.keysym.unicode); - - // Ctrl-Alt- will change the GFX mode -+#ifdef MAEMO_SDL -+ // we can't call SDL_GetModState(), modifiers can be remapped too -+ SDLModToOSystemKeyFlags(ev.key.keysym.mod, event); -+#else - SDLModToOSystemKeyFlags(SDL_GetModState(), event); -+#endif - - // Set the scroll lock sticky flag - if (_scrollLock) -@@ -355,8 +380,20 @@ - } - - bool OSystem_SDL::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) { -+#ifdef MAEMO_SDL -+ if (ev.button.button == SDL_BUTTON_LEFT){ -+ SDLMod mod=SDL_GetModState(); -+ if (mod & KMOD_SHIFT) -+ event.type = Common::EVENT_RBUTTONDOWN; -+ else if ( mod & KMOD_CTRL) -+ event.type = Common::EVENT_MOUSEMOVE; -+ else -+ event.type = Common::EVENT_LBUTTONDOWN; -+ } -+#else - if (ev.button.button == SDL_BUTTON_LEFT) - event.type = Common::EVENT_LBUTTONDOWN; -+#endif - else if (ev.button.button == SDL_BUTTON_RIGHT) - event.type = Common::EVENT_RBUTTONDOWN; - #if defined(SDL_BUTTON_WHEELUP) && defined(SDL_BUTTON_WHEELDOWN) -@@ -372,14 +409,33 @@ - else - return false; - -+#ifdef MAEMO_SDL -+ // we have touchscreen so we may have no mousemotion events between taps -+ setMousePos(event.mouse.x, event.mouse.y); -+ // this is trying to fix wrong action done by mouse click in some engines -+ // it looks like clicking affects objects in previous mouse position -+ // if this does not help we should perhaps generate some fake mouse motion event(s) -+#endif - fillMouseEvent(event, ev.button.x, ev.button.y); - - return true; - } - - bool OSystem_SDL::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) { -+#ifdef MAEMO_SDL -+ if (ev.button.button == SDL_BUTTON_LEFT){ -+ SDLMod mod=SDL_GetModState(); -+ if (mod & KMOD_SHIFT) -+ event.type = Common::EVENT_RBUTTONUP; -+ else if ( mod & KMOD_CTRL) -+ event.type = Common::EVENT_MOUSEMOVE; -+ else -+ event.type = Common::EVENT_LBUTTONUP; -+ } -+#else - if (ev.button.button == SDL_BUTTON_LEFT) - event.type = Common::EVENT_LBUTTONUP; -+#endif - else if (ev.button.button == SDL_BUTTON_RIGHT) - event.type = Common::EVENT_RBUTTONUP; - #if defined(SDL_BUTTON_MIDDLE) -@@ -503,7 +559,203 @@ - return true; - } - -+// called on SDL KEYUP and KEYDOWN events - bool OSystem_SDL::remapKey(SDL_Event &ev, Common::Event &event) { -+#ifdef MAEMO_SDL -+ static int engine=0; -+#define ENG_OTHER -1 -+//#define ENG_SCUMM 1 -+ static int game=0; -+#define GAME_OTHER -1 -+#define GAME_LURE 1 -+#define GAME_SWORD1 2 -+#define GAME_SWORD2 3 -+#define GAME_SAGA 4 -+#define GAME_FW 5 -+//#define GAME_SIMON1 6 -+//#define GAME_SIMON2 7 -+#define GAME_FEEBLE 8 -+//#define GAME_TOUCHE 9 -+#define GAME_DISCWORLD 10 -+#define GAME_CRUISE 11 -+ -+ -+ if (engine == 0){ -+ // one time initialization -+ Common::String gameid(ConfMan.get("gameid")); -+ if (gameid.hasPrefix("lure")) { -+ game=GAME_LURE; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("sword2")) { -+ game=GAME_SWORD2; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("cine")) { -+ game=GAME_FW; -+ engine=ENG_OTHER; -+/* } else if (gameid == "touche") { -+ game=GAME_TOUCHE; -+ engine=ENG_OTHER; -+ } else if (gameid == "simon1") { -+ game=GAME_SIMON1; -+ engine=ENG_OTHER; -+ } else if (gameid == "simon2") { -+ game=GAME_SIMON2; -+ engine=ENG_OTHER; -+*/ -+ } else if (gameid.hasPrefix("feeble")) { -+ game=GAME_FEEBLE; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("sword1")) { -+ game=GAME_SWORD1; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("saga")) { -+ game=GAME_SAGA; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("tinsel")) { -+ game=GAME_DISCWORLD; -+ engine=ENG_OTHER; -+ } else if (gameid.hasPrefix("cruise")) { -+ game=GAME_CRUISE; -+ engine=ENG_OTHER; -+ } else { -+ game=GAME_OTHER; -+ engine=ENG_OTHER; -+ } -+ } -+ // global mapping - N810, N900 -+ if (_have_keyboard && (ev.key.keysym.mod & KMOD_CTRL)){ -+ // map ctrl-m to ctrl F5 = global scummvm menu -+ if (ev.key.keysym.sym==SDLK_m) ev.key.keysym.sym=SDLK_F5 ; -+ } -+ if (_have_keyboard && (ev.key.keysym.mod & KMOD_SHIFT)){ -+ // map shift backspace to escape, shift enter to menu key -+ if (ev.key.keysym.sym==SDLK_BACKSPACE) { ev.key.keysym.sym=SDLK_ESCAPE ; ev.key.keysym.mod = (SDLMod) (ev.key.keysym.mod & ~KMOD_SHIFT); } -+ if (ev.key.keysym.sym==SDLK_KP_ENTER) { ev.key.keysym.sym=SDLK_F4; ev.key.keysym.mod = (SDLMod) (ev.key.keysym.mod & ~KMOD_SHIFT); } -+ } -+ -+ // engine specific mappings -+ switch (engine){ -+ // nothing now -+ } -+ // game specific mapping -+ switch (game) { -+ case GAME_LURE: -+ if ((ev.key.keysym.sym==SDLK_F8 && _have_keyboard ) || (ev.key.keysym.sym==SDLK_F4 && !_have_keyboard)){ -+ // map zoom - to right click if we have keyboard (N810), otherwise map menu key (770,N800) -+ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; -+ -+ } -+ switch(ev.key.keysym.sym){ -+ case SDLK_F5: // map F5 (home key) to f9 = restart game -+ ev.key.keysym.sym=SDLK_F9; -+ break; -+ case SDLK_F8: // map F8 (zoom - key) to F5 (save dialog) in game -+ ev.key.keysym.sym=SDLK_F5; -+ break; -+ case SDLK_F4: // same as above, only one mapping happens due to right click maping above -+ ev.key.keysym.sym=SDLK_F5; -+ default: -+ ; -+ } -+ break; -+ case GAME_FW: -+ // Future Wars - no mapping here, done in game engine -+ break; -+ case GAME_FEEBLE: -+ if ((ev.key.keysym.sym==SDLK_F8 && _have_keyboard ) || (ev.key.keysym.sym==SDLK_F4 && !_have_keyboard)){ -+ // map zoom - to right click if we have keyboard (N810), otherwise map menu key (770,N800) -+ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; -+ -+ } -+ if (!_have_keyboard) switch(ev.key.keysym.sym){ -+ case SDLK_F7: // map F7 (zoom + key) to letter y -+ ev.key.keysym.sym=SDLK_y; -+ break; -+ case SDLK_F8: // map F8 (zoom - key) to letter 1 -+ ev.key.keysym.sym=SDLK_1; -+ break; -+ default: -+ ; -+ } -+ break; -+ case GAME_DISCWORLD: -+ switch(ev.key.keysym.sym) { -+ case SDLK_F8: // map F8 (zoom - key) to right click -+ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; -+ // now map F7 (=zoom+) to Enter for N810 (useful when closed) -+ case SDLK_F7: -+ if (_have_keyboard) ev.key.keysym.sym=SDLK_RETURN; else ev.key.keysym.sym=SDLK_y; -+ break; -+ case SDLK_F4: // map menu key to game menu -+ case SDLK_F5: // swap/home key too -+ ev.key.keysym.sym=SDLK_F1; -+ break; -+ default: -+ ; -+ } -+ break; -+ case GAME_CRUISE: -+ switch(ev.key.keysym.sym) { -+ case SDLK_F8: // map F8 (zoom - key) to right click -+ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; -+ // now map F7 (=zoom+) to menu for N810 (useful when closed) -+ case SDLK_F7: -+ if (_have_keyboard) ev.key.keysym.sym=SDLK_F10; else ev.key.keysym.sym=SDLK_p; -+ break; -+ case SDLK_F4: // map menu key to game menu -+ ev.key.keysym.sym=SDLK_F10; -+ break; -+ default: -+ ; -+ } -+ break; -+ default: -+ //case GAME_SWORD2: -+ //case GAME_SWORD1: -+ //case GAME_SAGA: //I Have No Mouth -+ if (!_have_keyboard) switch(ev.key.keysym.sym){ -+ case SDLK_F7: // map F7 (zoom + key) to letter y for save game entry and 'yes' replies (simon, touche) -+ ev.key.keysym.sym=SDLK_y; -+ break; -+ case SDLK_F8: // map F8 (zoom - key) to letter 1 for save game entry and copyprotection in monkey2 -+ ev.key.keysym.sym=SDLK_1; -+ break; -+ default: -+ ; -+ } else switch(ev.key.keysym.sym) { -+ case SDLK_F8: // map F8 (zoom - key) to right click -+ event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; -+ // now map F7 (=zoom+) to menu (=F4) so we can have same mapping for N810 and 770/800 for menu key -+ // N800's real menu key is hidden on retractable keyboard so we use zoom+ for it instead too -+ case SDLK_F7: -+ ev.key.keysym.sym=SDLK_F4; -+ break; -+ /* with real keyboard we can afford to lose F7, do not remap F4 back -+ case SDLK_F4: -+ ev.key.keysym.sym=SDLK_F7; -+ break; */ -+ default: -+ ; -+ } -+ break; -+ } -+#endif //SDL_MAEMO -+ - #ifdef LINUPY - // On Yopy map the End button to quit - if ((ev.key.keysym.sym == 293)) { ---- scummvm-1.1.orig/backends/platform/sdl/sdl.h 2010-03-21 22:01:52.000000000 +0100 -+++ scummvm-1.1/backends/platform/sdl/sdl.h 2010-03-24 00:14:36.000000000 +0100 -@@ -230,6 +230,9 @@ - virtual int getGraphicsMode() const; - - virtual void setWindowCaption(const char *caption); -+#ifdef MAEMO_SDL -+ void setXWindowName(const char *caption); -+#endif - virtual bool openCD(int drive); - - virtual bool hasFeature(Feature f); -@@ -418,6 +421,9 @@ - // joystick - SDL_Joystick *_joystick; - -+#ifdef MAEMO_SDL -+ int _have_keyboard; -+#endif - // Shake mode - int _currentShakePos; - int _newShakePos; -- cgit v1.2.3 From 9633515e2325115789f4d135a6485fad91e7781c Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Wed, 29 Jun 2011 15:41:49 -0500 Subject: MAEMO: adding debian directory This is the original debian directory from the 1.2.0 maemo port --- backends/platform/maemo/debian/changelog | 221 ++++++++++++++++++++++++++++ backends/platform/maemo/debian/compat | 1 + backends/platform/maemo/debian/control | 51 +++++++ backends/platform/maemo/debian/copyright | 20 +++ backends/platform/maemo/debian/postinst | 19 +++ backends/platform/maemo/debian/rules | 72 +++++++++ backends/platform/maemo/debian/scummvm.dirs | 8 + 7 files changed, 392 insertions(+) create mode 100644 backends/platform/maemo/debian/changelog create mode 100644 backends/platform/maemo/debian/compat create mode 100644 backends/platform/maemo/debian/control create mode 100644 backends/platform/maemo/debian/copyright create mode 100644 backends/platform/maemo/debian/postinst create mode 100755 backends/platform/maemo/debian/rules create mode 100644 backends/platform/maemo/debian/scummvm.dirs (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/changelog b/backends/platform/maemo/debian/changelog new file mode 100644 index 0000000000..c44516b0ea --- /dev/null +++ b/backends/platform/maemo/debian/changelog @@ -0,0 +1,221 @@ +scummvm (1.2.1~pre) unstable; urgency=low + + * 1.2.1 testing release + + -- Frantisek Dufka Wed, 8 Dec 2010 21:43:29 +0100 +scummvm (1.2.0~pre) unstable; urgency=low + + * 1.2.0 testing release + + -- Frantisek Dufka Fri, 8 Oct 2010 21:38:12 +0200 +scummvm (1.1.0~pre) unstable; urgency=low + + * 1.1.0 testing release + * cleanup for N900 (new firmwares need less hacks) + * unified binary for all devices now have datafiles included (~2MB) + + -- Frantisek Dufka Wed, 24 Mar 2010 01:48:05 +0100 +scummvm (1.0.0-4) unstable; urgency=low + + * datadir optified (/usr/share/scummvm -> /opt/scummvm/share) + * added engine files to datadir + * Application Manager icon enlarged to 48x48 + + -- Frantisek Dufka Thu, 17 Dec 2009 13:54:51 +0100 +scummvm (1.0.0-3) unstable; urgency=low + + * disable taskmanager topleft button in fullscreen mode (N900) + * map shift+click to right button click + * mam ctrl+click to mouse move (no click) + * set fullscreen window as _HILDON_NON_COMPOSITED_WINDOW (N900) + + -- Frantisek Dufka Tue, 15 Dec 2009 23:12:51 +0100 +scummvm (1.0.0-2) unstable; urgency=low + + * grab N900 volume keys + * map Shift+Backspace to Escape key, shift+enter to Menu key (N900) + * optified = main binary moved to /opt/scummvm/bin/scummvm + + -- Frantisek Dufka Sat, 12 Dec 2009 23:39:04 +0100 +scummvm (1.0.0-1) unstable; urgency=low + + * -mcpu=arm1136j-s -mfpu=vfp -mfloat-abi=softfp breaks Gobliins, reverted + + -- Frantisek Dufka Wed, 2 Dec 2009 10:25:11 +0100 +scummvm (1.0.0) unstable; urgency=low + + * upstream 1.0 release + * Initial support for N900 + + -- Frantisek Dufka Fri, 6 Nov 2009 22:02:25 +0100 +scummvm (1.0.0~rc1-3) unstable; urgency=low + + * updated to 1.0 branch revision 43999 to fix bugs (Cruise pause, ..) + * Cruise for Corpse mapping added to zoom+ for N800/770 + + -- Frantisek Dufka Mon, 7 Sep 2009 09:03:13 +0200 +scummvm (1.0.0~rc1-2) unstable; urgency=low + + * Cruise for Corpse key bindings added + - menu key for menu, zoom-=right click, zoom+=context menu + + -- Frantisek Dufka Wed, 2 Sep 2009 23:03:59 +0200 +scummvm (1.0.0~rc1-1) unstable; urgency=low + + * Discworld key bindings added - menu key for menu, zoom-=right click, zoom+=Enter/y key + + -- Frantisek Dufka Wed, 2 Sep 2009 09:53:08 +0200 +scummvm (1.0.0~rc1) unstable; urgency=low + + * upstream 1.0.0rc1 release + + -- Frantisek Dufka Thu, 20 Aug 2009 23:33:59 +0200 +scummvm (0.13.1) unstable; urgency=low + + * upstream 0.13.1 release + + -- Frantisek Dufka Sat, 18 Apr 2009 22:40:42 +0200 +scummvm (0.13.0-2) unstable; urgency=low + + * dbus_service.patch is incomplete - needs also install line in debian/rules + + -- Frantisek Dufka Fri, 27 Feb 2009 20:37:29 +0100 +scummvm (0.13.0-1) unstable; urgency=low + + * fix crash in task switcher caption code when .scummvmrc had fullscreen value set + * enabled also dbus_service.patch for home key switching back (not needed in OS < 2008) + + -- Frantisek Dufka Fri, 27 Feb 2009 09:29:01 +0100 +scummvm (0.13.0) unstable; urgency=low + + * upstream 0.13.0 release + * Feeble Files mapping + * task switcher item name patch from mikkov + + -- Frantisek Dufka Wed, 18 Feb 2009 21:52:33 +0100 +scummvm (0.11.99-4) unstable; urgency=low + + * Maemo extras-devel test version + - maemo-taskswitcher.patch: title shown right from the beginning + and title not fixed to "ScummVM" only + - dbus_service.patch: modify scummvm.desktop, scummvm.wrapper and + scummvm.service to make switching application automatically back + via second home key long press to work + + -- Mikko Vartiainen Thu, 03 Jan 2009 01:59:52 +0200 +scummvm (0.11.99-3) unstable; urgency=low + + * Maemo extras-devel test version + - maemo-taskswitcher.patch + + -- Mikko Vartiainen Thu, 01 Jan 2009 13:13:13 +0200 +scummvm (0.11.99-2) unstable; urgency=low + + * Maemo extras-devel test version + - keeping version below 0.12.0 + - not in user/ category + + -- Mikko Vartiainen Thu, 01 Jan 2009 02:04:14 +0200 +scummvm (0.12.0) unstable; urgency=low + + * upstream 0.12.0 release + * update description + + -- Frantisek Dufka Mon, 25 Aug 2008 21:47:41 +0200 +scummvm (0.11.99) unstable; urgency=low + + * upstream 0.12.0 testing pre-release + * big icons added for OS2008 menu + + -- Frantisek Dufka Fri, 22 Aug 2008 08:20:48 +0200 +scummvm (0.11.1) unstable; urgency=low + + * upstream 0.11.1 release + * mapping for N810: zoom+ = menu for all games (except FW) + + -- Frantisek Dufka Sat, 23 Feb 2008 20:41:37 +0100 +scummvm (0.11.0-2) unstable; urgency=low + + * mapping for N800/770: zoom+ = y, zoom- = 1 (all games except FW) + this fixes save dialog in BS1 and also allows to exit some games via 'y' + * mapping for N810: zoom- = rightclick for all games + * updated to revision 30849 from 0.11 branch (some bugfixes for 0.11.1) + + -- Frantisek Dufka Mon, 11 Feb 2008 22:22:48 +0100 +scummvm (0.11.0-1) unstable; urgency=low + + * theme files added back + * SWORD2,SAGA - added zoom keys =1/2 for saved games + * different mapping for N810 rightclick=zoom-,menu=zoom+ (currently only in LURE) + * added NEWS README COPYRIGHT do doc dir as per scummvm project guidelines + + -- Frantisek Dufka Sun, 13 Jan 2008 22:58:41 +0100 +scummvm (0.11.0-0) unstable; urgency=low + + * upstream 0.11 release + + -- Frantisek Dufka Sat, 12 Jan 2008 22:26:34 +0100 +scummvm (0.10.0-5) unstable; urgency=low + + * fixed for chinook, menu selection postinst script added + + -- Frantisek Dufka Thu, 25 Oct 2007 09:56:32 +0200 +scummvm (0.10.0-4) unstable; urgency=low + + * AGI - added pred.dic to DATA_PATH (=/usr/share/scummvm) to enable + predictive input + + -- Frantisek Dufka Tue, 28 Aug 2007 09:58:29 +0200 +scummvm (0.10.0-3) unstable; urgency=low + + * SCUMM - added mapping also for key up events (may fix right button in FT?) + * SWORD2 - added right button press mapping (not tested) + + -- Frantisek Dufka Mon, 20 Aug 2007 22:39:07 +0200 +scummvm (0.10.0-2) unstable; urgency=low + + * Future Wars - add mapping for left/up/down/right,zoom +/- + * fix SDL backend to set mouse position on button down event + as we may not have mousemove events with touchscreen + + -- Frantisek Dufka Fri, 13 Jul 2007 09:56:37 +0200 +scummvm (0.10.0-1) unstable; urgency=low + + * mapped F10 in Future Wars to menu key + + -- Frantisek Dufka Wed, 11 Jul 2007 22:20:00 +0200 +scummvm (0.10.0) unstable; urgency=low + + * upstream 0.10 release, enabled FLAC too + + -- Frantisek Dufka Wed, 4 Jul 2007 12:48:48 +0200 +scummvm (0.9.1-1) unstable; urgency=low + + * 0.9.1 mapped right mouse button in sword1 + + -- Frantisek Dufka Mon, 18 Jun 2007 21:15:31 +0200 +scummvm (0.9.1) unstable; urgency=low + + * 0.9.1 upstream release + + -- Frantisek Dufka Wed, 1 Nov 2006 20:40:51 +0100 +scummvm (0.9.0-3) unstable; urgency=low + + * merged fixes in 0.9.0 upstream branch + + -- Frantisek Dufka Mon, 9 Oct 2006 15:40:59 +0200 +scummvm (0.9.0-2) unstable; urgency=low + + * merged fixes in 0.9.0 upstream branch + + -- Frantisek Dufka Sat, 12 Aug 2006 20:10:47 +0200 +scummvm (0.9.0-1) unstable; urgency=low + + * merged changes in 0.9.0 upstream release + + -- Frantisek Dufka Sun, 23 Jul 2006 22:29:51 +0200 +scummvm (0.9.0) unstable; urgency=low + + * 0.9.0 upstream release + + -- Frantisek Dufka Tue, 27 Jun 2006 20:30:54 +0200 diff --git a/backends/platform/maemo/debian/compat b/backends/platform/maemo/debian/compat new file mode 100644 index 0000000000..b8626c4cff --- /dev/null +++ b/backends/platform/maemo/debian/compat @@ -0,0 +1 @@ +4 diff --git a/backends/platform/maemo/debian/control b/backends/platform/maemo/debian/control new file mode 100644 index 0000000000..809d65c800 --- /dev/null +++ b/backends/platform/maemo/debian/control @@ -0,0 +1,51 @@ +Source: scummvm +Section: user/games +Priority: optional +Maintainer: Frantisek Dufka +Build-Depends: debhelper (>> 4.0.0), libsdl1.2-dev, libmad0-dev, libasound2-dev, libvorbisidec-dev, libmpeg2-4-dev, libflac-dev (>= 1.1.2), libz-dev, quilt + +Standards-Version: 3.6.1.1 +Package: scummvm +Depends: ${shlibs:Depends} +Architecture: i386 armel +Section: user/games +Description: interpreter that will play graphic adventure games + written for LucasArts' SCUMM virtual machine, Sierra's AGI adventures, + Adventure Soft's Simon the Sorcerer 1, 2 and Feeble Files, + Revolution Software's Beneath a Steel Sky and Broken Sword 1 and 2, + Interactive Binary Illusions' Flight of the Amazon Queen, + Coktel Vision's Gobliiins, Wyrmkeep's Inherit the Earth, + Westwood's Legend of Kyrandia, and various others. + This package does not contain any actual games. +XBS-Maemo-Icon-26: + iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAC/VBMVEUICwcH + CQUKDAgLDQoMDwsOEAwREAUPEQ0QEg8PFQoRExAUEwoVFAwPGAcTFBIRFg0W + FQ0XFg4RGgkTGA8XGQsTGwwUHA0aGRIWGxMXHQkVHQ8aGhMbGxQcHQocGxUZ + HwsYIgcfHxgeIRUbJQwhIBofJAweJwgfKQocKwwgKgshKw0gLggfLg8jLQ8n + LwwpLhEmMwcoMRQjNgotLCYmNwQlNwwqOBQtOQgsOQ8xNh4sPQswNyQqQAUw + PAsuOiAsQgcwOyIqRgIsSAQvRgs0PyY1Rg06RA0+PDAwSwg2RxUzTQE4TQsz + VAc/SSo6VAk4VwE6VRM2XAVAUC85XwlJVCNEXQo+YwJGXwxMWS1JXC5AagBI + awJUagRIcQBSbwpHeAJTaD9OdwNXcwJKewZNfABacRlOfQBPfgBQfwBMggBW + fgBNgwNSgQJOhAVecUJjdSZefwNUiABZhgBjeDZieDxhezFQjQBgghZkhQ5j + iQJUkAZcixJmgDZnhCtckQpblgBekw5clwBqgkthlQBdmAJriz90hz5omgBs + mAhxlgd0mAB5lgBpnA16khdzmAtxnABooQBtnwB4jUpzngBkpQR5nQF8j0Vr + pQduoRZ4nRR3k014oQBzpAt8oAh/ogBvqA5trACBmypwqRF1pw+GogCAow+D + pQB8phJ/nUNurxh0rRd4rwmHqQd6qDOArwCJqwyDsgCMrgB8ryiFtAB7uQN8 + sDKBuAWOsBWJqFR8ti2IsiOSswaBuRt6vxCOtgqXsgePrjR9wQCFuw2KuQyB + uSeSuACEux6JuR2OvACAxACEvCuSuhOHujSMwQGTtiqfuACRvwGOvRWHuz2T + wASPwwmYvwaLvTebuxiWvhmSwBqZwAmNu0aevgiKvkCVviaMvE6bwQycuTid + vhylvQyZwB2cwg+QywCawR6fwB+bwyGI0gaewCudxCOjwyOT1ACmwjiX0g+j + xTqmxzOd1gCV0i6kyyuoyTah1Sif2h6tzjukzF+pz1uq1Eeg2Uml3U1kaLAB + AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAHrSURBVCjPY2BAAC5ubkFB + BkzAzggDfKgSUFEmKCmOIsPvktA0aVpbSYQ+FwsjkwpMBsi2m/X7z89v3759 + +ngg1UqIlZEVponJYcW/rw9unH/04u2bc0vbo+WZWGCahEv/fj+6Yc2SZfv3 + b5w6+eACHVYWmCazMz+unN44b3ZfV3dnx5yDiaKsUAOZGD2/fL58+PSGg3Gu + buEVWyZacLCzw6S8X324fOHqibMxWpKy5okBIjAZoNOt9r47e+HOnafbe/ND + DNWkOGAyDKwsCtXPTly4eufqm+fvHy4M1RRggsnJMLI6z9x99Oqtx7cuPP/2 + ele5LjtCGyObbcHcDfuevHn+5s319RuSpOByrEwcwsqhlcvXHbp38+LxiXP6 + DeBSTKzWvkrCun5Zq04dO7S6p67ZHibFziiRt6PYUk5YtfbUqSMTGnKyHaFS + rMDA3fHr7tqayKDWa0dWVmXHp5lCpRgZ2QI2HTl25NLt+1t3rppRFJ8SrwGX + 4g9rmbJo0cpVqxZNaK5OS0nzF4NLMWkHZ1TVN9bXlxXmAo2L0uNgZITaxcjI + axAYH5+RATQrPtZHk5udA+Z2cIpQN3Hy8vOwMVLmYGTidoenDSawLAsnJz8L + kMUiY4ySpviYoKmKRVAcIyXKyIiLyygi+ADqVqrAkApevwAAAABJRU5ErkJg + gg== diff --git a/backends/platform/maemo/debian/copyright b/backends/platform/maemo/debian/copyright new file mode 100644 index 0000000000..8d9ade8297 --- /dev/null +++ b/backends/platform/maemo/debian/copyright @@ -0,0 +1,20 @@ +ScummVM was debianized by Bastien Nocera the 5th Apr 2002. +It was adopted by Tore Anderson the 4th Oct 2002. +Packaged for the Maemo platform by Tomas Junnoen Oct 2005 +Since 0.8.2 packaging for Maemo done by Frantisek Dufka + +It was downloaded from . + +Upstream Authors: see AUTHORS file of the ScummVM source distribution. + +Copyright: + + 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, or (at your option) any + later version. + + On Debian GNU/Linux systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL'. + +This copyright also applies to the Debian-related build scripts. diff --git a/backends/platform/maemo/debian/postinst b/backends/platform/maemo/debian/postinst new file mode 100644 index 0000000000..89b579a3f6 --- /dev/null +++ b/backends/platform/maemo/debian/postinst @@ -0,0 +1,19 @@ +#! /bin/sh +if [ "$1" = "configure" ] ; then +OSVER=$OSSO_VERSION +[ -z "$OSVER" -a -f /etc/osso_software_version ] && OSVER=`cat /etc/osso_software_version` +OSVER=`echo $OSVER | cut -d _ -f 2` +case $OSVER in + 2006*|2007*) + #nothing to do + true + ;; + *) + #ugly trick, until this icon is removed big icon in menu does not show + [ -f /usr/share/icons/scummvm.xpm ] && rm /usr/share/icons/scummvm.xpm + ;; +esac + [ -x /usr/bin/gtk-update-icon-cache ] && /usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor + [ -x /usr/bin/maemo-select-menu-location -a -z "$2" ] && /usr/bin/maemo-select-menu-location scummvm.desktop tana_fi_games +fi +exit 0 diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules new file mode 100755 index 0000000000..ab2da192b7 --- /dev/null +++ b/backends/platform/maemo/debian/rules @@ -0,0 +1,72 @@ +#!/usr/bin/make -f + +#include /usr/share/quilt/quilt.make + +build: scummvm + +scummvm: + dh_testdir + CXXFLAGS="-Os -mcpu=arm926ej-s -fomit-frame-pointer -DMAEMO_SDL -I/usr/X11R6/include" ./configure --prefix=/usr --disable-debug --disable-mt32emu --disable-hq-scalers --with-tremor-prefix=/usr --enable-tremor --with-zlib-prefix=/usr --enable-zlib --with-mad-prefix=/usr --enable-mad --enable-flac --disable-alsa --prefix=/opt/scummvm --datadir=/opt/scummvm/share +## --host=arm-linux --enable-plugins --disable-scumm-7-8 + $(MAKE) + +clean: + dh_testdir + dh_testroot + -$(MAKE) distclean + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean + dh_installdirs +# not as a service +# install -m0755 dists/maemo/scummvm.wrapper debian/scummvm/usr/games/scummvm +# install -m0644 dists/maemo/scummvm.desktop debian/scummvm/usr/share/applications/hildon +# run as fake dbus-service to enable switching back to application from desktop via home key + install -m0755 dists/maemo/scummvm.servicewrapper debian/scummvm/usr/games/scummvm + install -m0644 dists/maemo/scummvm.servicedesktop debian/scummvm/usr/share/applications/hildon/scummvm.desktop + install -m0644 dists/maemo/scummvm.service debian/scummvm/usr/share/dbus-1/services +# end of fake dbus service + install -m0644 dists/maemo/scummvm26.png debian/scummvm/usr/share/icons/hicolor/26x26/hildon/scummvm.png + install -m0644 dists/maemo/scummvm40.png debian/scummvm/usr/share/icons/hicolor/40x40/hildon/scummvm.png + install -m0644 dists/maemo/scummvm48.png debian/scummvm/usr/share/icons/hicolor/48x48/hildon/scummvm.png + install -m0644 dists/maemo/scummvm64.png debian/scummvm/usr/share/icons/hicolor/64x64/hildon/scummvm.png + install -m0644 icons/scummvm.xpm debian/scummvm/usr/share/icons +# install -m0644 -d debian/scummvm/usr/lib/scummvm +# install -m0644 plugins/lib*.so debian/scummvm/usr/lib/scummvm +##non-optified version +# install -m0755 scummvm debian/scummvm/usr/games/scummvm.bin +# install -m0644 -d debian/scummvm/usr/share/scummvm +# install -m0644 dists/pred.dic debian/scummvm/usr/share/scummvm +# install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/usr/share/scummvm +# optified version (save rootfs space on N900), see also configure prefix and datadir paths above + install -m0644 -d debian/scummvm/opt/scummvm/bin + install -m0755 scummvm debian/scummvm/opt/scummvm/bin + install -m0644 -d debian/scummvm/opt/scummvm/share + install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share + install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share +# for optified version we can also add engine datafiles + install -m0644 dists/engine-data/drascula.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat debian/scummvm/opt/scummvm/share + + install -m0644 -d debian/scummvm/usr/share/doc/scummvm + install -m0644 NEWS README COPYRIGHT debian/scummvm/usr/share/doc/scummvm +binary: binary-arch + +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs NEWS + dh_link + dh_strip + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary-indep: + +.PHONY: build clean binary install binary-arch binary-indep diff --git a/backends/platform/maemo/debian/scummvm.dirs b/backends/platform/maemo/debian/scummvm.dirs new file mode 100644 index 0000000000..7ea790fa36 --- /dev/null +++ b/backends/platform/maemo/debian/scummvm.dirs @@ -0,0 +1,8 @@ +usr/games +usr/share/icons +usr/share/icons/hicolor/26x26/hildon +usr/share/icons/hicolor/40x40/hildon +usr/share/icons/hicolor/48x48/hildon +usr/share/icons/hicolor/64x64/hildon +usr/share/applications/hildon +usr/share/dbus-1/services \ No newline at end of file -- cgit v1.2.3 From 30afd3caf86d903fbec464a9dfb82a387008b519 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Wed, 29 Jun 2011 16:42:50 -0500 Subject: MAEMO: bump debian version --- backends/platform/maemo/debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/changelog b/backends/platform/maemo/debian/changelog index c44516b0ea..9798197807 100644 --- a/backends/platform/maemo/debian/changelog +++ b/backends/platform/maemo/debian/changelog @@ -1,3 +1,9 @@ +scummvm (1.4.0~git) unstable; urgency=low + + * Non-maintainer upload. + + -- Tarek Soliman Wed, 29 Jun 2011 16:41:09 -0500 + scummvm (1.2.1~pre) unstable; urgency=low * 1.2.1 testing release -- cgit v1.2.3 From c001b537f5bf471fa2a6e5542e29cd8cf9721880 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sat, 27 Aug 2011 21:49:38 -0500 Subject: MAEMO: cleanup debian directory --- backends/platform/maemo/debian/rules | 7 +++---- backends/platform/maemo/debian/scummvm.dirs | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules index ab2da192b7..e0d59ad48c 100755 --- a/backends/platform/maemo/debian/rules +++ b/backends/platform/maemo/debian/rules @@ -21,14 +21,13 @@ install: build dh_testroot dh_clean dh_installdirs -# not as a service -# install -m0755 dists/maemo/scummvm.wrapper debian/scummvm/usr/games/scummvm -# install -m0644 dists/maemo/scummvm.desktop debian/scummvm/usr/share/applications/hildon # run as fake dbus-service to enable switching back to application from desktop via home key install -m0755 dists/maemo/scummvm.servicewrapper debian/scummvm/usr/games/scummvm install -m0644 dists/maemo/scummvm.servicedesktop debian/scummvm/usr/share/applications/hildon/scummvm.desktop install -m0644 dists/maemo/scummvm.service debian/scummvm/usr/share/dbus-1/services -# end of fake dbus service +# the following commented out lines are the alternative for not running scummvm as a fake service +# install -m0755 dists/maemo/scummvm.wrapper debian/scummvm/usr/games/scummvm +# install -m0644 dists/maemo/scummvm.desktop debian/scummvm/usr/share/applications/hildon install -m0644 dists/maemo/scummvm26.png debian/scummvm/usr/share/icons/hicolor/26x26/hildon/scummvm.png install -m0644 dists/maemo/scummvm40.png debian/scummvm/usr/share/icons/hicolor/40x40/hildon/scummvm.png install -m0644 dists/maemo/scummvm48.png debian/scummvm/usr/share/icons/hicolor/48x48/hildon/scummvm.png diff --git a/backends/platform/maemo/debian/scummvm.dirs b/backends/platform/maemo/debian/scummvm.dirs index 7ea790fa36..1a452dfbfc 100644 --- a/backends/platform/maemo/debian/scummvm.dirs +++ b/backends/platform/maemo/debian/scummvm.dirs @@ -5,4 +5,4 @@ usr/share/icons/hicolor/40x40/hildon usr/share/icons/hicolor/48x48/hildon usr/share/icons/hicolor/64x64/hildon usr/share/applications/hildon -usr/share/dbus-1/services \ No newline at end of file +usr/share/dbus-1/services -- cgit v1.2.3 From ac9cfacb9874507cf533e1b062b59361e1fafdd4 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sun, 28 Aug 2011 21:15:15 -0500 Subject: MAEMO: add missing files to install to debian/rules --- backends/platform/maemo/debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules index e0d59ad48c..fbbfca5c74 100755 --- a/backends/platform/maemo/debian/rules +++ b/backends/platform/maemo/debian/rules @@ -47,7 +47,7 @@ install: build install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share # for optified version we can also add engine datafiles - install -m0644 dists/engine-data/drascula.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat debian/scummvm/opt/scummvm/share + install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/m4.dat dists/engine-data/mads.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share install -m0644 -d debian/scummvm/usr/share/doc/scummvm install -m0644 NEWS README COPYRIGHT debian/scummvm/usr/share/doc/scummvm -- cgit v1.2.3 From 5e42715f05bdf40f207cc61dc2ee07535ce4e60a Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sat, 27 Aug 2011 21:05:18 -0500 Subject: MAEMO: Update maintainer history in debian/copyright --- backends/platform/maemo/debian/copyright | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/copyright b/backends/platform/maemo/debian/copyright index 8d9ade8297..24d27585d0 100644 --- a/backends/platform/maemo/debian/copyright +++ b/backends/platform/maemo/debian/copyright @@ -1,7 +1,8 @@ ScummVM was debianized by Bastien Nocera the 5th Apr 2002. It was adopted by Tore Anderson the 4th Oct 2002. Packaged for the Maemo platform by Tomas Junnoen Oct 2005 -Since 0.8.2 packaging for Maemo done by Frantisek Dufka +From 0.8.2 to 1.2.1, packaging for Maemo was done by Frantisek Dufka +Since 1.4 packaging for Maemo is done by Tarek Soliman It was downloaded from . -- cgit v1.2.3 From 07569e93c59e5e1e29b365c477950039e99521fb Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sat, 27 Aug 2011 21:08:46 -0500 Subject: MAEMO: mention the BSD and LGPL parts in debian/copyright --- backends/platform/maemo/debian/copyright | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/copyright b/backends/platform/maemo/debian/copyright index 24d27585d0..a90e5a21cc 100644 --- a/backends/platform/maemo/debian/copyright +++ b/backends/platform/maemo/debian/copyright @@ -13,7 +13,8 @@ Copyright: 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, or (at your option) any - later version. + later version. In addition, some parts are also licensed under LGPL and + BSD licenses. See COPYING.BSD and COPYING.LGPL. On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. -- cgit v1.2.3 From b044ae6b986b6d9d9be9a1c16270c85388078995 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 13 Sep 2011 18:13:06 -0500 Subject: MAEMO: added comment to clarify debian/postinst --- backends/platform/maemo/debian/postinst | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/postinst b/backends/platform/maemo/debian/postinst index 89b579a3f6..3925f6c275 100644 --- a/backends/platform/maemo/debian/postinst +++ b/backends/platform/maemo/debian/postinst @@ -1,4 +1,10 @@ #! /bin/sh + +# This is a workaround for older maemo versions related to the icon. +# The /usr/share/icons/scummvm.xpm icon is needed for OS2006 (Nokia 770) +# but if present it overrides nicer icons for newer systems in /usr/share/icons/hicolor. +# This workaround removes it if the OS isn't old (2006/2007). + if [ "$1" = "configure" ] ; then OSVER=$OSSO_VERSION [ -z "$OSVER" -a -f /etc/osso_software_version ] && OSVER=`cat /etc/osso_software_version` -- cgit v1.2.3 From 09b9fbfba9bb0cee15c50a95320d4b9174018e50 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 5 Jul 2011 00:25:56 -0500 Subject: MAEMO: Add basic platform backend with stubbed keymapper --- backends/platform/maemo/maemo.cpp | 53 ++++++++++++++++++++++++++++++ backends/platform/maemo/maemo.h | 41 +++++++++++++++++++++++ backends/platform/maemo/main.cpp | 52 +++++++++++++++++++++++++++++ backends/platform/maemo/module.mk | 13 ++++++++ backends/platform/sdl/main.cpp | 2 +- backends/platform/sdl/posix/posix-main.cpp | 2 +- 6 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 backends/platform/maemo/maemo.cpp create mode 100644 backends/platform/maemo/maemo.h create mode 100644 backends/platform/maemo/main.cpp create mode 100644 backends/platform/maemo/module.mk (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp new file mode 100644 index 0000000000..81a7ebb1b7 --- /dev/null +++ b/backends/platform/maemo/maemo.cpp @@ -0,0 +1,53 @@ +/* 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. + * + */ + +#if defined(MAEMO) + +#include "common/scummsys.h" + +#include "backends/platform/maemo/maemo.h" +#include "backends/events/maemosdl/maemosdl-events.h" +#include "common/textconsole.h" + +OSystem_SDL_Maemo::OSystem_SDL_Maemo() + : + OSystem_POSIX() { +} + +void OSystem_SDL_Maemo::initBackend() { + // Create the events manager + if (_eventSource == 0) + _eventSource = new MaemoSdlEventSource(); + + // Call parent implementation of this method + OSystem_POSIX::initBackend(); +} + +void OSystem_SDL_Maemo::quit() { + delete this; +} + +void OSystem_SDL_Maemo::fatalError() { + delete this; +} + +#endif diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h new file mode 100644 index 0000000000..dd8ba325ab --- /dev/null +++ b/backends/platform/maemo/maemo.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. + * + */ + +#if defined(MAEMO) + +#ifndef PLATFORM_SDL_MAEMO_H +#define PLATFORM_SDL_MAEMO_H + +#include "backends/platform/sdl/posix/posix.h" + +class OSystem_SDL_Maemo : public OSystem_POSIX { +public: + OSystem_SDL_Maemo(); + + virtual void initBackend(); + virtual void quit(); + virtual void fatalError(); +}; + +#endif + +#endif diff --git a/backends/platform/maemo/main.cpp b/backends/platform/maemo/main.cpp new file mode 100644 index 0000000000..6b69cd81d0 --- /dev/null +++ b/backends/platform/maemo/main.cpp @@ -0,0 +1,52 @@ +/* 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. + * + */ + +#if defined(MAEMO) + +#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h + +#include "backends/platform/maemo/maemo.h" +#include "backends/plugins/sdl/sdl-provider.h" +#include "base/main.h" + +#include + +int main(int argc, char* argv[]) { + g_system = new OSystem_SDL_Maemo(); + assert(g_system); + + ((OSystem_SDL_Maemo *)g_system)->init(); + +#ifdef DYNAMIC_MODULES + PluginManager::instance().addPluginProvider(new SDLPluginProvider()); +#endif + + // Invoke the actual ScummVM main entry point: + int res = scummvm_main(argc, argv); + + // Free OSystem + delete (OSystem_SDL_Maemo *)g_system; + + return res; +} + +#endif diff --git a/backends/platform/maemo/module.mk b/backends/platform/maemo/module.mk new file mode 100644 index 0000000000..47f6b56ad0 --- /dev/null +++ b/backends/platform/maemo/module.mk @@ -0,0 +1,13 @@ +MODULE := backends/platform/maemo + +MODULE_OBJS := \ + main.o \ + maemo.o + +# We don't use rules.mk but rather manually update OBJS and MODULE_DIRS. +MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) +OBJS := $(MODULE_OBJS) $(OBJS) +MODULE_DIRS += $(sort $(dir $(MODULE_OBJS))) + +# Hack to ensure the SDL backend is built so we can use OSystem_SDL. +-include $(srcdir)/backends/platform/sdl/module.mk diff --git a/backends/platform/sdl/main.cpp b/backends/platform/sdl/main.cpp index 3947d010c4..040028079d 100644 --- a/backends/platform/sdl/main.cpp +++ b/backends/platform/sdl/main.cpp @@ -26,7 +26,7 @@ // of this file. The following "#if" ensures that. #if !defined(POSIX) && \ !defined(WIN32) && \ - !defined(__MAEMO__) && \ + !defined(MAEMO) && \ !defined(__SYMBIAN32__) && \ !defined(_WIN32_WCE) && \ !defined(__amigaos4__) && \ diff --git a/backends/platform/sdl/posix/posix-main.cpp b/backends/platform/sdl/posix/posix-main.cpp index 3bf7a5138a..5f0914e04f 100644 --- a/backends/platform/sdl/posix/posix-main.cpp +++ b/backends/platform/sdl/posix/posix-main.cpp @@ -22,7 +22,7 @@ #include "common/scummsys.h" -#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) && !defined(PLAYSTATION3) +#if defined(POSIX) && !defined(MACOSX) && !defined(SAMSUNGTV) && !defined(MAEMO) && !defined(WEBOS) && !defined(LINUXMOTO) && !defined(GPH_DEVICE) && !defined(GP2X) && !defined(DINGUX) && !defined(OPENPANDORA) && !defined(PLAYSTATION3) #include "backends/platform/sdl/posix/posix.h" #include "backends/plugins/sdl/sdl-provider.h" -- cgit v1.2.3 From df649e08f8977f1893f18d7693160be1d7bf2998 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sat, 27 Aug 2011 21:54:55 -0500 Subject: MAEMO: fix configure script parms in debian/rules Instead of explicitly passing everything, use the new host=maemo configure capabilities --- backends/platform/maemo/debian/rules | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules index fbbfca5c74..018f53bb11 100755 --- a/backends/platform/maemo/debian/rules +++ b/backends/platform/maemo/debian/rules @@ -6,8 +6,7 @@ build: scummvm scummvm: dh_testdir - CXXFLAGS="-Os -mcpu=arm926ej-s -fomit-frame-pointer -DMAEMO_SDL -I/usr/X11R6/include" ./configure --prefix=/usr --disable-debug --disable-mt32emu --disable-hq-scalers --with-tremor-prefix=/usr --enable-tremor --with-zlib-prefix=/usr --enable-zlib --with-mad-prefix=/usr --enable-mad --enable-flac --disable-alsa --prefix=/opt/scummvm --datadir=/opt/scummvm/share -## --host=arm-linux --enable-plugins --disable-scumm-7-8 + ./configure --host=maemo $(MAKE) clean: -- cgit v1.2.3 From e04a8fdc3a0cf0c562242344717fc6b67903829d Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 19 Jul 2011 23:56:16 -0500 Subject: MAEMO: fix task switcher window title --- backends/platform/maemo/maemo.cpp | 40 +++++++++++++++++++++++++++++++++++++++ backends/platform/maemo/maemo.h | 6 +++++- 2 files changed, 45 insertions(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index 81a7ebb1b7..8362c0785e 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -28,6 +28,9 @@ #include "backends/events/maemosdl/maemosdl-events.h" #include "common/textconsole.h" +#include +#include + OSystem_SDL_Maemo::OSystem_SDL_Maemo() : OSystem_POSIX() { @@ -50,4 +53,41 @@ void OSystem_SDL_Maemo::fatalError() { delete this; } +void OSystem_SDL_Maemo::setXWindowName(const char *caption) { + SDL_SysWMinfo info; + SDL_VERSION(&info.version); + if (SDL_GetWMInfo(&info)) { + Display *dpy = info.info.x11.display; + Window win; + win = info.info.x11.fswindow; + if (win) XStoreName(dpy, win, caption); + win = info.info.x11.wmwindow; + if (win) XStoreName(dpy, win, caption); + } +} + +void OSystem_SDL_Maemo::setWindowCaption(const char *caption) { + Common::String cap; + byte c; + + // The string caption is supposed to be in LATIN-1 encoding. + // SDL expects UTF-8. So we perform the conversion here. + while ((c = *(const byte *)caption++)) { + if (c < 0x80) + cap += c; + else { + cap += 0xC0 | (c >> 6); + cap += 0x80 | (c & 0x3F); + } + } + + SDL_WM_SetCaption(cap.c_str(), cap.c_str()); + + Common::String cap2("ScummVM - "); // 2 lines in OS2008 task switcher, set first line + cap = cap2 + cap; + setXWindowName(cap.c_str()); +} + + + #endif diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h index dd8ba325ab..a7f2ec35bb 100644 --- a/backends/platform/maemo/maemo.h +++ b/backends/platform/maemo/maemo.h @@ -34,8 +34,12 @@ public: virtual void initBackend(); virtual void quit(); virtual void fatalError(); -}; + virtual void setWindowCaption(const char *caption); + +private: + virtual void setXWindowName(const char *caption); +}; #endif #endif -- cgit v1.2.3 From 9aad73be5ef35065b8a9b63958b39184083e0700 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Sun, 28 Aug 2011 19:39:18 -0500 Subject: MAEMO: enable virtual keyboard and add keymapping --- backends/platform/maemo/debian/rules | 1 + backends/platform/maemo/maemo.cpp | 4 ++++ 2 files changed, 5 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules index 018f53bb11..7613df25b4 100755 --- a/backends/platform/maemo/debian/rules +++ b/backends/platform/maemo/debian/rules @@ -45,6 +45,7 @@ install: build install -m0644 -d debian/scummvm/opt/scummvm/share install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share + install -m0644 backends/vkeybd/packs/vkeybd_default.zip debian/scummvm/opt/scummvm/share # for optified version we can also add engine datafiles install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/m4.dat dists/engine-data/mads.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index 8362c0785e..1fb7ad0691 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -23,11 +23,13 @@ #if defined(MAEMO) #include "common/scummsys.h" +#include "common/config-manager.h" #include "backends/platform/maemo/maemo.h" #include "backends/events/maemosdl/maemosdl-events.h" #include "common/textconsole.h" + #include #include @@ -41,6 +43,8 @@ void OSystem_SDL_Maemo::initBackend() { if (_eventSource == 0) _eventSource = new MaemoSdlEventSource(); + ConfMan.set("vkeybdpath", DATA_PATH); + // Call parent implementation of this method OSystem_POSIX::initBackend(); } -- cgit v1.2.3 From c619c241dec00e5693e8ec83e6278a9978dc1ac5 Mon Sep 17 00:00:00 2001 From: TomFrost Date: Sat, 24 Sep 2011 15:12:27 -0400 Subject: WebOS: Enable scalers and Darwin compatibility. On Mac OS X (Darwin), there are minor differences in the 'sed' and 'install' tools that require slightly different usage. This distinction has been made in webos.mk, made possible by an additional flag in ./configure. --- backends/platform/webos/webos.mk | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/webos/webos.mk b/backends/platform/webos/webos.mk index 37223ac56c..20d79c0555 100644 --- a/backends/platform/webos/webos.mk +++ b/backends/platform/webos/webos.mk @@ -60,10 +60,19 @@ APP_ID = $(shell basename $(prefix)) APP_VERSION = $(shell printf "%d.%d.%02d%02d" $(VER_MAJOR) $(VER_MINOR) $(VER_PATCH) $(VER_PACKAGE)) DESTDIR ?= staging PORTDISTDIR ?= portdist +ifeq ($(HOST_COMPILER),Darwin) + SED_DASH_I = "-i \"\"" +else + SED_DASH_I = "-i" +endif install: all $(QUIET)$(INSTALL) -d "$(DESTDIR)$(prefix)" +ifeq ($(HOST_COMPILER),Darwin) + $(QUIET)$(INSTALL) -m 0644 "$(PATH_MOJO)/"* "$(DESTDIR)$(prefix)/" +else $(QUIET)$(INSTALL) -m 0644 -t "$(DESTDIR)$(prefix)/" "$(PATH_MOJO)/"* +endif $(QUIET)$(INSTALL) -m 0755 "$(PATH_MOJO)/start" "$(DESTDIR)$(prefix)/" $(QUIET)$(INSTALL) -d "$(DESTDIR)$(bindir)" $(QUIET)$(INSTALL) -c -m 755 "./$(EXECUTABLE)" "$(DESTDIR)$(bindir)/$(EXECUTABLE)" @@ -77,12 +86,12 @@ ifdef DYNAMIC_MODULES $(QUIET)$(INSTALL) -c -m 644 $(PLUGINS) "$(DESTDIR)$(libdir)/" $(QUIET)$(STRIP) "$(DESTDIR)$(libdir)/"* endif - $(QUIET)sed -i s/'APP_VERSION'/'$(APP_VERSION)'/ "$(DESTDIR)$(prefix)/appinfo.json" - $(QUIET)sed -i s/'APP_ID'/'$(APP_ID)'/ "$(DESTDIR)$(prefix)/appinfo.json" + $(QUIET)sed $(SED_DASH_I) s/'APP_VERSION'/'$(APP_VERSION)'/ "$(DESTDIR)$(prefix)/appinfo.json" + $(QUIET)sed $(SED_DASH_I) s/'APP_ID'/'$(APP_ID)'/ "$(DESTDIR)$(prefix)/appinfo.json" ifneq (,$(findstring -beta,$(APP_ID))) - $(QUIET)sed -i s/'APP_TITLE'/'ScummVM Beta'/ "$(DESTDIR)$(prefix)/appinfo.json" + $(QUIET)sed $(SED_DASH_I) s/'APP_TITLE'/'ScummVM Beta'/ "$(DESTDIR)$(prefix)/appinfo.json" else - $(QUIET)sed -i s/'APP_TITLE'/'ScummVM'/ "$(DESTDIR)$(prefix)/appinfo.json" + $(QUIET)sed $(SED_DASH_I) s/'APP_TITLE'/'ScummVM'/ "$(DESTDIR)$(prefix)/appinfo.json" endif uninstall: -- cgit v1.2.3 From 9467e4d8d4270deaa24e2d040f504fee82fc96ec Mon Sep 17 00:00:00 2001 From: TomFrost Date: Sun, 25 Sep 2011 12:15:38 -0400 Subject: WebOS: Reset package version to 0. The package version must be incremented for each new WebOS release, due to the device needing a new version to install. Whenever the ScummVM version is raised, this can be reset to 0. Changing to 0 in anticipation of ScummVM 1.4.0. --- backends/platform/webos/webos.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/webos/webos.mk b/backends/platform/webos/webos.mk index 20d79c0555..804b56de35 100644 --- a/backends/platform/webos/webos.mk +++ b/backends/platform/webos/webos.mk @@ -51,8 +51,8 @@ # Increment this number when the packaging of the app has been changed while # ScummVM itself has the same version as before. The number can be reset to -# 1 when the ScummVM version is increased. -VER_PACKAGE = 5 +# 0 when the ScummVM version is increased. +VER_PACKAGE = 0 PATH_DIST = $(srcdir)/dists/webos PATH_MOJO = $(PATH_DIST)/mojo -- cgit v1.2.3 From 428105b2d393b17e750893556040d665b3fb1c9a Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Mon, 3 Oct 2011 12:38:42 +0100 Subject: GPH: Minor cleanup (and rename header from gph-sdl.h to gph.h). --- backends/platform/gph/build/gp2xwiz-bundle.sh | 10 ++++++ backends/platform/gph/gph-backend.cpp | 11 +++--- backends/platform/gph/gph-main.cpp | 2 +- backends/platform/gph/gph-sdl.h | 51 --------------------------- backends/platform/gph/gph.h | 51 +++++++++++++++++++++++++++ 5 files changed, 66 insertions(+), 59 deletions(-) delete mode 100644 backends/platform/gph/gph-sdl.h create mode 100644 backends/platform/gph/gph.h (limited to 'backends/platform') diff --git a/backends/platform/gph/build/gp2xwiz-bundle.sh b/backends/platform/gph/build/gp2xwiz-bundle.sh index 579e2dc77b..2182f207c3 100644 --- a/backends/platform/gph/build/gp2xwiz-bundle.sh +++ b/backends/platform/gph/build/gp2xwiz-bundle.sh @@ -2,6 +2,16 @@ echo Quick script to make building a distribution of the GP2X Wiz backend more consistent. +# Set the paths up here to support the build. + +export PATH=/opt/open2x/gcc-4.1.1-glibc-2.3.6/arm-open2x-linux/bin:$PATH +export PATH=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin:$PATH +export CXX=arm-open2x-linux-g++ +export CC=arm-open2x-linux-gcc +export CXXFLAGS=-march=armv4t +export LDFLAGS=-static +export ASFLAGS=-mfloat-abi=soft + cd ../../../.. echo Building ScummVM for GP2X Wiz. diff --git a/backends/platform/gph/gph-backend.cpp b/backends/platform/gph/gph-backend.cpp index ae3466b836..8ee84ed6c0 100644 --- a/backends/platform/gph/gph-backend.cpp +++ b/backends/platform/gph/gph-backend.cpp @@ -25,10 +25,9 @@ #include "backends/platform/sdl/sdl-sys.h" -// #include "backends/platform/gph/gph-options.h" #include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h" #include "backends/platform/gph/gph-hw.h" -#include "backends/platform/gph/gph-sdl.h" +#include "backends/platform/gph/gph.h" #include "backends/plugins/posix/posix-provider.h" #include "backends/saves/default/default-saves.h" #include "backends/timer/default/default-timer.h" @@ -105,8 +104,9 @@ void OSystem_GPH::initBackend() { _savefileManager = new DefaultSaveFileManager(savePath); #ifdef DUMP_STDOUT - // The GP2X Wiz has a serial console on the breakout board but most users do not use this so we - // output all our STDOUT and STDERR to files for debug purposes. + // The GPH devices have a serial console on the breakout board + // but most users do not use this so we output all our STDOUT + // and STDERR to files for debug purposes. char STDOUT_FILE[PATH_MAX+1]; char STDERR_FILE[PATH_MAX+1]; @@ -169,9 +169,6 @@ void OSystem_GPH::initBackend() { /* Make sure SDL knows that we have a joystick we want to use. */ ConfMan.setInt("joystick_num", 0); - /* Now setup any device specific user options (Left handed mode, that sort of thing). */ - // GPH::setOptions(); - /* Pass to POSIX method to do the heavy lifting */ OSystem_POSIX::initBackend(); diff --git a/backends/platform/gph/gph-main.cpp b/backends/platform/gph/gph-main.cpp index 1a8c6686ca..4f290f71ed 100644 --- a/backends/platform/gph/gph-main.cpp +++ b/backends/platform/gph/gph-main.cpp @@ -20,7 +20,7 @@ * */ -#include "backends/platform/gph/gph-sdl.h" +#include "backends/platform/gph/gph.h" #include "backends/plugins/posix/posix-provider.h" #include "base/main.h" diff --git a/backends/platform/gph/gph-sdl.h b/backends/platform/gph/gph-sdl.h deleted file mode 100644 index 8b943f98f3..0000000000 --- a/backends/platform/gph/gph-sdl.h +++ /dev/null @@ -1,51 +0,0 @@ -/* 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 GPH_H -#define GPH_H - -#if defined(GPH_DEVICE) - -#include "backends/base-backend.h" -#include "backends/platform/sdl/sdl.h" -#include "backends/platform/sdl/posix/posix.h" -#include "backends/events/gph/gph-events.h" -#include "backends/graphics/gph/gph-graphics.h" - -#define __GP2XWIZ__ - -#ifndef PATH_MAX - #define PATH_MAX 255 -#endif - -class OSystem_GPH : public OSystem_POSIX { -public: - OSystem_GPH(); - - /* Platform Setup Stuff */ - void addSysArchivesToSearchSet(Common::SearchSet &s, int priority); - void initBackend(); - void quit(); -}; - -#endif -#endif //GPH_H diff --git a/backends/platform/gph/gph.h b/backends/platform/gph/gph.h new file mode 100644 index 0000000000..8b943f98f3 --- /dev/null +++ b/backends/platform/gph/gph.h @@ -0,0 +1,51 @@ +/* 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 GPH_H +#define GPH_H + +#if defined(GPH_DEVICE) + +#include "backends/base-backend.h" +#include "backends/platform/sdl/sdl.h" +#include "backends/platform/sdl/posix/posix.h" +#include "backends/events/gph/gph-events.h" +#include "backends/graphics/gph/gph-graphics.h" + +#define __GP2XWIZ__ + +#ifndef PATH_MAX + #define PATH_MAX 255 +#endif + +class OSystem_GPH : public OSystem_POSIX { +public: + OSystem_GPH(); + + /* Platform Setup Stuff */ + void addSysArchivesToSearchSet(Common::SearchSet &s, int priority); + void initBackend(); + void quit(); +}; + +#endif +#endif //GPH_H -- cgit v1.2.3 From 6269dcdd3cf9dfbbee4abd4441c88051edd70ea8 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Mon, 3 Oct 2011 13:43:42 +0100 Subject: GPH: Cleanup the format of code to match our Code Formatting Conventions. * No functional changes. --- backends/platform/gph/gph-backend.cpp | 92 +++++++++++++++++------------------ backends/platform/gph/gph-hw.cpp | 58 +++++++++++----------- backends/platform/gph/gph-hw.h | 8 +-- backends/platform/gph/gph-main.cpp | 2 +- backends/platform/gph/gph.h | 2 +- 5 files changed, 81 insertions(+), 81 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/gph/gph-backend.cpp b/backends/platform/gph/gph-backend.cpp index 8ee84ed6c0..49a1edf411 100644 --- a/backends/platform/gph/gph-backend.cpp +++ b/backends/platform/gph/gph-backend.cpp @@ -50,7 +50,7 @@ #include #include #include -#include // for getTimeAndDate() +#include // for getTimeAndDate() /* Dump console info to files. */ #define DUMP_STDOUT @@ -103,50 +103,50 @@ void OSystem_GPH::initBackend() { _savefileManager = new DefaultSaveFileManager(savePath); - #ifdef DUMP_STDOUT - // The GPH devices have a serial console on the breakout board - // but most users do not use this so we output all our STDOUT - // and STDERR to files for debug purposes. - char STDOUT_FILE[PATH_MAX+1]; - char STDERR_FILE[PATH_MAX+1]; - - strcpy(STDOUT_FILE, workDirName); - strcpy(STDERR_FILE, workDirName); - strcat(STDOUT_FILE, "/scummvm.stdout.txt"); - strcat(STDERR_FILE, "/scummvm.stderr.txt"); - - // Flush the output in case anything is queued - fclose(stdout); - fclose(stderr); - - // Redirect standard input and standard output - FILE *newfp = freopen(STDOUT_FILE, "w", stdout); - if (newfp == NULL) { - #if !defined(stdout) - stdout = fopen(STDOUT_FILE, "w"); - #else - newfp = fopen(STDOUT_FILE, "w"); - if (newfp) { - *stdout = *newfp; - } - #endif +#ifdef DUMP_STDOUT + // The GPH devices have a serial console on the breakout board + // but most users do not use this so we output all our STDOUT + // and STDERR to files for debug purposes. + char STDOUT_FILE[PATH_MAX+1]; + char STDERR_FILE[PATH_MAX+1]; + + strcpy(STDOUT_FILE, workDirName); + strcpy(STDERR_FILE, workDirName); + strcat(STDOUT_FILE, "/scummvm.stdout.txt"); + strcat(STDERR_FILE, "/scummvm.stderr.txt"); + + // Flush the output in case anything is queued + fclose(stdout); + fclose(stderr); + + // Redirect standard input and standard output + FILE *newfp = freopen(STDOUT_FILE, "w", stdout); + if (newfp == NULL) { +#if !defined(stdout) + stdout = fopen(STDOUT_FILE, "w"); +#else + newfp = fopen(STDOUT_FILE, "w"); + if (newfp) { + *stdout = *newfp; } +#endif + } - newfp = freopen(STDERR_FILE, "w", stderr); - if (newfp == NULL) { - #if !defined(stderr) - stderr = fopen(STDERR_FILE, "w"); - #else - newfp = fopen(STDERR_FILE, "w"); - if (newfp) { - *stderr = *newfp; - } - #endif + newfp = freopen(STDERR_FILE, "w", stderr); + if (newfp == NULL) { +#if !defined(stderr) + stderr = fopen(STDERR_FILE, "w"); +#else + newfp = fopen(STDERR_FILE, "w"); + if (newfp) { + *stderr = *newfp; } +#endif + } - setbuf(stderr, NULL); - printf("%s\n", "Debug: STDOUT and STDERR redirected to text files."); - #endif /* DUMP_STDOUT */ + setbuf(stderr, NULL); + printf("%s\n", "Debug: STDOUT and STDERR redirected to text files."); +#endif /* DUMP_STDOUT */ /* Initialize any GP2X Wiz specific stuff we may want (Batt Status, scaler etc.) */ WIZ_HW::deviceInit(); @@ -214,11 +214,11 @@ void OSystem_GPH::quit() { WIZ_HW::deviceDeinit(); - #ifdef DUMP_STDOUT - printf("%s\n", "Debug: STDOUT and STDERR text files closed."); - fclose(stdout); - fclose(stderr); - #endif /* DUMP_STDOUT */ +#ifdef DUMP_STDOUT + printf("%s\n", "Debug: STDOUT and STDERR text files closed."); + fclose(stdout); + fclose(stderr); +#endif /* DUMP_STDOUT */ OSystem_POSIX::quit(); } diff --git a/backends/platform/gph/gph-hw.cpp b/backends/platform/gph/gph-hw.cpp index 2d70158001..cde50dc6b4 100644 --- a/backends/platform/gph/gph-hw.cpp +++ b/backends/platform/gph/gph-hw.cpp @@ -43,13 +43,13 @@ namespace WIZ_HW { enum { - VOLUME_NOCHG = 0, - VOLUME_DOWN = 1, - VOLUME_UP = 2, - VOLUME_CHANGE_RATE = 8, - VOLUME_MIN = 0, - VOLUME_INITIAL = 60, - VOLUME_MAX = 100 + VOLUME_NOCHG = 0, + VOLUME_DOWN = 1, + VOLUME_UP = 2, + VOLUME_CHANGE_RATE = 8, + VOLUME_MIN = 0, + VOLUME_INITIAL = 60, + VOLUME_MAX = 100 }; int volumeLevel = VOLUME_INITIAL; @@ -61,24 +61,24 @@ void deviceDeinit() { } void mixerMoveVolume(int direction) { - if (volumeLevel <= 10) { - if (direction == VOLUME_UP) volumeLevel += VOLUME_CHANGE_RATE/2; - if (direction == VOLUME_DOWN) volumeLevel -= VOLUME_CHANGE_RATE/2; - } else { - if (direction == VOLUME_UP) volumeLevel += VOLUME_CHANGE_RATE; - if (direction == VOLUME_DOWN) volumeLevel -= VOLUME_CHANGE_RATE; - } - - if (volumeLevel < VOLUME_MIN) volumeLevel = VOLUME_MIN; - if (volumeLevel > VOLUME_MAX) volumeLevel = VOLUME_MAX; - - unsigned long soundDev = open("/dev/mixer", O_RDWR); - - if (soundDev) { - int vol = ((volumeLevel << 8) | volumeLevel); - ioctl(soundDev, SOUND_MIXER_WRITE_PCM, &vol); - close(soundDev); - } + if (volumeLevel <= 10) { + if (direction == VOLUME_UP) volumeLevel += VOLUME_CHANGE_RATE / 2; + if (direction == VOLUME_DOWN) volumeLevel -= VOLUME_CHANGE_RATE / 2; + } else { + if (direction == VOLUME_UP) volumeLevel += VOLUME_CHANGE_RATE; + if (direction == VOLUME_DOWN) volumeLevel -= VOLUME_CHANGE_RATE; + } + + if (volumeLevel < VOLUME_MIN) volumeLevel = VOLUME_MIN; + if (volumeLevel > VOLUME_MAX) volumeLevel = VOLUME_MAX; + + unsigned long soundDev = open("/dev/mixer", O_RDWR); + + if (soundDev) { + int vol = ((volumeLevel << 8) | volumeLevel); + ioctl(soundDev, SOUND_MIXER_WRITE_PCM, &vol); + close(soundDev); + } } } /* namespace WIZ_HW */ @@ -87,9 +87,9 @@ namespace GPH { enum { /* Touchscreen TapMode */ - TAPMODE_LEFT = 0, - TAPMODE_RIGHT = 1, - TAPMODE_HOVER = 2 + TAPMODE_LEFT = 0, + TAPMODE_RIGHT = 1, + TAPMODE_HOVER = 2 }; int tapmodeLevel = TAPMODE_LEFT; @@ -103,7 +103,7 @@ void ToggleTapMode() { tapmodeLevel = TAPMODE_LEFT; } else { tapmodeLevel = TAPMODE_LEFT; - } + } } } /* namespace GPH */ diff --git a/backends/platform/gph/gph-hw.h b/backends/platform/gph/gph-hw.h index 0a1205156b..f9584ca37e 100644 --- a/backends/platform/gph/gph-hw.h +++ b/backends/platform/gph/gph-hw.h @@ -32,9 +32,9 @@ namespace WIZ_HW { extern int volumeLevel; -extern void deviceInit(); -extern void deviceDeinit(); -extern void mixerMoveVolume(int); +extern void deviceInit(); +extern void deviceDeinit(); +extern void mixerMoveVolume(int); } /* namespace WIZ_HW */ @@ -42,7 +42,7 @@ namespace GPH { extern int tapmodeLevel; -extern void ToggleTapMode(); +extern void ToggleTapMode(); } /* namespace GPH */ diff --git a/backends/platform/gph/gph-main.cpp b/backends/platform/gph/gph-main.cpp index 4f290f71ed..2c43af151f 100644 --- a/backends/platform/gph/gph-main.cpp +++ b/backends/platform/gph/gph-main.cpp @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) { int res = scummvm_main(argc, argv); // Free OSystem - delete (OSystem_GPH *)g_system; + delete(OSystem_GPH *)g_system; return res; } diff --git a/backends/platform/gph/gph.h b/backends/platform/gph/gph.h index 8b943f98f3..80f43f0bab 100644 --- a/backends/platform/gph/gph.h +++ b/backends/platform/gph/gph.h @@ -34,7 +34,7 @@ #define __GP2XWIZ__ #ifndef PATH_MAX - #define PATH_MAX 255 +#define PATH_MAX 255 #endif class OSystem_GPH : public OSystem_POSIX { -- cgit v1.2.3 From e3d7606188cfa6896da562bd70541a8aff5561b6 Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Mon, 3 Oct 2011 23:53:22 +0100 Subject: MACOSX: Detect system preferred language when starting bundle This reimplement getSystemLanguage() for MacOS X because setlocale() only works if the application is started from the terminal. Instead we use CFBundleCopyPreferredLocalizationsFromArray() which requires the translations to be listed in the bundle plist file (this had already been committed). This fixes bug #3394080. --- backends/platform/sdl/macosx/macosx.cpp | 47 +++++++++++++++++++++++++++++++++ backends/platform/sdl/macosx/macosx.h | 2 ++ 2 files changed, 49 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp index d9de4e5e33..639bd980f6 100644 --- a/backends/platform/sdl/macosx/macosx.cpp +++ b/backends/platform/sdl/macosx/macosx.cpp @@ -118,4 +118,51 @@ bool OSystem_MacOSX::displayLogFile() { return err != noErr; } +Common::String OSystem_MacOSX::getSystemLanguage() const { +#if defined(USE_DETECTLANG) && defined(USE_TRANSLATION) + CFArrayRef availableLocalizations = CFBundleCopyBundleLocalizations(CFBundleGetMainBundle()); + if (availableLocalizations) { + CFArrayRef preferredLocalizations = CFBundleCopyPreferredLocalizationsFromArray(availableLocalizations); + CFRelease(availableLocalizations); + if (preferredLocalizations) { + CFIndex localizationsSize = CFArrayGetCount(preferredLocalizations); + // Since we have a list of sorted preferred localization, I would like here to + // check that they are supported by the TranslationManager and take the first + // one that is supported. The listed localizations are taken from the Bundle + // plist file, so they should all be supported, unless the plist file is not + // synchronized with the translations.dat file. So this is not really a big + // issue. And because getSystemLanguage() is called from the constructor of + // TranslationManager (therefore before the instance pointer is set), calling + // TransMan here results in an infinite loop and creation of a lot of TransMan + // instances. + /* + for (CFIndex i = 0 ; i < localizationsSize ; ++i) { + CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferredLocalizations, i); + char buffer[10]; + CFStringGetCString(language, buffer, 50, kCFStringEncodingASCII); + int32 languageId = TransMan.findMatchingLanguage(buffer); + if (languageId != -1) { + CFRelease(preferredLocalizations); + return TransMan.getLangById(languageId); + } + } + */ + if (localizationsSize > 0) { + CFStringRef language = (CFStringRef)CFArrayGetValueAtIndex(preferredLocalizations, 0); + char buffer[10]; + CFStringGetCString(language, buffer, 50, kCFStringEncodingASCII); + CFRelease(preferredLocalizations); + return buffer; + } + CFRelease(preferredLocalizations); + } + + } + // Falback to POSIX implementation + return OSystem_POSIX::getSystemLanguage(); +#else // USE_DETECTLANG + return OSystem_POSIX::getSystemLanguage(); +#endif // USE_DETECTLANG +} + #endif diff --git a/backends/platform/sdl/macosx/macosx.h b/backends/platform/sdl/macosx/macosx.h index 86c70297ec..4837e643b3 100644 --- a/backends/platform/sdl/macosx/macosx.h +++ b/backends/platform/sdl/macosx/macosx.h @@ -32,6 +32,8 @@ public: virtual bool hasFeature(Feature f); virtual bool displayLogFile(); + + virtual Common::String getSystemLanguage() const; virtual void initBackend(); virtual void addSysArchivesToSearchSet(Common::SearchSet &s, int priority = 0); -- cgit v1.2.3 From 43f45ce939fc0e7c655ef8ca54e466599cfe14ff Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Wed, 5 Oct 2011 20:19:55 -0500 Subject: MAEMO: Change maintainer in debian/control and revise debian/changelog --- backends/platform/maemo/debian/changelog | 4 ++-- backends/platform/maemo/debian/control | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/debian/changelog b/backends/platform/maemo/debian/changelog index 9798197807..d3e0287186 100644 --- a/backends/platform/maemo/debian/changelog +++ b/backends/platform/maemo/debian/changelog @@ -1,8 +1,8 @@ scummvm (1.4.0~git) unstable; urgency=low - * Non-maintainer upload. + * development snapshot - -- Tarek Soliman Wed, 29 Jun 2011 16:41:09 -0500 + -- Tarek Soliman Wed, 05 Oct 2011 19:01:25 -0500 scummvm (1.2.1~pre) unstable; urgency=low diff --git a/backends/platform/maemo/debian/control b/backends/platform/maemo/debian/control index 809d65c800..a1f0d95002 100644 --- a/backends/platform/maemo/debian/control +++ b/backends/platform/maemo/debian/control @@ -1,7 +1,7 @@ Source: scummvm Section: user/games Priority: optional -Maintainer: Frantisek Dufka +Maintainer: Tarek Soliman Build-Depends: debhelper (>> 4.0.0), libsdl1.2-dev, libmad0-dev, libasound2-dev, libvorbisidec-dev, libmpeg2-4-dev, libflac-dev (>= 1.1.2), libz-dev, quilt Standards-Version: 3.6.1.1 -- cgit v1.2.3 From a27c2b401c1027b94e0f793ca4067be2b0af2066 Mon Sep 17 00:00:00 2001 From: David-John Willis Date: Mon, 10 Oct 2011 21:18:07 +0100 Subject: OPENPANDORA: Cleanup the format of code a little to match our Code Formatting Conventions. * No functional changes. * Automated astyle pass. --- backends/platform/openpandora/op-backend.cpp | 112 +++++++++++++-------------- backends/platform/openpandora/op-main.cpp | 2 +- backends/platform/openpandora/op-options.cpp | 8 +- backends/platform/openpandora/op-options.h | 2 +- backends/platform/openpandora/op-sdl.h | 2 +- 5 files changed, 63 insertions(+), 63 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/openpandora/op-backend.cpp b/backends/platform/openpandora/op-backend.cpp index 5231e9790d..dcec387f97 100644 --- a/backends/platform/openpandora/op-backend.cpp +++ b/backends/platform/openpandora/op-backend.cpp @@ -49,7 +49,7 @@ #include #include #include -#include // for getTimeAndDate() +#include // for getTimeAndDate() /* Dump console info to files. */ #define DUMP_STDOUT @@ -97,7 +97,7 @@ void OSystem_OP::initBackend() { // if (_mixer == 0) { // _mixerManager = new DoubleBufferSDLMixerManager(); - // Setup and start mixer + // Setup and start mixer // _mixerManager->init(); // } @@ -123,49 +123,49 @@ void OSystem_OP::initBackend() { _savefileManager = new DefaultSaveFileManager(savePath); - #ifdef DUMP_STDOUT - // The OpenPandora has a serial console on the EXT connection but most users do not use this so we - // output all our STDOUT and STDERR to files for debug purposes. - char STDOUT_FILE[PATH_MAX+1]; - char STDERR_FILE[PATH_MAX+1]; - - strcpy(STDOUT_FILE, workDirName); - strcpy(STDERR_FILE, workDirName); - strcat(STDOUT_FILE, "/scummvm.stdout.txt"); - strcat(STDERR_FILE, "/scummvm.stderr.txt"); - - // Flush the output in case anything is queued - fclose(stdout); - fclose(stderr); - - // Redirect standard input and standard output - FILE *newfp = freopen(STDOUT_FILE, "w", stdout); - if (newfp == NULL) { - #if !defined(stdout) - stdout = fopen(STDOUT_FILE, "w"); - #else - newfp = fopen(STDOUT_FILE, "w"); - if (newfp) { - *stdout = *newfp; - } - #endif +#ifdef DUMP_STDOUT + // The OpenPandora has a serial console on the EXT connection but most users do not use this so we + // output all our STDOUT and STDERR to files for debug purposes. + char STDOUT_FILE[PATH_MAX+1]; + char STDERR_FILE[PATH_MAX+1]; + + strcpy(STDOUT_FILE, workDirName); + strcpy(STDERR_FILE, workDirName); + strcat(STDOUT_FILE, "/scummvm.stdout.txt"); + strcat(STDERR_FILE, "/scummvm.stderr.txt"); + + // Flush the output in case anything is queued + fclose(stdout); + fclose(stderr); + + // Redirect standard input and standard output + FILE *newfp = freopen(STDOUT_FILE, "w", stdout); + if (newfp == NULL) { +#if !defined(stdout) + stdout = fopen(STDOUT_FILE, "w"); +#else + newfp = fopen(STDOUT_FILE, "w"); + if (newfp) { + *stdout = *newfp; } +#endif + } - newfp = freopen(STDERR_FILE, "w", stderr); - if (newfp == NULL) { - #if !defined(stderr) - stderr = fopen(STDERR_FILE, "w"); - #else - newfp = fopen(STDERR_FILE, "w"); - if (newfp) { - *stderr = *newfp; - } - #endif + newfp = freopen(STDERR_FILE, "w", stderr); + if (newfp == NULL) { +#if !defined(stderr) + stderr = fopen(STDERR_FILE, "w"); +#else + newfp = fopen(STDERR_FILE, "w"); + if (newfp) { + *stderr = *newfp; } +#endif + } - setbuf(stderr, NULL); - printf("%s\n", "Debug: STDOUT and STDERR redirected to text files."); - #endif /* DUMP_STDOUT */ + setbuf(stderr, NULL); + printf("%s\n", "Debug: STDOUT and STDERR redirected to text files."); +#endif /* DUMP_STDOUT */ /* Trigger autosave every 4 minutes. */ ConfMan.registerDefault("autosave_period", 4 * 60); @@ -187,7 +187,7 @@ void OSystem_OP::initBackend() { _inited = true; } - // enable joystick +// enable joystick // if (joystick_num > -1 && SDL_NumJoysticks() > 0) { // printf("Using joystick: %s\n", SDL_JoystickName(0)); // _joystick = SDL_JoystickOpen(joystick_num); @@ -195,13 +195,13 @@ void OSystem_OP::initBackend() { // // setupMixer(); - // Note: We could implement a custom SDLTimerManager by using - // SDL_AddTimer. That might yield better timer resolution, but it would - // also change the semantics of a timer: Right now, ScummVM timers - // *never* run in parallel, due to the way they are implemented. If we - // switched to SDL_AddTimer, each timer might run in a separate thread. - // However, not all our code is prepared for that, so we can't just - // switch. Still, it's a potential future change to keep in mind. +// Note: We could implement a custom SDLTimerManager by using +// SDL_AddTimer. That might yield better timer resolution, but it would +// also change the semantics of a timer: Right now, ScummVM timers +// *never* run in parallel, due to the way they are implemented. If we +// switched to SDL_AddTimer, each timer might run in a separate thread. +// However, not all our code is prepared for that, so we can't just +// switch. Still, it's a potential future change to keep in mind. // _timer = new DefaultTimerManager(); // _timerID = SDL_AddTimer(10, &timer_handler, _timer); @@ -217,9 +217,9 @@ void OSystem_OP::initSDL() { if (SDL_Init(sdlFlags) == -1) error("Could not initialize SDL: %s", SDL_GetError()); - uint8_t hiddenCursorData = 0; + uint8_t hiddenCursorData = 0; - hiddenCursor = SDL_CreateCursor(&hiddenCursorData, &hiddenCursorData, 8, 1, 0, 0); + hiddenCursor = SDL_CreateCursor(&hiddenCursorData, &hiddenCursorData, 8, 1, 0, 0); /* On the OpenPandora we need to work around an SDL assumption that returns relative mouse coordinates when you get to the screen @@ -277,11 +277,11 @@ void OSystem_OP::quit() { SDL_FreeCursor(hiddenCursor); - #ifdef DUMP_STDOUT - printf("%s\n", "Debug: STDOUT and STDERR text files closed."); - fclose(stdout); - fclose(stderr); - #endif /* DUMP_STDOUT */ +#ifdef DUMP_STDOUT + printf("%s\n", "Debug: STDOUT and STDERR text files closed."); + fclose(stdout); + fclose(stderr); +#endif /* DUMP_STDOUT */ OSystem_POSIX::quit(); } diff --git a/backends/platform/openpandora/op-main.cpp b/backends/platform/openpandora/op-main.cpp index bb359e7204..ebe018f570 100644 --- a/backends/platform/openpandora/op-main.cpp +++ b/backends/platform/openpandora/op-main.cpp @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) { int res = scummvm_main(argc, argv); // Free OSystem - delete (OSystem_OP *)g_system; + delete(OSystem_OP *)g_system; return res; } diff --git a/backends/platform/openpandora/op-options.cpp b/backends/platform/openpandora/op-options.cpp index c60ba58cc7..58f0fb7188 100644 --- a/backends/platform/openpandora/op-options.cpp +++ b/backends/platform/openpandora/op-options.cpp @@ -31,9 +31,9 @@ namespace OP { enum { /* Touchscreen TapMode */ - TAPMODE_LEFT = 0, - TAPMODE_RIGHT = 1, - TAPMODE_HOVER = 2 + TAPMODE_LEFT = 0, + TAPMODE_RIGHT = 1, + TAPMODE_HOVER = 2 }; int tapmodeLevel = TAPMODE_LEFT; @@ -47,7 +47,7 @@ void ToggleTapMode() { tapmodeLevel = TAPMODE_LEFT; } else { tapmodeLevel = TAPMODE_LEFT; - } + } } } /* namespace OP */ diff --git a/backends/platform/openpandora/op-options.h b/backends/platform/openpandora/op-options.h index ebc83ca00c..919d217f4b 100644 --- a/backends/platform/openpandora/op-options.h +++ b/backends/platform/openpandora/op-options.h @@ -32,7 +32,7 @@ namespace OP { extern int tapmodeLevel; -extern void ToggleTapMode(); +extern void ToggleTapMode(); } /* namespace OP */ diff --git a/backends/platform/openpandora/op-sdl.h b/backends/platform/openpandora/op-sdl.h index d493c3957c..8cccbb5f86 100644 --- a/backends/platform/openpandora/op-sdl.h +++ b/backends/platform/openpandora/op-sdl.h @@ -34,7 +34,7 @@ //#define MIXER_DOUBLE_BUFFERING 1 #ifndef PATH_MAX - #define PATH_MAX 255 +#define PATH_MAX 255 #endif class OSystem_OP : public OSystem_POSIX { -- cgit v1.2.3 From 775a8e6f8d9e9b9b4cc9e14b4e795d683359093d Mon Sep 17 00:00:00 2001 From: anotherguest Date: Tue, 11 Oct 2011 08:53:00 +0200 Subject: Symbian:Update makefiles and installation files. --- .../S60v3/scummvm-CVS-SymbianS60v3_split.pkg | 88 ++++++++++++++++++++++ .../symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg | 86 +++++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg create mode 100644 backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg (limited to 'backends/platform') diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg new file mode 100644 index 0000000000..ab0facf4fa --- /dev/null +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg @@ -0,0 +1,88 @@ +; +; 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. +; +; $URL$ +; $Id$ +; +; + +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +;Language - standard language definitions +&EN + +; List of localised vendor names - one per language. At least one must be provided (English [EN]). +; List must correspond to list of languages specified elsewhere in the .pkg +%{"ScummVM"} +; The non-localised, globally unique vendor name (mandatory) +:"ScummVM" + +; UID is the app's UID +#{"ScummVM S60v3"},(0xA0000657),1,40,0 + +;Supports Series 60 v 3.0 +[0x101F7961], 0, 0, 0, {"Series60ProductID"} +;Supports Series 60 v 5.0 +[0x1028315F], 0, 0, 0, {"Series60ProductID"} + +; Launcher, Application, AIF & Resource file +"\epoc32\release\gcce\urel\ScummVM.exe"- "!:\sys\bin\ScummVM.exe" +"\epoc32\data\z\resource\apps\ScummVM.rsc"- "!:\resource\apps\ScummVM.rsc" +"\epoc32\Data\Z\resource\apps\scummvm_loc.rsc"- "!:\resource\apps\scummvm_loc.rsc" +"\epoc32\data\Z\resource\APPS\scummvm.MIF"- "!:\resource\apps\scummvm.MIF" +"\epoc32\data\z\private\10003a3f\apps\scummvm_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_reg.rsc" + +"\epoc32\release\gcce\urel\ScummVM_A0000658.exe"- "!:\sys\bin\ScummVM_A0000658.exe" +"\epoc32\data\z\resource\apps\ScummVM_A0000658.rsc"- "!:\resource\apps\ScummVM_A0000658.rsc" +"\epoc32\Data\Z\resource\apps\ScummVM_A0000658_loc.rsc"- "!:\resource\apps\ScummVM_A0000658_loc.rsc" +"\epoc32\data\z\private\10003a3f\apps\scummvm_A0000658_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_A0000658_reg.rsc" + +"..\..\..\..\dists\pred.dic"-"c:\data\scummvm\pred.dic" + +; Scummvm Documentation +"..\..\..\..\COPYRIGHT"-"!:\resource\apps\scummvm\COPYRIGHT", FT, TC +"..\..\..\..\COPYING"-"!:\resource\apps\scummvm\COPYING", FT, TC +"..\README"-"!:\resource\apps\scummvm\SYMBIAN_README", FT, TC +"..\..\..\..\AUTHORS"-"!:\resource\apps\scummvm\AUTHORS" +"..\..\..\..\README"-"!:\resource\apps\scummvm\README" +"..\..\..\..\NEWS"-"!:\resource\apps\scummvm\NEWS" + +; Common datafiles needed for some games +"..\..\..\..\dists\engine-data\kyra.dat"-"c:\data\scummvm\kyra.dat" +"..\..\..\..\dists\engine-data\sky.cpt"-"c:\data\scummvm\sky.cpt" +"..\..\..\..\dists\engine-data\hugo.dat"-"c:\data\scummvm\hugo.dat" +"..\..\..\..\dists\engine-data\lure.dat"-"c:\data\scummvm\lure.dat" +"..\..\..\..\dists\engine-data\drascula.dat"-"c:\data\scummvm\drascula.dat" +"..\..\..\..\dists\engine-data\m4.dat"-"c:\data\scummvm\m4.dat" +"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\data\scummvm\teenagent.dat" +"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat" +"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip" +"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat" +"..\..\..\..\gui\themes\scummclassic.zip"-"c:\data\scummvm\scummclassic.zip" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"c:\data\scummvm\scummvm.ini",FILENULL +""-"c:\data\scummvm\scummvm.stdout.txt",FILENULL +""-"c:\data\scummvm\scummvm.stderr.txt",FILENULL +""-"c:\data\scummvm\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg new file mode 100644 index 0000000000..bc5f975044 --- /dev/null +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg @@ -0,0 +1,86 @@ +; 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. +; +; $URL$ +; $Id$ +; +; + +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + + +; List of localised vendor names - one per language. At least one must be provided (English [EN]). +; List must correspond to list of languages specified elsewhere in the .pkg +%{"ScummVM"} +; The non-localised, globally unique vendor name (mandatory) +:"ScummVM" + +; UID is the app's UID +#{"ScummVM UIQ3"},(0xA0000657),1,40,0 + +; ProductID for UIQ 3.0 +; Product/platform version UID, Major, Minor, Build, Product ID +(0x101F6300), 3, 0, 0, {"UIQ30ProductID"} + +; Application, AIF & Resource file +"\epoc32\release\gcce\urel\ScummVM.exe"- "!:\sys\bin\ScummVM.exe" +"\epoc32\data\z\resource\apps\ScummVM.rsc"- "!:\resource\apps\ScummVM.rsc" +"\epoc32\Data\Z\resource\apps\scummvm_loc.rsc"- "!:\resource\apps\scummvm_loc.rsc" +"\epoc32\data\Z\resource\APPS\scummvm.MBM"- "!:\resource\apps\scummvm.MBM" +"\epoc32\data\z\private\10003a3f\apps\scummvm_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_reg.rsc" + +"\epoc32\release\gcce\urel\ScummVM_A0000658.exe"- "!:\sys\bin\ScummVM_A0000658.exe" +"\epoc32\data\z\resource\apps\ScummVM_A0000658.rsc"- "!:\resource\apps\ScummVM_A0000658.rsc" +"\epoc32\Data\Z\resource\apps\ScummVM_A0000658_loc.rsc"- "!:\resource\apps\ScummVM_A0000658_loc.rsc" +"\epoc32\data\z\private\10003a3f\apps\scummvm_A0000658_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_A0000658_reg.rsc" + +"..\..\..\..\dists\pred.dic"-"c:\shared\scummvm\pred.dic" + +; Scummvm Documentation +"..\..\..\..\COPYRIGHT"-"!:\resource\apps\scummvm\COPYRIGHT", FT, TC +"..\..\..\..\COPYING"-"!:\resource\apps\scummvm\COPYING", FT, TC +"..\README"-"!:\system\apps\scummvm\SYMBIAN_README", FT, TC +"..\..\..\..\AUTHORS"-"!:\resource\apps\scummvm\AUTHORS" +"..\..\..\..\README"-"!:\resource\apps\scummvm\README" +"..\..\..\..\NEWS"-"!:\resource\apps\scummvm\NEWS" + +; Common datafiles needed for some games +"..\..\..\..\dists\engine-data\kyra.dat"-"c:\shared\scummvm\kyra.dat" +"..\..\..\..\dists\engine-data\sky.cpt"-"c:\shared\scummvm\sky.cpt" +"..\..\..\..\dists\engine-data\hugo.dat"-"c:\shared\scummvm\hugo.dat" +"..\..\..\..\dists\engine-data\lure.dat"-"c:\shared\scummvm\lure.dat" +"..\..\..\..\dists\engine-data\drascula.dat"-"c:\shared\scummvm\drascula.dat" +"..\..\..\..\dists\engine-data\m4.dat"-"c:\shared\scummvm\m4.dat" +"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat" +"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat" +"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip" +"..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat" +"..\..\..\..\gui\themes\scummclassic.zip"-"c:\shared\scummvm\scummclassic.zip" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"c:\shared\scummvm\scummvm.ini",FILENULL +""-"c:\shared\scummvm\scummvm.stdout.txt",FILENULL +""-"c:\shared\scummvm\scummvm.stderr.txt",FILENULL +""-"c:\shared\scummvm\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall. -- cgit v1.2.3 From 639cb97881a5309831fad891f02de1937efdc173 Mon Sep 17 00:00:00 2001 From: anotherguest Date: Tue, 11 Oct 2011 08:55:10 +0200 Subject: Symbian:Updated makefiles to fit new files and structure --- backends/platform/symbian/README | 11 +++++++++++ backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in | 6 +++++- backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in | 6 +++++- backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg | 5 ++++- backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in | 6 +++++- backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in | 6 +++++- backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg | 6 +++++- backends/platform/symbian/mmp/scummvm_agi.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_agos.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_base.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_cine.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_cruise.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_draci.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_drascula.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_gob.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_groovie.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_hugo.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_kyra.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_lastexpress.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_lure.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_m4.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_made.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_mohawk.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_parallaction.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_queen.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_saga.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_sci.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_scumm.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_sky.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_sword1.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_sword2.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_teenagent.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_tinsel.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_toon.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_touche.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_tsage.mmp.in | 2 +- backends/platform/symbian/mmp/scummvm_tucker.mmp.in | 2 +- 37 files changed, 70 insertions(+), 36 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/symbian/README b/backends/platform/symbian/README index 3e3be592e7..83e98a534a 100644 --- a/backends/platform/symbian/README +++ b/backends/platform/symbian/README @@ -24,6 +24,17 @@ About ScummVM Jurgen and Lars have successfully transfered all needed changes into CVS/SVN, with additional helpful tools for Symbian OS Release History: + Release version: 1.4.0 + * Nothing significant in the Symbian port, except SDL improvements (new SDL version used) + * See main readme for general ScummVM improvements, major update + + Release version: 1.3.1 + * Nothing significant in the Symbian port, except SDL improvements (new SDL version used) + * See main readme for general ScummVM improvements, major update + + Release version: 1.3.0 + * Nothing significant in the Symbian port, except SDL improvements (new SDL version used) + * See main readme for general ScummVM improvements, major update Release version: 1.2.1 * Symbian port now split in two parts, ScummVM 1 and ScummVM 2 to keep the exe size down. ScummVM 1 contains the following engines: diff --git a/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in index aa5e1f9b18..583d1a35e7 100644 --- a/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in +++ b/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in @@ -87,7 +87,7 @@ STATICLIBRARY esdl.lib // *** Include paths -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\engines +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio SYSTEMINCLUDE \epoc32\include\ESDL @@ -130,9 +130,13 @@ SOURCE gui\Dialog.cpp // Common error source common\error.cpp +source common\quicktime.cpp // Special for graphics source graphics\iff.cpp +source backends\graphics\symbiansdl\symbiansdl-graphics.cpp +source backends\graphics\surfacesdl\surfacesdl-graphics.cpp +source engines\obsolete.cpp // *** Dynamic Libraries LIBRARY cone.lib eikcore.lib diff --git a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in index 09592ef3e3..5367bf0d1f 100644 --- a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in +++ b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in @@ -87,7 +87,7 @@ STATICLIBRARY esdl.lib // *** Include paths -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\engines +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio SYSTEMINCLUDE \epoc32\include\ESDL @@ -130,9 +130,13 @@ SOURCE gui\Dialog.cpp // Common error source common\error.cpp +source common\quicktime.cpp // Special for graphics source graphics\iff.cpp +source backends\graphics\symbiansdl\symbiansdl-graphics.cpp +source backends\graphics\surfacesdl\surfacesdl-graphics.cpp +source engines\obsolete.cpp // *** Dynamic Libraries LIBRARY cone.lib eikcore.lib diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg index 2cc49a2bc6..c61030415c 100644 --- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg @@ -33,7 +33,7 @@ :"ScummVM" ; UID is the app's UID -#{"ScummVM S60v3"},(0xA0000657),1,30,0 +#{"ScummVM S60v3"},(0xA0000657),1,40,0 ;Supports Series 60 v 3.0 [0x101F7961], 0, 0, 0, {"Series60ProductID"} @@ -60,12 +60,15 @@ ; Common datafiles needed for some games "..\..\..\..\dists\engine-data\kyra.dat"-"c:\data\scummvm\kyra.dat" "..\..\..\..\dists\engine-data\sky.cpt"-"c:\data\scummvm\sky.cpt" +"..\..\..\..\dists\engine-data\hugo.dat"-"c:\data\scummvm\hugo.dat" "..\..\..\..\dists\engine-data\lure.dat"-"c:\data\scummvm\lure.dat" "..\..\..\..\dists\engine-data\drascula.dat"-"c:\data\scummvm\drascula.dat" "..\..\..\..\dists\engine-data\m4.dat"-"c:\data\scummvm\m4.dat" "..\..\..\..\dists\engine-data\teenagent.dat"-"c:\data\scummvm\teenagent.dat" +"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat" +"..\..\..\..\gui\themes\scummclassic.zip"-"c:\data\scummvm\scummclassic.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\data\scummvm\scummvm.ini",FILENULL diff --git a/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in index e6f2b691ce..3bc93d8ce3 100644 --- a/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in +++ b/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in @@ -88,7 +88,7 @@ STATICLIBRARY esdl.lib // *** Include paths -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\engines +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\sound SYSTEMINCLUDE \epoc32\include\ESDL @@ -128,9 +128,13 @@ SOURCE gui\Dialog.cpp // Common error source common\error.cpp +source common\quicktime.cpp // Special for graphics source graphics\iff.cpp +source backends\graphics\symbiansdl\symbiansdl-graphics.cpp +source backends\graphics\surfacesdl\surfacesdl-graphics.cpp +source engines\obsolete.cpp // *** Dynamic Libraries LIBRARY cone.lib eikcore.lib diff --git a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in index 3b6a3d9bd7..bd5016f8d1 100644 --- a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in +++ b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in @@ -88,7 +88,7 @@ STATICLIBRARY esdl.lib // *** Include paths -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\engines +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\sound SYSTEMINCLUDE \epoc32\include\ESDL @@ -128,9 +128,13 @@ SOURCE gui\Dialog.cpp // Common error source common\error.cpp +source common\quicktime.cpp // Special for graphics source graphics\iff.cpp +source backends\graphics\symbiansdl\symbiansdl-graphics.cpp +source backends\graphics\surfacesdl\surfacesdl-graphics.cpp +source engines\obsolete.cpp // *** Dynamic Libraries LIBRARY cone.lib eikcore.lib diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg index 2187a375a8..4e02a03c62 100644 --- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg @@ -32,7 +32,7 @@ :"ScummVM" ; UID is the app's UID -#{"ScummVM UIQ3"},(0xA0000657),1,30,0 +#{"ScummVM UIQ3"},(0xA0000657),1,40,0 ; ProductID for UIQ 3.0 ; Product/platform version UID, Major, Minor, Build, Product ID @@ -44,6 +44,7 @@ "\epoc32\Data\Z\resource\apps\scummvm_loc.rsc"- "!:\resource\apps\scummvm_loc.rsc" "\epoc32\data\Z\resource\APPS\scummvm.MBM"- "!:\resource\apps\scummvm.MBM" "\epoc32\data\z\private\10003a3f\apps\scummvm_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_reg.rsc" + "..\..\..\..\dists\pred.dic"-"c:\shared\scummvm\pred.dic" ; Scummvm Documentation @@ -57,12 +58,15 @@ ; Common datafiles needed for some games "..\..\..\..\dists\engine-data\kyra.dat"-"c:\shared\scummvm\kyra.dat" "..\..\..\..\dists\engine-data\sky.cpt"-"c:\shared\scummvm\sky.cpt" +"..\..\..\..\dists\engine-data\hugo.dat"-"c:\shared\scummvm\hugo.dat" "..\..\..\..\dists\engine-data\lure.dat"-"c:\shared\scummvm\lure.dat" "..\..\..\..\dists\engine-data\drascula.dat"-"c:\shared\scummvm\drascula.dat" "..\..\..\..\dists\engine-data\m4.dat"-"c:\shared\scummvm\m4.dat" "..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat" +"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat" +"..\..\..\..\gui\themes\scummclassic.zip"-"c:\shared\scummvm\scummclassic.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\shared\scummvm\scummvm.ini",FILENULL diff --git a/backends/platform/symbian/mmp/scummvm_agi.mmp.in b/backends/platform/symbian/mmp/scummvm_agi.mmp.in index a7dcfb0bb5..5805d36133 100644 --- a/backends/platform/symbian/mmp/scummvm_agi.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_agi.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\agi // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_agos.mmp.in b/backends/platform/symbian/mmp/scummvm_agos.mmp.in index 4708a040ec..236a62f1b8 100644 --- a/backends/platform/symbian/mmp/scummvm_agos.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_agos.mmp.in @@ -62,6 +62,6 @@ SOURCEPATH ..\..\..\..\engines\agos // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in index 6a4bba8345..0387bfaf26 100644 --- a/backends/platform/symbian/mmp/scummvm_base.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in @@ -48,7 +48,7 @@ ALWAYS_BUILD_AS_ARM // *** Include paths -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl SYSTEMINCLUDE \epoc32\include\ESDL diff --git a/backends/platform/symbian/mmp/scummvm_cine.mmp.in b/backends/platform/symbian/mmp/scummvm_cine.mmp.in index aac7d8b5b1..e75ece95f1 100644 --- a/backends/platform/symbian/mmp/scummvm_cine.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_cine.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\cine // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_cruise.mmp.in b/backends/platform/symbian/mmp/scummvm_cruise.mmp.in index fc60bfeace..a91d33b5f5 100644 --- a/backends/platform/symbian/mmp/scummvm_cruise.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_cruise.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\cruise // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_draci.mmp.in b/backends/platform/symbian/mmp/scummvm_draci.mmp.in index d879a03797..044247fac7 100644 --- a/backends/platform/symbian/mmp/scummvm_draci.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_draci.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\draci // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_drascula.mmp.in b/backends/platform/symbian/mmp/scummvm_drascula.mmp.in index f83bcdb68f..0561e494c1 100644 --- a/backends/platform/symbian/mmp/scummvm_drascula.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_drascula.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\drascula // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_gob.mmp.in b/backends/platform/symbian/mmp/scummvm_gob.mmp.in index 900f862846..7c92611fd2 100644 --- a/backends/platform/symbian/mmp/scummvm_gob.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_gob.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\gob // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_groovie.mmp.in b/backends/platform/symbian/mmp/scummvm_groovie.mmp.in index 1051e6adea..c0294b3b0d 100644 --- a/backends/platform/symbian/mmp/scummvm_groovie.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_groovie.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\groovie // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_hugo.mmp.in b/backends/platform/symbian/mmp/scummvm_hugo.mmp.in index 31975d3107..66e22fc34b 100644 --- a/backends/platform/symbian/mmp/scummvm_hugo.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_hugo.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\hugo // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_kyra.mmp.in b/backends/platform/symbian/mmp/scummvm_kyra.mmp.in index 453d41bdc1..d5f2ec951c 100644 --- a/backends/platform/symbian/mmp/scummvm_kyra.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_kyra.mmp.in @@ -62,5 +62,5 @@ SOURCEPATH ..\..\..\..\engines\kyra // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_lastexpress.mmp.in b/backends/platform/symbian/mmp/scummvm_lastexpress.mmp.in index 5d0fe6de36..57efa31a85 100644 --- a/backends/platform/symbian/mmp/scummvm_lastexpress.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_lastexpress.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\lastexpress // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_lure.mmp.in b/backends/platform/symbian/mmp/scummvm_lure.mmp.in index add33d7d8b..2ac1f8f8ff 100644 --- a/backends/platform/symbian/mmp/scummvm_lure.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_lure.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\lure // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_m4.mmp.in b/backends/platform/symbian/mmp/scummvm_m4.mmp.in index 6896dadf10..81ec94dbd4 100644 --- a/backends/platform/symbian/mmp/scummvm_m4.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_m4.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\m4 // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_made.mmp.in b/backends/platform/symbian/mmp/scummvm_made.mmp.in index c51d3ac618..dc24aee279 100644 --- a/backends/platform/symbian/mmp/scummvm_made.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_made.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\made // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_mohawk.mmp.in b/backends/platform/symbian/mmp/scummvm_mohawk.mmp.in index 296c458e39..cb5b18ba18 100644 --- a/backends/platform/symbian/mmp/scummvm_mohawk.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_mohawk.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\mohawk // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_parallaction.mmp.in b/backends/platform/symbian/mmp/scummvm_parallaction.mmp.in index 4052a16693..e86473e47a 100644 --- a/backends/platform/symbian/mmp/scummvm_parallaction.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_parallaction.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\parallaction // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_queen.mmp.in b/backends/platform/symbian/mmp/scummvm_queen.mmp.in index ec4ccff939..b5326abe74 100644 --- a/backends/platform/symbian/mmp/scummvm_queen.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_queen.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\queen // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_saga.mmp.in b/backends/platform/symbian/mmp/scummvm_saga.mmp.in index 44e222144c..55d89f7868 100644 --- a/backends/platform/symbian/mmp/scummvm_saga.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_saga.mmp.in @@ -68,5 +68,5 @@ SOURCEPATH ..\..\..\..\engines\saga // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sci.mmp.in b/backends/platform/symbian/mmp/scummvm_sci.mmp.in index 12588495cb..dc06f44a5d 100644 --- a/backends/platform/symbian/mmp/scummvm_sci.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_sci.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\sci // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_scumm.mmp.in b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in index 381a6060dd..527ce75181 100644 --- a/backends/platform/symbian/mmp/scummvm_scumm.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in @@ -79,7 +79,7 @@ SOURCE smush/codec47ARM.s // ARM version: add ASM routines // *** Include paths USERINCLUDE ..\..\..\..\engines ..\..\..\..\engines\scumm\smush ..\..\..\..\engines\scumm\insane -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include\libc diff --git a/backends/platform/symbian/mmp/scummvm_sky.mmp.in b/backends/platform/symbian/mmp/scummvm_sky.mmp.in index f34c839076..eeb517ffcc 100644 --- a/backends/platform/symbian/mmp/scummvm_sky.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_sky.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\sky // *** Include paths USERINCLUDE ..\..\..\..\engines ..\..\..\..\engines\sky\music -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sword1.mmp.in b/backends/platform/symbian/mmp/scummvm_sword1.mmp.in index 58f9f8fa05..0adc156719 100644 --- a/backends/platform/symbian/mmp/scummvm_sword1.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_sword1.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\sword1 // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sword2.mmp.in b/backends/platform/symbian/mmp/scummvm_sword2.mmp.in index 4a19be92ce..c8034c3015 100644 --- a/backends/platform/symbian/mmp/scummvm_sword2.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_sword2.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\sword2 // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_teenagent.mmp.in b/backends/platform/symbian/mmp/scummvm_teenagent.mmp.in index 6b4812489e..f065bf4376 100644 --- a/backends/platform/symbian/mmp/scummvm_teenagent.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_teenagent.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\teenagent // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_tinsel.mmp.in b/backends/platform/symbian/mmp/scummvm_tinsel.mmp.in index bb56022f20..d61492de6b 100644 --- a/backends/platform/symbian/mmp/scummvm_tinsel.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_tinsel.mmp.in @@ -56,5 +56,5 @@ SOURCEPATH ..\..\..\..\engines\tinsel // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_toon.mmp.in b/backends/platform/symbian/mmp/scummvm_toon.mmp.in index 05742d5242..01924614b4 100644 --- a/backends/platform/symbian/mmp/scummvm_toon.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_toon.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\toon // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_touche.mmp.in b/backends/platform/symbian/mmp/scummvm_touche.mmp.in index ea8dd2392c..b9cb53b4bf 100644 --- a/backends/platform/symbian/mmp/scummvm_touche.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_touche.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\touche // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_tsage.mmp.in b/backends/platform/symbian/mmp/scummvm_tsage.mmp.in index b7eb3290b3..fa4968f704 100644 --- a/backends/platform/symbian/mmp/scummvm_tsage.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_tsage.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\tsage // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_tucker.mmp.in b/backends/platform/symbian/mmp/scummvm_tucker.mmp.in index 0aeb0dc4ec..1ea564c0c0 100644 --- a/backends/platform/symbian/mmp/scummvm_tucker.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_tucker.mmp.in @@ -56,6 +56,6 @@ SOURCEPATH ..\..\..\..\engines\tucker // *** Include paths USERINCLUDE ..\..\..\..\engines -USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\audio ..\src +USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\audio ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src -- cgit v1.2.3 From 511e7c5163558cd2e9f44ff5c6aa94ccead18135 Mon Sep 17 00:00:00 2001 From: anotherguest Date: Tue, 11 Oct 2011 09:08:28 +0200 Subject: Symbian:Updated port defs to fit new protected words --- backends/platform/symbian/src/portdefs.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h index 86460e65c5..b433dd7625 100644 --- a/backends/platform/symbian/src/portdefs.h +++ b/backends/platform/symbian/src/portdefs.h @@ -157,6 +157,10 @@ void *scumm_bsearch(const void *key, const void *base, size_t nmemb, size_t size #define FORBIDDEN_SYMBOL_EXCEPTION_FILE #define FORBIDDEN_SYMBOL_EXCEPTION_fclose #define FORBIDDEN_SYMBOL_EXCEPTION_fopen +#define FORBIDDEN_SYMBOL_EXCEPTION_unlink +#define FORBIDDEN_SYMBOL_EXCEPTION_getcwd +#define FORBIDDEN_SYMBOL_EXCEPTION_stdout +#define FORBIDDEN_SYMBOL_EXCEPTION_stderr // we cannot include SymbianOS.h everywhere, but this works too (functions code is in SymbianOS.cpp) namespace Symbian { -- cgit v1.2.3 From 3d48f2199f50d998d46ebe0bbad16b0cd73ad546 Mon Sep 17 00:00:00 2001 From: anotherguest Date: Tue, 11 Oct 2011 09:23:45 +0200 Subject: Symbian: Changed path for math.h include. --- backends/platform/symbian/src/portdefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h index b433dd7625..dd81080afe 100644 --- a/backends/platform/symbian/src/portdefs.h +++ b/backends/platform/symbian/src/portdefs.h @@ -32,7 +32,7 @@ #include #include -#include +#include /* define pi */ #ifndef M_PI -- cgit v1.2.3 From 42ccfbfdde548e6c96cbff8238c976cc12853712 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 11 Oct 2011 17:24:00 -0500 Subject: MAEMO: Add detection for specific hardware model Features detected right now are just the hardware keyboard --- backends/platform/maemo/maemo-common.h | 56 ++++++++++++++++++++++++++++++++++ backends/platform/maemo/maemo.cpp | 13 ++++++++ backends/platform/maemo/maemo.h | 12 ++++++-- 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 backends/platform/maemo/maemo-common.h (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo-common.h b/backends/platform/maemo/maemo-common.h new file mode 100644 index 0000000000..be256ad340 --- /dev/null +++ b/backends/platform/maemo/maemo-common.h @@ -0,0 +1,56 @@ +/* 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. + * + */ + +#if defined(MAEMO) + +#ifndef PLATFORM_SDL_MAEMO_COMMON_H +#define PLATFORM_SDL_MAEMO_COMMON_H + +enum MaemoModelType { + kMaemoModelTypeN800 = 1, + kMaemoModelTypeN810 = 2, + kMaemoModelTypeN900 = 4, + kMaemoModelTypeInvalid = 0 +}; + +struct MaemoModel { + const char *hwId; + MaemoModelType modelType; + bool hwKeyboard; +}; + +static const MaemoModel maemoModels[] = { +// N800 + {"RX-34", kMaemoModelTypeN800, false}, +// N810 + {"RX-44", kMaemoModelTypeN810, true}, +// N810W + {"RX-48", kMaemoModelTypeN810, true}, +// N900 + {"RX-51", kMaemoModelTypeN900, true}, + {0, kMaemoModelTypeInvalid, true} +}; + + +#endif // ifndef PLATFORM_SDL_MAEMO_COMMON_H + +#endif // if defined(MAEMO) diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index 1fb7ad0691..da5b61916f 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -22,6 +22,8 @@ #if defined(MAEMO) +#define FORBIDDEN_SYMBOL_EXCEPTION_getenv + #include "common/scummsys.h" #include "common/config-manager.h" @@ -45,6 +47,8 @@ void OSystem_SDL_Maemo::initBackend() { ConfMan.set("vkeybdpath", DATA_PATH); + _maemoModel = MaemoModel(detectMaemoModel()); + // Call parent implementation of this method OSystem_POSIX::initBackend(); } @@ -92,6 +96,15 @@ void OSystem_SDL_Maemo::setWindowCaption(const char *caption) { setXWindowName(cap.c_str()); } +const MaemoModel OSystem_SDL_Maemo::detectMaemoModel() { + Common::String deviceHwId = Common::String(getenv("SCUMMVM_MAEMO_DEVICE")); + const MaemoModel *model; + for (model = maemoModels; model->hwId; model++) { + if (deviceHwId.equals(model->hwId)) + return *model; + } + return *model; +} #endif diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h index a7f2ec35bb..e177000a16 100644 --- a/backends/platform/maemo/maemo.h +++ b/backends/platform/maemo/maemo.h @@ -26,6 +26,8 @@ #define PLATFORM_SDL_MAEMO_H #include "backends/platform/sdl/posix/posix.h" +#include "backends/platform/maemo/maemo-common.h" + class OSystem_SDL_Maemo : public OSystem_POSIX { public: @@ -36,10 +38,16 @@ public: virtual void fatalError(); virtual void setWindowCaption(const char *caption); + MaemoModel getMaemoModel() { return _maemoModel; } + private: virtual void setXWindowName(const char *caption); + const MaemoModel detectMaemoModel(); + MaemoModel _maemoModel; + }; -#endif -#endif +#endif // ifndef PLATFORM_SDL_MAEMO_H + +#endif // if defined(MAEMO) -- cgit v1.2.3 From a1fe57702ac394903df3bb9be331b87e28e38a73 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 11 Oct 2011 17:24:42 -0500 Subject: MAEMO: added hardware alias to the hardware detection table --- backends/platform/maemo/maemo-common.h | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo-common.h b/backends/platform/maemo/maemo-common.h index be256ad340..6da38d49b5 100644 --- a/backends/platform/maemo/maemo-common.h +++ b/backends/platform/maemo/maemo-common.h @@ -35,19 +35,16 @@ enum MaemoModelType { struct MaemoModel { const char *hwId; MaemoModelType modelType; + const char *hwAlias; bool hwKeyboard; }; static const MaemoModel maemoModels[] = { -// N800 - {"RX-34", kMaemoModelTypeN800, false}, -// N810 - {"RX-44", kMaemoModelTypeN810, true}, -// N810W - {"RX-48", kMaemoModelTypeN810, true}, -// N900 - {"RX-51", kMaemoModelTypeN900, true}, - {0, kMaemoModelTypeInvalid, true} + {"RX-34", kMaemoModelTypeN800, "N800", false}, + {"RX-44", kMaemoModelTypeN810, "N810", true}, + {"RX-48", kMaemoModelTypeN810, "N810W", true}, + {"RX-51", kMaemoModelTypeN900, "N900", true}, + {0, kMaemoModelTypeInvalid, 0, true} }; -- cgit v1.2.3 From 52fae5524c39044762b906ca938b99650d624491 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 11 Oct 2011 18:06:52 -0500 Subject: MAEMO: Add basic structs to Maemo namespace --- backends/platform/maemo/maemo-common.h | 29 ++++++++++++++++------------- backends/platform/maemo/maemo.cpp | 8 ++++---- backends/platform/maemo/maemo.h | 6 +++--- 3 files changed, 23 insertions(+), 20 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo-common.h b/backends/platform/maemo/maemo-common.h index 6da38d49b5..f33aa24278 100644 --- a/backends/platform/maemo/maemo-common.h +++ b/backends/platform/maemo/maemo-common.h @@ -25,28 +25,31 @@ #ifndef PLATFORM_SDL_MAEMO_COMMON_H #define PLATFORM_SDL_MAEMO_COMMON_H -enum MaemoModelType { - kMaemoModelTypeN800 = 1, - kMaemoModelTypeN810 = 2, - kMaemoModelTypeN900 = 4, - kMaemoModelTypeInvalid = 0 +namespace Maemo { + +enum ModelType { + kModelTypeN800 = 1, + kModelTypeN810 = 2, + kModelTypeN900 = 4, + kModelTypeInvalid = 0 }; -struct MaemoModel { +struct Model { const char *hwId; - MaemoModelType modelType; + ModelType modelType; const char *hwAlias; bool hwKeyboard; }; -static const MaemoModel maemoModels[] = { - {"RX-34", kMaemoModelTypeN800, "N800", false}, - {"RX-44", kMaemoModelTypeN810, "N810", true}, - {"RX-48", kMaemoModelTypeN810, "N810W", true}, - {"RX-51", kMaemoModelTypeN900, "N900", true}, - {0, kMaemoModelTypeInvalid, 0, true} +static const Model models[] = { + {"RX-34", kModelTypeN800, "N800", false}, + {"RX-44", kModelTypeN810, "N810", true}, + {"RX-48", kModelTypeN810, "N810W", true}, + {"RX-51", kModelTypeN900, "N900", true}, + {0, kModelTypeInvalid, 0, true} }; +} // namespace Maemo #endif // ifndef PLATFORM_SDL_MAEMO_COMMON_H diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index da5b61916f..4f05f5ccb2 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -47,7 +47,7 @@ void OSystem_SDL_Maemo::initBackend() { ConfMan.set("vkeybdpath", DATA_PATH); - _maemoModel = MaemoModel(detectMaemoModel()); + _model = Maemo::Model(detectModel()); // Call parent implementation of this method OSystem_POSIX::initBackend(); @@ -96,10 +96,10 @@ void OSystem_SDL_Maemo::setWindowCaption(const char *caption) { setXWindowName(cap.c_str()); } -const MaemoModel OSystem_SDL_Maemo::detectMaemoModel() { +const Maemo::Model OSystem_SDL_Maemo::detectModel() { Common::String deviceHwId = Common::String(getenv("SCUMMVM_MAEMO_DEVICE")); - const MaemoModel *model; - for (model = maemoModels; model->hwId; model++) { + const Maemo::Model *model; + for (model = Maemo::models; model->hwId; model++) { if (deviceHwId.equals(model->hwId)) return *model; } diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h index e177000a16..c80639600e 100644 --- a/backends/platform/maemo/maemo.h +++ b/backends/platform/maemo/maemo.h @@ -38,13 +38,13 @@ public: virtual void fatalError(); virtual void setWindowCaption(const char *caption); - MaemoModel getMaemoModel() { return _maemoModel; } + Maemo::Model getModel() { return _model; } private: virtual void setXWindowName(const char *caption); - const MaemoModel detectMaemoModel(); - MaemoModel _maemoModel; + const Maemo::Model detectModel(); + Maemo::Model _model; }; -- cgit v1.2.3 From b56e9e2ef11e8eac17c02972a237bfd5e1d6674d Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 11 Oct 2011 18:17:30 -0500 Subject: MAEMO: Migrate OSystem_SDL_Maemo to Maemo namespace --- backends/platform/maemo/maemo.cpp | 9 ++++++--- backends/platform/maemo/maemo.h | 9 ++++++--- backends/platform/maemo/main.cpp | 6 +++--- 3 files changed, 15 insertions(+), 9 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index 4f05f5ccb2..3571039e62 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -35,6 +35,8 @@ #include #include +namespace Maemo { + OSystem_SDL_Maemo::OSystem_SDL_Maemo() : OSystem_POSIX() { @@ -47,7 +49,7 @@ void OSystem_SDL_Maemo::initBackend() { ConfMan.set("vkeybdpath", DATA_PATH); - _model = Maemo::Model(detectModel()); + _model = Model(detectModel()); // Call parent implementation of this method OSystem_POSIX::initBackend(); @@ -98,13 +100,14 @@ void OSystem_SDL_Maemo::setWindowCaption(const char *caption) { const Maemo::Model OSystem_SDL_Maemo::detectModel() { Common::String deviceHwId = Common::String(getenv("SCUMMVM_MAEMO_DEVICE")); - const Maemo::Model *model; - for (model = Maemo::models; model->hwId; model++) { + const Model *model; + for (model = models; model->hwId; model++) { if (deviceHwId.equals(model->hwId)) return *model; } return *model; } +} //namespace Maemo #endif diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h index c80639600e..e42936ddf0 100644 --- a/backends/platform/maemo/maemo.h +++ b/backends/platform/maemo/maemo.h @@ -28,6 +28,7 @@ #include "backends/platform/sdl/posix/posix.h" #include "backends/platform/maemo/maemo-common.h" +namespace Maemo { class OSystem_SDL_Maemo : public OSystem_POSIX { public: @@ -38,16 +39,18 @@ public: virtual void fatalError(); virtual void setWindowCaption(const char *caption); - Maemo::Model getModel() { return _model; } + Model getModel() { return _model; } private: virtual void setXWindowName(const char *caption); - const Maemo::Model detectModel(); - Maemo::Model _model; + const Model detectModel(); + Model _model; }; +} // namespace Maemo + #endif // ifndef PLATFORM_SDL_MAEMO_H #endif // if defined(MAEMO) diff --git a/backends/platform/maemo/main.cpp b/backends/platform/maemo/main.cpp index 6b69cd81d0..7e8a316eb5 100644 --- a/backends/platform/maemo/main.cpp +++ b/backends/platform/maemo/main.cpp @@ -31,10 +31,10 @@ #include int main(int argc, char* argv[]) { - g_system = new OSystem_SDL_Maemo(); + g_system = new Maemo::OSystem_SDL_Maemo(); assert(g_system); - ((OSystem_SDL_Maemo *)g_system)->init(); + ((Maemo::OSystem_SDL_Maemo *)g_system)->init(); #ifdef DYNAMIC_MODULES PluginManager::instance().addPluginProvider(new SDLPluginProvider()); @@ -44,7 +44,7 @@ int main(int argc, char* argv[]) { int res = scummvm_main(argc, argv); // Free OSystem - delete (OSystem_SDL_Maemo *)g_system; + delete (Maemo::OSystem_SDL_Maemo *)g_system; return res; } -- cgit v1.2.3 From a18a4e239ae36a88300f3140e4599f725c1782cf Mon Sep 17 00:00:00 2001 From: anotherguest Date: Wed, 12 Oct 2011 13:15:15 +0200 Subject: Symbian: Supply modern theme instead of an extra copy of the classic --- backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg | 2 +- backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg | 2 +- backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg | 2 +- backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg index c61030415c..efa1a3c50f 100644 --- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg @@ -68,7 +68,7 @@ "..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat" -"..\..\..\..\gui\themes\scummclassic.zip"-"c:\data\scummvm\scummclassic.zip" +"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\data\scummvm\scummvm.ini",FILENULL diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg index ab0facf4fa..aea6701709 100644 --- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg @@ -76,7 +76,7 @@ "..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat" -"..\..\..\..\gui\themes\scummclassic.zip"-"c:\data\scummvm\scummclassic.zip" +"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\data\scummvm\scummvm.ini",FILENULL diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg index 4e02a03c62..47e0ebbd09 100644 --- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg @@ -66,7 +66,7 @@ "..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat" -"..\..\..\..\gui\themes\scummclassic.zip"-"c:\shared\scummvm\scummclassic.zip" +"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\shared\scummvm\scummvm.ini",FILENULL diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg index bc5f975044..fb9923fae0 100644 --- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg @@ -74,7 +74,7 @@ "..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat" "..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip" "..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat" -"..\..\..\..\gui\themes\scummclassic.zip"-"c:\shared\scummvm\scummclassic.zip" +"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip" ; Config/log files: 'empty' will automagically be removed on uninstall ""-"c:\shared\scummvm\scummvm.ini",FILENULL -- cgit v1.2.3 From a97cd0077fbe2df315a9356e38b39a5065b77c02 Mon Sep 17 00:00:00 2001 From: CeRiAl Date: Tue, 18 Oct 2011 13:10:20 +0200 Subject: WINCE: Add workaround for memory management problem on Windows CE < 6.0 This fixes the "32MB memory limit per process" problem in Windows CE < 6.0 --- backends/platform/wince/README-WinCE.txt | 21 +++++++++------ backends/platform/wince/wince-sdl.cpp | 44 ++++++++++++++++++++++++++++++++ backends/platform/wince/wince.mk | 4 +++ 3 files changed, 61 insertions(+), 8 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index 60bcf710bb..429168c293 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -1,18 +1,23 @@ ScummVM Windows CE FAQ -Last updated: 2011-07-20 -Release version: x.x.x +Last updated: 2011-10-15 +Release version: 1.4.0 ------------------------------------------------------------------------ New in this version ------------------- -x.x.x: -- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as - most devices today are fast enough to handle this. It's still possible to set - this to "false" if you have a slower device. +1.4.0: +- Changed the memory management so that it is finally possible to break the + 32MB per process barrier on Windows CE. It should be possible now (finally) + to play nearly every game with the "big" binary (scummvm.exe, which includes + all game engines). +- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" + as most devices today are fast enough to handle this. It's still possible to + set this to "false" if you have a slower device. - Fix for TeenAgent & Hugo engines (both weren't running at all, crashed right at the beginning) -- Replaced the game mass-adding functionality with the functionality used on all - other platforms. It now shows progress while searching for games. +- Discworld 2 is now playable (works now because of the new memory management) +- Replaced the game mass-adding functionality with the functionality used on + all other platforms. It now shows progress while searching for games. 1.3.1: - Fix for Normal2xAspect scaler which was causing screen update issues in some diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp index 1abc3cb350..4e17827e5c 100644 --- a/backends/platform/wince/wince-sdl.cpp +++ b/backends/platform/wince/wince-sdl.cpp @@ -72,6 +72,50 @@ extern "C" _CRTIMP FILE *__cdecl _wfreopen(const wchar_t *, const wchar_t *, FILE *); #endif +#ifdef WRAP_MALLOC + +extern "C" void *__real_malloc(size_t size); +extern "C" void __real_free(void *ptr); + +extern "C" void *__wrap_malloc(size_t size) { +/* + void *ptr = __real_malloc(size); + printf("malloc(%d) = %p\n", size, ptr); + return ptr; +*/ + if (size < 64 * 1024) { + void *ptr = __real_malloc(size+4); +// printf("malloc(%d) = %p\n", size, ptr); + if (ptr != NULL) { + *((HANDLE*)ptr) = 0; + return 4+(char*)ptr; + } + return NULL; + } + HANDLE H = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, size+4, 0); + void *ptr = MapViewOfFile(H, FILE_MAP_ALL_ACCESS, 0, 0, 0); + *((HANDLE*)ptr) = H; + return 4+(char*)ptr; +} + +extern "C" void __wrap_free(void *ptr) { +/* + __real_free(ptr); + printf("free(%p)\n", ptr); +*/ + if (ptr != NULL) { + HANDLE H = *(HANDLE*)((char *)ptr-4); + if (H == 0) { + __real_free((char*)ptr-4); + return; + } + UnmapViewOfFile((char *)ptr-4); + CloseHandle(H); + } +} + +#endif + using namespace CEGUI; // ******************************************************************************************** diff --git a/backends/platform/wince/wince.mk b/backends/platform/wince/wince.mk index cac3ad4e8f..c5f3274747 100644 --- a/backends/platform/wince/wince.mk +++ b/backends/platform/wince/wince.mk @@ -1,3 +1,7 @@ +ifdef WRAP_MALLOC + LDFLAGS += -Wl,--wrap,malloc -Wl,--wrap,free +endif + backends/platform/wince/PocketSCUMM.o: $(srcdir)/backends/platform/wince/PocketSCUMM.rc $(QUIET)$(MKDIR) $(*D) $(WINDRES) $(WINDRESFLAGS) -I$(srcdir)/backends/platform/wince $< $@ -- cgit v1.2.3 From ed07b99b22c2cf092f207dc15b26801c502534ac Mon Sep 17 00:00:00 2001 From: Chris Warren-Smith Date: Mon, 17 Oct 2011 22:35:48 +1000 Subject: BADA: Misc changes merged from appstore release --- backends/platform/bada/README.TXT | 7 +++ backends/platform/bada/application.cpp | 14 +++-- backends/platform/bada/audio.cpp | 4 +- backends/platform/bada/form.cpp | 108 ++++++++++++++++----------------- backends/platform/bada/form.h | 8 +-- backends/platform/bada/fs.cpp | 5 +- backends/platform/bada/graphics.cpp | 54 ----------------- backends/platform/bada/graphics.h | 1 - backends/platform/bada/sscanf.cpp | 49 ++++++++++++--- backends/platform/bada/system.cpp | 29 +++++---- backends/platform/bada/system.h | 5 +- 11 files changed, 138 insertions(+), 146 deletions(-) (limited to 'backends/platform') diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT index ca6f8f245a..c4a04d5450 100644 --- a/backends/platform/bada/README.TXT +++ b/backends/platform/bada/README.TXT @@ -83,3 +83,10 @@ Links: A short turorial on implementing OpenGL ES 1.1 in BADA: http://forums.badadev.com/viewtopic.php?f=7&t=208 +HelvB14 font files: + http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html + http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz + + Then run the following command: + $ ./ucs2any.pl 100dpi/helvB14.bdf MAPPINGS/8859-1.TXT iso8859-1 \ + MAPPINGS/8859-2.TXT iso8859-2 MAPPINGS/8859-3.TXT iso8859-3 diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp index a287fa6352..bf585d2782 100644 --- a/backends/platform/bada/application.cpp +++ b/backends/platform/bada/application.cpp @@ -99,11 +99,13 @@ void BadaScummVM::OnLowMemory(void) { } void BadaScummVM::pauseGame(bool pause) { - if (pause && _appForm && g_engine && !g_engine->isPaused()) { - _appForm->pushKey(Common::KEYCODE_SPACE); - } - - if (g_system) { - ((BadaSystem *)g_system)->setMute(pause); + if (_appForm) { + if (pause && g_engine && !g_engine->isPaused()) { + _appForm->pushKey(Common::KEYCODE_SPACE); + } + + if (g_system) { + ((BadaSystem *)g_system)->setMute(pause); + } } } diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp index cfa6418e08..b868e91357 100644 --- a/backends/platform/bada/audio.cpp +++ b/backends/platform/bada/audio.cpp @@ -74,7 +74,7 @@ bool AudioThread::isSilentMode() { } void AudioThread::setMute(bool on) { - if (_audioOut && !isSilentMode()) { + if (_audioOut && _timer) { _muted = on; if (on) { _timer->Cancel(); @@ -88,7 +88,7 @@ int AudioThread::setVolume(bool up, bool minMax) { int level = -1; int numLevels = sizeof(levels) / sizeof(levels[0]); - if (_audioOut && !isSilentMode()) { + if (_audioOut) { int volume = _audioOut->GetVolume(); if (minMax) { level = up ? numLevels - 1 : 0; diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp index 6163053c96..dfa72bce08 100644 --- a/backends/platform/bada/form.cpp +++ b/backends/platform/bada/form.cpp @@ -49,9 +49,9 @@ using namespace Osp::Ui::Controls; // BadaAppForm::BadaAppForm() : _gameThread(0), - _state(InitState), - _buttonState(LeftButton), - _shortcut(SetVolume) { + _state(kInitState), + _buttonState(kLeftButton), + _shortcut(kSetVolume) { _eventQueueLock = new Mutex(); _eventQueueLock->Create(); } @@ -99,11 +99,11 @@ result BadaAppForm::Construct() { BadaAppForm::~BadaAppForm() { logEntered(); - if (_gameThread && _state != ErrorState) { + if (_gameThread && _state != kErrorState) { terminate(); _gameThread->Stop(); - if (_state != ErrorState) { + if (_state != kErrorState) { _gameThread->Join(); } @@ -123,7 +123,7 @@ BadaAppForm::~BadaAppForm() { // abort the game thread // void BadaAppForm::terminate() { - if (_state == ActiveState) { + if (_state == kActiveState) { ((BadaSystem *)g_system)->setMute(true); _eventQueueLock->Acquire(); @@ -131,25 +131,25 @@ void BadaAppForm::terminate() { Common::Event e; e.type = Common::EVENT_QUIT; _eventQueue.push(e); - _state = ClosingState; + _state = kClosingState; _eventQueueLock->Release(); // block while thread ends AppLog("waiting for shutdown"); - for (int i = 0; i < EXIT_SLEEP_STEP && _state == ClosingState; i++) { + for (int i = 0; i < EXIT_SLEEP_STEP && _state == kClosingState; i++) { Thread::Sleep(EXIT_SLEEP); } - if (_state == ClosingState) { + if (_state == kClosingState) { // failed to terminate - Join() will freeze - _state = ErrorState; + _state = kErrorState; } } } void BadaAppForm::exitSystem() { - _state = ErrorState; + _state = kErrorState; if (_gameThread) { _gameThread->Stop(); @@ -200,8 +200,7 @@ bool BadaAppForm::pollEvent(Common::Event &event) { return result; } -void BadaAppForm::pushEvent(Common::EventType type, - const Point ¤tPosition) { +void BadaAppForm::pushEvent(Common::EventType type, const Point ¤tPosition) { BadaSystem *system = (BadaSystem *)g_system; BadaGraphicsManager *graphics = system->getGraphics(); if (graphics) { @@ -248,8 +247,8 @@ void BadaAppForm::pushKey(Common::KeyCode keycode) { void BadaAppForm::OnOrientationChanged(const Control &source, OrientationStatus orientationStatus) { logEntered(); - if (_state == InitState) { - _state = ActiveState; + if (_state == kInitState) { + _state = kActiveState; _gameThread->Start(); } } @@ -257,30 +256,30 @@ void BadaAppForm::OnOrientationChanged(const Control &source, Object *BadaAppForm::Run(void) { scummvm_main(0, 0); - if (_state == ActiveState) { + if (_state == kActiveState) { Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, NULL); } - _state = DoneState; + _state = kDoneState; return NULL; } void BadaAppForm::setButtonShortcut() { switch (_buttonState) { - case LeftButton: + case kLeftButton: g_system->displayMessageOnOSD(_("Right Click Once")); - _buttonState = RightButtonOnce; + _buttonState = kRightButtonOnce; break; - case RightButtonOnce: + case kRightButtonOnce: g_system->displayMessageOnOSD(_("Right Click")); - _buttonState = RightButton; + _buttonState = kRightButton; break; - case RightButton: + case kRightButton: g_system->displayMessageOnOSD(_("Move Only")); - _buttonState = MoveOnly; + _buttonState = kMoveOnly; break; - case MoveOnly: + case kMoveOnly: g_system->displayMessageOnOSD(_("Left Click")); - _buttonState = LeftButton; + _buttonState = kLeftButton; break; } } @@ -288,27 +287,27 @@ void BadaAppForm::setButtonShortcut() { void BadaAppForm::setShortcut() { // cycle to the next shortcut switch (_shortcut) { - case ControlMouse: + case kControlMouse: g_system->displayMessageOnOSD(_("Escape Key")); - _shortcut = EscapeKey; + _shortcut = kEscapeKey; break; - case EscapeKey: + case kEscapeKey: g_system->displayMessageOnOSD(_("Game Menu")); - _shortcut = GameMenu; + _shortcut = kGameMenu; break; - case GameMenu: + case kGameMenu: g_system->displayMessageOnOSD(_("Show Keypad")); - _shortcut = ShowKeypad; + _shortcut = kShowKeypad; break; - case SetVolume: + case kSetVolume: // fallthru - case ShowKeypad: + case kShowKeypad: g_system->displayMessageOnOSD(_("Control Mouse")); - _shortcut = ControlMouse; + _shortcut = kControlMouse; break; } } @@ -330,17 +329,17 @@ void BadaAppForm::setVolume(bool up, bool minMax) { void BadaAppForm::showKeypad() { // display the soft keyboard - _buttonState = LeftButton; + _buttonState = kLeftButton; pushKey(Common::KEYCODE_F7); } void BadaAppForm::OnTouchDoublePressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + if (_buttonState != kMoveOnly) { + pushEvent(_buttonState == kLeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + pushEvent(_buttonState == kLeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); } } @@ -358,7 +357,7 @@ void BadaAppForm::OnTouchFocusOut(const Control &source, void BadaAppForm::OnTouchLongPressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (_buttonState != LeftButton) { + if (_buttonState != kLeftButton) { pushKey(Common::KEYCODE_RETURN); } } @@ -372,8 +371,8 @@ void BadaAppForm::OnTouchMoved(const Control &source, void BadaAppForm::OnTouchPressed(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, + if (_buttonState != kMoveOnly) { + pushEvent(_buttonState == kLeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN, currentPosition); } } @@ -381,11 +380,11 @@ void BadaAppForm::OnTouchPressed(const Control &source, void BadaAppForm::OnTouchReleased(const Control &source, const Point ¤tPosition, const TouchEventInfo &touchInfo) { - if (_buttonState != MoveOnly) { - pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, + if (_buttonState != kMoveOnly) { + pushEvent(_buttonState == kLeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP, currentPosition); - if (_buttonState == RightButtonOnce) { - _buttonState = LeftButton; + if (_buttonState == kRightButtonOnce) { + _buttonState = kLeftButton; } // flick to skip dialog if (touchInfo.IsFlicked()) { @@ -398,17 +397,17 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { logEntered(); switch (keyCode) { case KEY_SIDE_UP: - _shortcut = SetVolume; + _shortcut = kSetVolume; setVolume(true, true); return; case KEY_SIDE_DOWN: - _shortcut = SetVolume; + _shortcut = kSetVolume; setVolume(false, true); return; case KEY_CAMERA: - _shortcut = ShowKeypad; + _shortcut = kShowKeypad; showKeypad(); return; @@ -420,8 +419,8 @@ void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) { void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { switch (keyCode) { case KEY_SIDE_UP: - if (_shortcut != SetVolume) { - _shortcut = SetVolume; + if (_shortcut != kSetVolume) { + _shortcut = kSetVolume; } else { setVolume(true, false); } @@ -429,19 +428,20 @@ void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) { case KEY_SIDE_DOWN: switch (_shortcut) { - case ControlMouse: + case kControlMouse: setButtonShortcut(); break; - case EscapeKey: + case kEscapeKey: pushKey(Common::KEYCODE_ESCAPE); break; - case GameMenu: + case kGameMenu: + _buttonState = kLeftButton; pushKey(Common::KEYCODE_F5); break; - case ShowKeypad: + case kShowKeypad: showKeypad(); break; diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h index 09ce941a7b..3340e2216b 100644 --- a/backends/platform/bada/form.h +++ b/backends/platform/bada/form.h @@ -50,7 +50,7 @@ public: result Construct(); bool pollEvent(Common::Event &event); - bool isClosing() { return _state == ClosingState; } + bool isClosing() { return _state == kClosingState; } void pushKey(Common::KeyCode keycode); void exitSystem(); @@ -100,9 +100,9 @@ private: Osp::Base::Runtime::Thread *_gameThread; Osp::Base::Runtime::Mutex *_eventQueueLock; Common::Queue _eventQueue; - enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state; - enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState; - enum {ControlMouse, EscapeKey, GameMenu, ShowKeypad, SetVolume} _shortcut; + enum { kInitState, kActiveState, kClosingState, kDoneState, kErrorState } _state; + enum { kLeftButton, kRightButtonOnce, kRightButton, kMoveOnly } _buttonState; + enum { kControlMouse, kEscapeKey, kGameMenu, kShowKeypad, kSetVolume } _shortcut; }; #endif diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp index 8e3c4f0f7c..0ae0cde43d 100644 --- a/backends/platform/bada/fs.cpp +++ b/backends/platform/bada/fs.cpp @@ -345,7 +345,7 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, // open directory if (IsFailed(pDir->Construct(_unicodePath))) { - AppLog("Failed to open directory"); + AppLog("Failed to open directory: %S", _unicodePath.GetPointer()); } else { // read all directory entries pDirEnum = pDir->ReadN(); @@ -365,8 +365,7 @@ bool BadaFilesystemNode::getChildren(AbstractFSList &myList, } // skip '.' and '..' to avoid cycles - if ((fileName[0] == '.' && fileName[1] == 0) || - (fileName[0] == '.' && fileName[1] == '.')) { + if (fileName == L"." || fileName == L"..") { continue; } diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp index 4ab90a633f..bd65c597c6 100644 --- a/backends/platform/bada/graphics.cpp +++ b/backends/platform/bada/graphics.cpp @@ -38,7 +38,6 @@ BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) : _initState(true) { assert(appForm != NULL); _videoMode.fullscreen = true; - _videoMode.antialiasing = true; } const Graphics::Font *BadaGraphicsManager::getFontOSD() { @@ -195,7 +194,6 @@ void BadaGraphicsManager::loadTextures() { // prevent image skew in some games, see: // http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall - // note: this did not solve the pixel border problem in refreshGameScreen() glPixelStorei(GL_UNPACK_ALIGNMENT, 1); } @@ -234,58 +232,6 @@ void BadaGraphicsManager::unloadGFXMode() { logLeaving(); } -void BadaGraphicsManager::refreshGameScreen() { - if (_screenNeedsRedraw) - _screenDirtyRect = Common::Rect(0, 0, _screenData.w, _screenData.h); - - int x = _screenDirtyRect.left; - int y = _screenDirtyRect.top; - int w = _screenDirtyRect.width(); - int h = _screenDirtyRect.height(); - - if (_screenData.format.bytesPerPixel == 1) { - // Create a temporary RGB888 surface - int sw = w; - int sh = h; - - if (_videoMode.screenWidth == w && _videoMode.screenHeight == h) { - // The extra border prevents random pixels from appearing in the right and bottom - // screen column/row. Not sure whether this should be applied to opengl-graphics.cpp - sw = w + 1; - sh = h + 1; - } - - byte *surface = new byte[sw * sh * 3]; - - // Convert the paletted buffer to RGB888 - const byte *src = (byte *)_screenData.pixels + y * _screenData.pitch; - src += x * _screenData.format.bytesPerPixel; - byte *dst = surface; - for (int i = 0; i < h; i++) { - for (int j = 0; j < w; j++) { - dst[0] = _gamePalette[src[j] * 3]; - dst[1] = _gamePalette[src[j] * 3 + 1]; - dst[2] = _gamePalette[src[j] * 3 + 2]; - dst += 3; - } - src += _screenData.pitch; - } - - // Update the texture - _gameTexture->updateBuffer(surface, w * 3, x, y, sw, sh); - - // Free the temp surface - delete[] surface; - } else { - // Update the texture - _gameTexture->updateBuffer((byte *)_screenData.pixels + y * _screenData.pitch + - x * _screenData.format.bytesPerPixel, _screenData.pitch, x, y, w, h); - } - - _screenNeedsRedraw = false; - _screenDirtyRect = Common::Rect(); -} - // display a simple splash screen until launcher is ready void BadaGraphicsManager::showSplash() { Canvas canvas; diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h index 5e49419979..b2aaca43bc 100644 --- a/backends/platform/bada/graphics.h +++ b/backends/platform/bada/graphics.h @@ -57,7 +57,6 @@ private: bool loadGFXMode(); void loadTextures(); void unloadGFXMode(); - void refreshGameScreen(); void setInternalMousePosition(int x, int y) {} void showSplash(); diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp index 4ef964b47e..b5e5b88cb5 100644 --- a/backends/platform/bada/sscanf.cpp +++ b/backends/platform/bada/sscanf.cpp @@ -31,17 +31,32 @@ // bool scanInt(const char **in, va_list *ap, int max) { - while (**in && (**in == ' ' || **in == '0')) { + // skip leading space characters + while (**in && **in == ' ') { + (*in)++; + } + + // number optionally preceeded with a + or - sign. + bool negate = false; + if (**in == '-') { + (*in)++; + negate = true; + } + + if (**in == '+') { (*in)++; } int *arg = va_arg(*ap, int*); char *end; - long n = strtol(*in, &end, 0); + long n = strtol(*in, &end, 10); + if (negate) { + n = -n; + } bool err = false; if (end == *in || (max > 0 && (end - *in) > max)) { - err = true; + err = true; } else { *arg = (int)n; *in = end; @@ -162,21 +177,37 @@ extern "C" int simple_sscanf(const char *input, const char *format, ...) { #if defined(TEST) int main(int argc, char *pArgv[]) { - int x,y,h; + int x,y,xx,yy,h; char buffer[100]; unsigned u; char c; strcpy(buffer, "hello"); char *b = buffer; - // strcpy(buffer, "in the buffer something"); - if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $", - "CAT %dx%d %x FONT %[^\n] %06u.AUD %c", - &x, &y, &h, b, &u, &c) != 6) { + if (simple_sscanf("BBX 00009 -1 +10 000", + "BBX %d %d %d %d", + &x, &y, &xx, &yy) != 4) { + printf("Failed\n"); + } else { + printf("Success %d %d %d %d\n", x, y, xx, yy); + } + + if (simple_sscanf("CAT 123x-10 0x100h 123456.AUD $ ", + "CAT %dx%d %xh %06u.AUD %c", + &x, &y, &h, &u, &c) != 5) { + printf("Failed\n"); + } else { + printf("Success %d %d %d %d '%c' \n", x, y, h, u, c); + } + + if (simple_sscanf("COPYRIGHT \"Copyright (c) 1984, 1987 Foo Systems Incorporated", + "COPYRIGHT \"%[^\"]", + b) != 1) { printf("Failed\n"); } else { - printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c); + printf("Success %s\n", buffer); } + return 0; } #endif diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp index 37d7028687..d284688068 100644 --- a/backends/platform/bada/system.cpp +++ b/backends/platform/bada/system.cpp @@ -45,6 +45,7 @@ using namespace Osp::Base::Runtime; using namespace Osp::Ui::Controls; #define DEFAULT_CONFIG_FILE "/Home/scummvm.ini" +#define RESOURCE_PATH "/Res" #define MUTEX_BUFFER_SIZE 5 // @@ -152,17 +153,17 @@ OSystem::MutexRef BadaMutexManager::createMutex() { } void BadaMutexManager::lockMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; + Mutex *m = (Mutex *)mutex; m->Acquire(); } void BadaMutexManager::unlockMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; + Mutex *m = (Mutex *)mutex; m->Release(); } void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) { - Mutex *m = (Mutex*)mutex; + Mutex *m = (Mutex *)mutex; for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) { if (buffer[i] == m) { @@ -245,7 +246,7 @@ result BadaSystem::initModules() { return E_OUT_OF_MEMORY; } - _graphicsManager = (GraphicsManager*) new BadaGraphicsManager(_appForm); + _graphicsManager = (GraphicsManager *)new BadaGraphicsManager(_appForm); if (!_graphicsManager) { return E_OUT_OF_MEMORY; } @@ -266,7 +267,7 @@ result BadaSystem::initModules() { return E_OUT_OF_MEMORY; } - _audiocdManager = (AudioCDManager*) new DefaultAudioCDManager(); + _audiocdManager = (AudioCDManager *)new DefaultAudioCDManager(); if (!_audiocdManager) { return E_OUT_OF_MEMORY; } @@ -283,9 +284,6 @@ result BadaSystem::initModules() { void BadaSystem::initBackend() { logEntered(); - // allow translations and game .DAT files to be found - ConfMan.set("extrapath", "/Res"); - // use the mobile device theme ConfMan.set("gui_theme", "/Res/scummmobile"); @@ -304,7 +302,7 @@ void BadaSystem::initBackend() { } ConfMan.registerDefault("fullscreen", true); - ConfMan.registerDefault("aspect_ratio", true); + ConfMan.registerDefault("aspect_ratio", false); ConfMan.setBool("confirm_exit", false); Osp::System::SystemTime::GetTicks(_epoch); @@ -317,7 +315,7 @@ void BadaSystem::initBackend() { // replace kBigGUIFont using the large font from the scummmobile theme Common::File fontFile; - Common::String fileName = "/Res/scummmobile/helvB14-ASCII.fcc"; + Common::String fileName = "/Res/scummmobile/helvB14-iso-8859-1.fcc"; BadaFilesystemNode file(fileName); if (file.exists()) { Common::SeekableReadStream *stream = file.createReadStream(); @@ -335,6 +333,11 @@ void BadaSystem::initBackend() { logLeaving(); } +void BadaSystem::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) { + // allow translations.dat and game .DAT files to be found + s.addDirectory(RESOURCE_PATH, RESOURCE_PATH, priority); +} + void BadaSystem::destroyBackend() { closeAudio(); @@ -446,8 +449,12 @@ void BadaSystem::closeGraphics() { } void BadaSystem::setMute(bool on) { + // only change mute after eventManager init() has completed if (_audioThread) { - _audioThread->setMute(on); + BadaGraphicsManager *graphics = getGraphics(); + if (graphics && graphics->isReady()) { + _audioThread->setMute(on); + } } } diff --git a/backends/platform/bada/system.h b/backends/platform/bada/system.h index a091f952e5..c28686cb3d 100644 --- a/backends/platform/bada/system.h +++ b/backends/platform/bada/system.h @@ -74,7 +74,7 @@ public: bool isClosing() { return _appForm->isClosing(); } BadaGraphicsManager *getGraphics() { - return (BadaGraphicsManager*)_graphicsManager; + return (BadaGraphicsManager *)_graphicsManager; } private: @@ -88,8 +88,9 @@ private: void getTimeAndDate(TimeDate &t) const; void fatalError(); void logMessage(LogMessageType::Type type, const char *message); + void addSysArchivesToSearchSet(Common::SearchSet &s, int priority); - Common::EventSource *getDefaultEventSource() {return this;} + Common::EventSource *getDefaultEventSource() { return this; } Common::SeekableReadStream *createConfigReadStream(); Common::WriteStream *createConfigWriteStream(); -- cgit v1.2.3 From 2c735008421c82aeb0b3756b760d5bc5e8fd4c96 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 20 Oct 2011 12:39:29 +0100 Subject: RELEASE: This is 1.5.0git --- backends/platform/psp/README.PSP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/platform') diff --git a/backends/platform/psp/README.PSP b/backends/platform/psp/README.PSP index a101481dca..bc0bd35a6e 100644 --- a/backends/platform/psp/README.PSP +++ b/backends/platform/psp/README.PSP @@ -1,4 +1,4 @@ -ScummVM-PSP 1.4.0git README +ScummVM-PSP 1.5.0git README ============================================================================== Installation -- cgit v1.2.3 From c382c0c19522ce4771b74ac02377e75350550dd7 Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Fri, 21 Oct 2011 14:25:53 +0200 Subject: ANDROID: Delete _timerManager in OSystem_Android's destructor. If we leave it for OSystem, the DefaultTimerManager destructor tries constructing a StackLock which, predictably, calls a pure virtual function, because OSystem_Android's destructor is finished. --- backends/platform/android/android.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp index a935bf145d..aba31320ea 100644 --- a/backends/platform/android/android.cpp +++ b/backends/platform/android/android.cpp @@ -174,6 +174,8 @@ OSystem_Android::~OSystem_Android() { _mixer = 0; delete _fsFactory; _fsFactory = 0; + delete _timerManager; + _timerManager = 0; deleteMutex(_event_queue_lock); } -- cgit v1.2.3 From ff3f4d9493d66b034119f0ff15657c9e8cd1b1a8 Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Sat, 22 Oct 2011 20:45:15 +0200 Subject: ANDROID: Fix plugins on Android 3.1+. Android 3.1 changed the default behaviour for broadcasts so that it doens't wake up non-running receivers, so we need to override that. --- backends/platform/android/org/inodes/gus/scummvm/Unpacker.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'backends/platform') diff --git a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java index 8811b1f3ae..6cc7f8eadb 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java +++ b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java @@ -44,6 +44,9 @@ public class Unpacker extends Activity { private AsyncTask mUnpacker; private final static int REQUEST_MARKET = 1; + // Android 3.1+ only + public static final int FLAG_INCLUDE_STOPPED_PACKAGES = 32; + private static class UnpackJob { public ZipFile zipfile; public Set paths; @@ -273,6 +276,9 @@ public class Unpacker extends Activity { unpack_libs); Intent intent = new Intent(ScummVMApplication.ACTION_PLUGIN_QUERY); + // Android 3.1 defaults to FLAG_EXCLUDE_STOPPED_PACKAGES, and since + // none of our plugins will ever be running, that is not helpful + intent.setFlags(FLAG_INCLUDE_STOPPED_PACKAGES); sendOrderedBroadcast(intent, Manifest.permission.SCUMMVM_PLUGIN, new PluginBroadcastReciever(), null, RESULT_OK, null, extras); -- cgit v1.2.3