aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTarek Soliman2011-07-05 00:25:56 -0500
committerTarek Soliman2011-09-22 22:07:44 -0500
commit09b9fbfba9bb0cee15c50a95320d4b9174018e50 (patch)
tree8c41138813c752a8a08f8ca1c97f5b25f82fd6b6
parent1439014a26aef0aa9c22ea3e26d6b0f5ad388d9b (diff)
downloadscummvm-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.cpp37
-rw-r--r--backends/events/maemosdl/maemosdl-events.h40
-rw-r--r--backends/module.mk5
-rw-r--r--backends/platform/maemo/maemo.cpp53
-rw-r--r--backends/platform/maemo/maemo.h41
-rw-r--r--backends/platform/maemo/main.cpp52
-rw-r--r--backends/platform/maemo/module.mk13
-rw-r--r--backends/platform/sdl/main.cpp2
-rw-r--r--backends/platform/sdl/posix/posix-main.cpp2
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"