aboutsummaryrefslogtreecommitdiff
path: root/backends/events/androidsdl/androidsdl-events.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/events/androidsdl/androidsdl-events.cpp')
-rw-r--r--backends/events/androidsdl/androidsdl-events.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/backends/events/androidsdl/androidsdl-events.cpp b/backends/events/androidsdl/androidsdl-events.cpp
index 7ea8ff1dc1..18e696a897 100644
--- a/backends/events/androidsdl/androidsdl-events.cpp
+++ b/backends/events/androidsdl/androidsdl-events.cpp
@@ -82,4 +82,22 @@ bool AndroidSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return false;
}
+int AndroidSdlEventSource::mapKey(SDLKey sdlKey, SDLMod mod, Uint16 unicode) {
+ Common::KeyCode key = SDLToOSystemKeycode(sdlKey);
+
+ if (key >= Common::KEYCODE_F1 && key <= Common::KEYCODE_F9) {
+ return key - Common::KEYCODE_F1 + Common::ASCII_F1;
+ } else if (key >= Common::KEYCODE_KP0 && key <= Common::KEYCODE_KP9) {
+ return key - Common::KEYCODE_KP0 + '0';
+ } else if (key >= Common::KEYCODE_UP && key <= Common::KEYCODE_PAGEDOWN) {
+ return key;
+ } else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
+ return key & ~0x20;
+ } else if (key >= Common::KEYCODE_NUMLOCK && key <= Common::KEYCODE_EURO) {
+ return 0;
+ } else {
+ return key;
+ }
+}
+
#endif