diff options
author | Tarek Soliman | 2011-07-05 00:25:56 -0500 |
---|---|---|
committer | Tarek Soliman | 2011-09-22 22:07:44 -0500 |
commit | 09b9fbfba9bb0cee15c50a95320d4b9174018e50 (patch) | |
tree | 8c41138813c752a8a08f8ca1c97f5b25f82fd6b6 | |
parent | 1439014a26aef0aa9c22ea3e26d6b0f5ad388d9b (diff) | |
download | scummvm-rg350-09b9fbfba9bb0cee15c50a95320d4b9174018e50.tar.gz scummvm-rg350-09b9fbfba9bb0cee15c50a95320d4b9174018e50.tar.bz2 scummvm-rg350-09b9fbfba9bb0cee15c50a95320d4b9174018e50.zip |
MAEMO: Add basic platform backend with stubbed keymapper
-rw-r--r-- | backends/events/maemosdl/maemosdl-events.cpp | 37 | ||||
-rw-r--r-- | backends/events/maemosdl/maemosdl-events.h | 40 | ||||
-rw-r--r-- | backends/module.mk | 5 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.cpp | 53 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.h | 41 | ||||
-rw-r--r-- | backends/platform/maemo/main.cpp | 52 | ||||
-rw-r--r-- | backends/platform/maemo/module.mk | 13 | ||||
-rw-r--r-- | backends/platform/sdl/main.cpp | 2 | ||||
-rw-r--r-- | backends/platform/sdl/posix/posix-main.cpp | 2 |
9 files changed, 243 insertions, 2 deletions
diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp new file mode 100644 index 0000000000..abc653ad6a --- /dev/null +++ b/backends/events/maemosdl/maemosdl-events.cpp @@ -0,0 +1,37 @@ +/* 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" + +bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { + + //FIXME: Implement this + + // Invoke parent implementation of this method + return SdlEventSource::remapKey(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..f447d4b15e --- /dev/null +++ b/backends/events/maemosdl/maemosdl-events.h @@ -0,0 +1,40 @@ +/* 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" + +/** + * SDL events manager for Maemo + */ +class MaemoSdlEventSource : public SdlEventSource { +protected: + virtual bool remapKey(SDL_Event &ev, Common::Event &event); +}; + +#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/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 <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/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" |