diff options
-rw-r--r-- | backends/events/maemosdl/maemosdl-events.cpp | 123 | ||||
-rw-r--r-- | backends/events/maemosdl/maemosdl-events.h | 48 | ||||
-rw-r--r-- | backends/module.mk | 5 | ||||
-rw-r--r-- | backends/platform/maemo/debian/changelog | 227 | ||||
-rw-r--r-- | backends/platform/maemo/debian/compat | 1 | ||||
-rw-r--r-- | backends/platform/maemo/debian/control | 51 | ||||
-rw-r--r-- | backends/platform/maemo/debian/copyright | 22 | ||||
-rw-r--r-- | backends/platform/maemo/debian/postinst | 25 | ||||
-rwxr-xr-x | backends/platform/maemo/debian/rules | 71 | ||||
-rw-r--r-- | backends/platform/maemo/debian/scummvm.dirs | 8 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.cpp | 97 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.h | 45 | ||||
-rw-r--r-- | backends/platform/maemo/main.cpp | 52 | ||||
-rw-r--r-- | backends/platform/maemo/module.mk | 13 | ||||
-rw-r--r-- | backends/platform/maemo/scummvm-1.1.0-maemo.patch | 1371 | ||||
-rw-r--r-- | backends/platform/sdl/main.cpp | 2 | ||||
-rw-r--r-- | backends/platform/sdl/posix/posix-main.cpp | 2 | ||||
-rwxr-xr-x | configure | 50 | ||||
-rw-r--r-- | engines/kyra/module.mk | 7 | ||||
-rw-r--r-- | po/POTFILES | 1 |
20 files changed, 843 insertions, 1378 deletions
diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp new file mode 100644 index 0000000000..e111bf574b --- /dev/null +++ b/backends/events/maemosdl/maemosdl-events.cpp @@ -0,0 +1,123 @@ +/* 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/events/maemosdl/maemosdl-events.h" +#include "common/translation.h" + +MaemoSdlEventSource::MaemoSdlEventSource() : SdlEventSource(), _clickEnabled(true) { + +} + +bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { + + // List of special N810 keys: + // SDLK_F4 -> menu + // SDLK_F5 -> home + // SDLK_F6 -> fullscreen + // SDLK_F7 -> zoom + + // SDLK_F8 -> zoom - + + switch (ev.type) { + case SDL_KEYDOWN:{ + if (ev.key.keysym.sym == SDLK_F4) { + event.type = Common::EVENT_MAINMENU; + return true; + } else if (ev.key.keysym.sym == SDLK_F6) { + // handled in keyup + } else if (ev.key.keysym.sym == SDLK_F7) { + event.type = Common::EVENT_RBUTTONDOWN; + processMouseEvent(event, _km.x, _km.y); + return true; + } else if (ev.key.keysym.sym == SDLK_F8) { + if (ev.key.keysym.mod & KMOD_CTRL) { + event.type = Common::EVENT_KEYDOWN; + event.kbd.keycode = Common::KEYCODE_F7; + event.kbd.ascii = Common::ASCII_F7; + event.kbd.flags = 0; + return true; + } else { + // handled in keyup + return true; + } + } + break; + } + case SDL_KEYUP: { + if (ev.key.keysym.sym == SDLK_F4) { + event.type = Common::EVENT_MAINMENU; + return true; + } else if (ev.key.keysym.sym == SDLK_F6) { + bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode); + g_system->beginGFXTransaction(); + ((OSystem_SDL *)g_system)->getGraphicsManager()->setFeatureState(OSystem::kFeatureFullscreenMode, !currentState); + g_system->endGFXTransaction(); + return true; + } else if (ev.key.keysym.sym == SDLK_F7) { + event.type = Common::EVENT_RBUTTONUP; + processMouseEvent(event, _km.x, _km.y); + return true; + } else if (ev.key.keysym.sym == SDLK_F8) { + if (ev.key.keysym.mod & KMOD_CTRL) { + event.type = Common::EVENT_KEYUP; + event.kbd.keycode = Common::KEYCODE_F7; + event.kbd.ascii = Common::ASCII_F7; + event.kbd.flags = 0; + return true; + } else { + _clickEnabled = !_clickEnabled; + ((SurfaceSdlGraphicsManager*) _graphicsManager)->displayMessageOnOSD( + _clickEnabled ? _("Clicking Enabled") : _("Clicking Disabled")); + return true; + } + } + break; + } + } + // Invoke parent implementation of this method + return SdlEventSource::remapKey(ev, event); +} + +bool MaemoSdlEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) { + + if (ev.button.button == SDL_BUTTON_LEFT && !_clickEnabled) { + return false; + } + + // Invoke parent implementation of this method + return SdlEventSource::handleMouseButtonDown(ev, event); +} + +bool MaemoSdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) { + + if (ev.button.button == SDL_BUTTON_LEFT && !_clickEnabled) { + return false; + } + + // Invoke parent implementation of this method + return SdlEventSource::handleMouseButtonUp(ev, event); +} + +#endif diff --git a/backends/events/maemosdl/maemosdl-events.h b/backends/events/maemosdl/maemosdl-events.h new file mode 100644 index 0000000000..6b41b3c3f3 --- /dev/null +++ b/backends/events/maemosdl/maemosdl-events.h @@ -0,0 +1,48 @@ +/* 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) + +#if !defined(BACKEND_EVENTS_SDL_MAEMO_H) && !defined(DISABLE_DEFAULT_EVENTMANAGER) +#define BACKEND_EVENTS_SDL_MAEMO_H + +#include "backends/events/sdl/sdl-events.h" +#include "backends/platform/sdl/sdl.h" +#include "backends/graphics/surfacesdl/surfacesdl-graphics.h" + +/** + * SDL events manager for Maemo + */ +class MaemoSdlEventSource : public SdlEventSource { +public: + MaemoSdlEventSource(); +protected: + virtual bool remapKey(SDL_Event &ev, Common::Event &event); + virtual bool handleMouseButtonDown(SDL_Event &ev, Common::Event &event); + virtual bool handleMouseButtonUp(SDL_Event &ev, Common::Event &event); + + bool _clickEnabled; +}; + +#endif + +#endif diff --git a/backends/module.mk b/backends/module.mk index e38b039aa2..89cde44536 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -147,6 +147,11 @@ MODULE_OBJS += \ graphics/linuxmotosdl/linuxmotosdl-graphics.o endif +ifeq ($(BACKEND),maemo) +MODULE_OBJS += \ + events/maemosdl/maemosdl-events.o +endif + ifeq ($(BACKEND),n64) MODULE_OBJS += \ fs/n64/n64-fs.o \ diff --git a/backends/platform/maemo/debian/changelog b/backends/platform/maemo/debian/changelog new file mode 100644 index 0000000000..9798197807 --- /dev/null +++ b/backends/platform/maemo/debian/changelog @@ -0,0 +1,227 @@ +scummvm (1.4.0~git) unstable; urgency=low + + * Non-maintainer upload. + + -- Tarek Soliman <tarek@bashasoliman.com> Wed, 29 Jun 2011 16:41:09 -0500 + +scummvm (1.2.1~pre) unstable; urgency=low + + * 1.2.1 testing release + + -- Frantisek Dufka <dufkaf@seznam.cz> Wed, 8 Dec 2010 21:43:29 +0100 +scummvm (1.2.0~pre) unstable; urgency=low + + * 1.2.0 testing release + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Wed, 2 Sep 2009 09:53:08 +0200 +scummvm (1.0.0~rc1) unstable; urgency=low + + * upstream 1.0.0rc1 release + + -- Frantisek Dufka <dufkaf@seznam.cz> Thu, 20 Aug 2009 23:33:59 +0200 +scummvm (0.13.1) unstable; urgency=low + + * upstream 0.13.1 release + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <mvartiainen@gmail.com> 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 <mvartiainen@gmail.com> 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 <mvartiainen@gmail.com> Thu, 01 Jan 2009 02:04:14 +0200 +scummvm (0.12.0) unstable; urgency=low + + * upstream 0.12.0 release + * update description + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Sun, 13 Jan 2008 22:58:41 +0100 +scummvm (0.11.0-0) unstable; urgency=low + + * upstream 0.11 release + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Wed, 11 Jul 2007 22:20:00 +0200 +scummvm (0.10.0) unstable; urgency=low + + * upstream 0.10 release, enabled FLAC too + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Mon, 18 Jun 2007 21:15:31 +0200 +scummvm (0.9.1) unstable; urgency=low + + * 0.9.1 upstream release + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Sun, 23 Jul 2006 22:29:51 +0200 +scummvm (0.9.0) unstable; urgency=low + + * 0.9.0 upstream release + + -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> +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..a90e5a21cc --- /dev/null +++ b/backends/platform/maemo/debian/copyright @@ -0,0 +1,22 @@ +ScummVM was debianized by Bastien Nocera <hadess@hadess.net> the 5th Apr 2002. +It was adopted by Tore Anderson <tore@linpro.no> the 4th Oct 2002. +Packaged for the Maemo platform by Tomas Junnoen <tomas@fs-security.com> Oct 2005 +From 0.8.2 to 1.2.1, packaging for Maemo was done by Frantisek Dufka <dufkaf@seznam.cz> +Since 1.4 packaging for Maemo is done by Tarek Soliman <tarek@bashasoliman.com> + +It was downloaded from <http://www.scummvm.org/>. + +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. 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'. + +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..3925f6c275 --- /dev/null +++ b/backends/platform/maemo/debian/postinst @@ -0,0 +1,25 @@ +#! /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` +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..7613df25b4 --- /dev/null +++ b/backends/platform/maemo/debian/rules @@ -0,0 +1,71 @@ +#!/usr/bin/make -f + +#include /usr/share/quilt/quilt.make + +build: scummvm + +scummvm: + dh_testdir + ./configure --host=maemo + $(MAKE) + +clean: + dh_testdir + dh_testroot + -$(MAKE) distclean + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean + dh_installdirs +# 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 +# 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 + 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 + 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 + + 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..1a452dfbfc --- /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 diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp new file mode 100644 index 0000000000..1fb7ad0691 --- /dev/null +++ b/backends/platform/maemo/maemo.cpp @@ -0,0 +1,97 @@ +/* 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 "common/config-manager.h" + +#include "backends/platform/maemo/maemo.h" +#include "backends/events/maemosdl/maemosdl-events.h" +#include "common/textconsole.h" + + +#include <SDL/SDL_syswm.h> +#include <X11/Xutil.h> + +OSystem_SDL_Maemo::OSystem_SDL_Maemo() + : + OSystem_POSIX() { +} + +void OSystem_SDL_Maemo::initBackend() { + // Create the events manager + if (_eventSource == 0) + _eventSource = new MaemoSdlEventSource(); + + ConfMan.set("vkeybdpath", DATA_PATH); + + // Call parent implementation of this method + OSystem_POSIX::initBackend(); +} + +void OSystem_SDL_Maemo::quit() { + delete this; +} + +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 new file mode 100644 index 0000000000..a7f2ec35bb --- /dev/null +++ b/backends/platform/maemo/maemo.h @@ -0,0 +1,45 @@ +/* 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(); + virtual void setWindowCaption(const char *caption); + +private: + virtual void setXWindowName(const char *caption); + +}; +#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 <unistd.h> + +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/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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Wed, 2 Sep 2009 09:53:08 +0200 -+scummvm (1.0.0~rc1) unstable; urgency=low -+ -+ * upstream 1.0.0rc1 release -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> Thu, 20 Aug 2009 23:33:59 +0200 -+scummvm (0.13.1) unstable; urgency=low -+ -+ * upstream 0.13.1 release -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <mvartiainen@gmail.com> 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 <mvartiainen@gmail.com> 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 <mvartiainen@gmail.com> Thu, 01 Jan 2009 02:04:14 +0200 -+scummvm (0.12.0) unstable; urgency=low -+ -+ * upstream 0.12.0 release -+ * update description -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Sun, 13 Jan 2008 22:58:41 +0100 -+scummvm (0.11.0-0) unstable; urgency=low -+ -+ * upstream 0.11 release -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Wed, 11 Jul 2007 22:20:00 +0200 -+scummvm (0.10.0) unstable; urgency=low -+ -+ * upstream 0.10 release, enabled FLAC too -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Mon, 18 Jun 2007 21:15:31 +0200 -+scummvm (0.9.1) unstable; urgency=low -+ -+ * 0.9.1 upstream release -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> Sun, 23 Jul 2006 22:29:51 +0200 -+scummvm (0.9.0) unstable; urgency=low -+ -+ * 0.9.0 upstream release -+ -+ -- Frantisek Dufka <dufkaf@seznam.cz> 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 <dufkaf@seznam.cz> -+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 <hadess@hadess.net> the 5th Apr 2002. -+It was adopted by Tore Anderson <tore@linpro.no> the 4th Oct 2002. -+Packaged for the Maemo platform by Tomas Junnoen <tomas@fs-security.com> Oct 2005 -+Since 0.8.2 packaging for Maemo done by Frantisek Dufka <dufkaf@seznam.cz> -+ -+It was downloaded from <http://www.scummvm.org/>. -+ -+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 <time.h> // for getTimeAndDate() -+#ifdef MAEMO_SDL -+#include <SDL/SDL_syswm.h> -+#include <X11/Xutil.h> -+#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-<key> 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; 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" @@ -745,6 +745,7 @@ Special configuration feature: gp2xwiz for GP2X Wiz iphone for Apple iPhone linupy for Yopy PDA + maemo for Nokia Maemo motoezx for MotoEZX motomagx for MotoMAGX n64 for Nintendo 64 @@ -1131,6 +1132,22 @@ linupy) _host_os=linux _host_cpu=arm ;; +maemo) + _host_os=maemo + _host_cpu=arm + _host_alias=arm-linux + + # The prefix is always the same on Maemo so we hardcode the default + # here. It is still possible to define a custom prefix which is + # needed when packaging the app with a user-specific app ID. + test "x$prefix" = xNONE && prefix=/opt/scummvm + # Maemo apps are installed into app-specific directories. The + # default directory structure of ScummVM makes no sense here so we + # hardcode Maemo specific directories here. + datarootdir='${prefix}/share' + datadir=/opt/scummvm/share + docdir='${datarootdir}/doc/scummvm' + ;; motoezx) _host_os=linux _host_cpu=arm @@ -1921,6 +1938,9 @@ case $_host_os in CXXFLAGS="$CXXFLAGS $(getconf LFS_CFLAGS 2>/dev/null)" fi ;; + maemo) + DEFINES="$DEFINES -DMAEMO" + ;; mingw*) DEFINES="$DEFINES -DWIN32" DEFINES="$DEFINES -D__USE_MINGW_ANSI_STDIO=0" @@ -2212,6 +2232,23 @@ if test -n "$_host"; then _ar="m68k-atari-mint-ar cru" _seq_midi=no ;; + maemo) + CXXFLAGS="$CXXFLAGS -Os" + CXXFLAGS="$CXXFLAGS -mcpu=arm926ej-s" + CXXFLAGS="$CXXFLAGS -fomit-frame-pointer" + INCLUDES="$INCLUDES -I/usr/X11R6/include" + LIBS="$LIBS -lpthread" + LIBS="$LIBS -L/usr/lib" + + _backend="maemo" + _vkeybd=yes + _build_hq_scalers=no + _mt32emu=no + _alsa=no + _mad=yes + _tremor=yes + _zlib=yes + ;; *mingw32*) _sdlconfig=$_host-sdl-config _windres=$_host-windres @@ -2462,6 +2499,9 @@ case $_backend in linuxmoto) DEFINES="$DEFINES -DLINUXMOTO" ;; + maemo) + DEFINES="$DEFINES -DMAEMO" + ;; n64) INCLUDES="$INCLUDES "'-I$(N64SDK)/include' INCLUDES="$INCLUDES "'-I$(N64SDK)/mips64/include' @@ -2544,7 +2584,7 @@ MODULES="$MODULES backends/platform/$_backend" # Setup SDL specifics for SDL based backends # case $_backend in - dingux | gp2x | gph | linuxmoto | openpandora | samsungtv | sdl) + dingux | gp2x | gph | linuxmoto | maemo | openpandora | samsungtv | sdl) find_sdlconfig INCLUDES="$INCLUDES `$_sdlconfig --prefix="$_sdlpath" --cflags`" LIBS="$LIBS `$_sdlconfig --prefix="$_sdlpath" --libs`" @@ -2567,7 +2607,7 @@ esac # Enable 16bit support only for backends which support it # case $_backend in - android | bada | dingux | dreamcast | gph | openpandora | psp | samsungtv | sdl | webos | wii) + android | bada | dingux | dreamcast | gph | maemo | openpandora | psp | samsungtv | sdl | webos | wii) if test "$_16bit" = auto ; then _16bit=yes else @@ -2593,7 +2633,7 @@ case $_host_os in amigaos* | cygwin* | dreamcast | ds | gamecube | mingw* | n64 | ps2 | ps3 | psp | wii | wince) _posix=no ;; - android | beos* | bsd* | darwin* | freebsd* | gph-linux | haiku* | hpux* | iphone | irix* | linux* | mint* | netbsd* | openbsd* | solaris* | sunos* | uclinux* | webos) + android | beos* | bsd* | darwin* | freebsd* | gph-linux | haiku* | hpux* | iphone | irix* | linux* | maemo | mint* | netbsd* | openbsd* | solaris* | sunos* | uclinux* | webos) _posix=yes ;; os2-emx*) @@ -3462,8 +3502,8 @@ case $_backend in # Add ../plugins as a path so plugins can be found when running from a .PND. DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"../plugins\\\"" ;; - webos) - # The WebOS app wants the plugins in the "lib" directory + maemo | webos) + # The WebOS and Maemo apps want the plugins in the "lib" directory # without a scummvm sub directory. DEFINES="$DEFINES -DPLUGIN_DIRECTORY=\\\"$libdir\\\"" ;; diff --git a/engines/kyra/module.mk b/engines/kyra/module.mk index 4708041cf7..abd535ee29 100644 --- a/engines/kyra/module.mk +++ b/engines/kyra/module.mk @@ -96,3 +96,10 @@ endif # Include common rules include $(srcdir)/rules.mk + +ifeq ($(BACKEND), maemo) +#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 +endif diff --git a/po/POTFILES b/po/POTFILES index 0d0a4270b0..6ce26a0539 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -80,3 +80,4 @@ backends/events/gph/gph-events.cpp backends/events/openpandora/op-events.cpp backends/updates/macosx/macosx-updates.mm backends/platform/bada/form.cpp +backends/events/maemosdl/maemosdl-events.cpp |