aboutsummaryrefslogtreecommitdiff
path: root/backends/events
diff options
context:
space:
mode:
authorTarek Soliman2011-10-11 17:54:04 -0500
committerTarek Soliman2011-10-11 20:05:52 -0500
commit174b8d6807b2dfb405682e95d600b85d4e879101 (patch)
treee8ee3b1e3e72e1bc4036725ce1981786bc57d7f7 /backends/events
parent4ee07c848e462e078a1d3fd2f033111d153411ea (diff)
downloadscummvm-rg350-174b8d6807b2dfb405682e95d600b85d4e879101.tar.gz
scummvm-rg350-174b8d6807b2dfb405682e95d600b85d4e879101.tar.bz2
scummvm-rg350-174b8d6807b2dfb405682e95d600b85d4e879101.zip
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.
Diffstat (limited to 'backends/events')
-rw-r--r--backends/events/maemosdl/maemosdl-events.cpp42
-rw-r--r--backends/events/maemosdl/maemosdl-events.h2
2 files changed, 36 insertions, 8 deletions
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 {