From 174b8d6807b2dfb405682e95d600b85d4e879101 Mon Sep 17 00:00:00 2001 From: Tarek Soliman Date: Tue, 11 Oct 2011 17:54:04 -0500 Subject: MAEMO: Add initial N800 support with Fullscreen key mapped to Virtual Keyboard N800 doesn't have a CTRL key to activate the virtual keyboard with. Fullscreen can still be enabled/disabled through the GUI and was the most likely sacrifice as a hardware key. --- backends/events/maemosdl/maemosdl-events.cpp | 42 +++++++++++++++++++++++----- backends/events/maemosdl/maemosdl-events.h | 2 +- 2 files changed, 36 insertions(+), 8 deletions(-) (limited to 'backends/events') diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp index 95dc64f6f9..32d5cfb5ac 100644 --- a/backends/events/maemosdl/maemosdl-events.cpp +++ b/backends/events/maemosdl/maemosdl-events.cpp @@ -35,6 +35,9 @@ MaemoSdlEventSource::MaemoSdlEventSource() : SdlEventSource(), _clickEnabled(tru bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { + Model model = Model(((OSystem_SDL_Maemo *)g_system)->getModel()); + debug(10, "Model: %s %u %s %s", model.hwId, model.modelType, model.hwAlias, model.hwKeyboard ? "true" : "false"); + // List of special N810 keys: // SDLK_F4 -> menu // SDLK_F5 -> home @@ -46,12 +49,23 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { case SDL_KEYDOWN:{ if (ev.key.keysym.sym == SDLK_F4) { event.type = Common::EVENT_MAINMENU; + debug(9, "remapping to main menu"); return true; } else if (ev.key.keysym.sym == SDLK_F6) { - // handled in keyup + if (!model.hwKeyboard) { + event.type = Common::EVENT_KEYDOWN; + event.kbd.keycode = Common::KEYCODE_F7; + event.kbd.ascii = Common::ASCII_F7; + event.kbd.flags = 0; + debug(9, "remapping to F7 down (virtual keyboard)"); + return true; + } else { + // handled in keyup + } } else if (ev.key.keysym.sym == SDLK_F7) { event.type = Common::EVENT_RBUTTONDOWN; processMouseEvent(event, _km.x, _km.y); + debug(9, "remapping to right click down"); return true; } else if (ev.key.keysym.sym == SDLK_F8) { if (ev.key.keysym.mod & KMOD_CTRL) { @@ -59,6 +73,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { event.kbd.keycode = Common::KEYCODE_F7; event.kbd.ascii = Common::ASCII_F7; event.kbd.flags = 0; + debug(9, "remapping to F7 down (virtual keyboard)"); return true; } else { // handled in keyup @@ -72,14 +87,25 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { 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; + if (!model.hwKeyboard) { + event.type = Common::EVENT_KEYUP; + event.kbd.keycode = Common::KEYCODE_F7; + event.kbd.ascii = Common::ASCII_F7; + event.kbd.flags = 0; + debug(9, "remapping to F7 down (virtual keyboard)"); + return true; + } else { + 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(); + debug(9, "remapping to full screen toggle"); + return true; + } } else if (ev.key.keysym.sym == SDLK_F7) { event.type = Common::EVENT_RBUTTONUP; processMouseEvent(event, _km.x, _km.y); + debug(9, "remapping to right click up"); return true; } else if (ev.key.keysym.sym == SDLK_F8) { if (ev.key.keysym.mod & KMOD_CTRL) { @@ -87,11 +113,13 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { event.kbd.keycode = Common::KEYCODE_F7; event.kbd.ascii = Common::ASCII_F7; event.kbd.flags = 0; + debug(9, "remapping to F7 up (virtual keyboard)"); return true; } else { _clickEnabled = !_clickEnabled; ((SurfaceSdlGraphicsManager*) _graphicsManager)->displayMessageOnOSD( - _clickEnabled ? _("Clicking Enabled") : _("Clicking Disabled")); + _clickEnabled ? _("Clicking Enabled") : _("Clicking Disabled")); + debug(9, "remapping to click toggle"); return true; } } diff --git a/backends/events/maemosdl/maemosdl-events.h b/backends/events/maemosdl/maemosdl-events.h index a31d939d58..5c06c4bc22 100644 --- a/backends/events/maemosdl/maemosdl-events.h +++ b/backends/events/maemosdl/maemosdl-events.h @@ -26,7 +26,7 @@ #define BACKEND_EVENTS_SDL_MAEMO_H #include "backends/events/sdl/sdl-events.h" -#include "backends/platform/sdl/sdl.h" +#include "backends/platform/maemo/maemo.h" #include "backends/graphics/surfacesdl/surfacesdl-graphics.h" namespace Maemo { -- cgit v1.2.3