aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/android/events.cpp
diff options
context:
space:
mode:
authorMarcus Comstedt2013-08-08 14:53:36 +0200
committerMarcus Comstedt2013-08-08 14:53:36 +0200
commita50ede203b0424d800d2a1d4460121f9f1de8e7a (patch)
tree0d3fd31307258ca481d37c956415f74525a94265 /backends/platform/android/events.cpp
parent1b69f8aedee240af79ea871c32a9caadc6a0dd98 (diff)
downloadscummvm-rg350-a50ede203b0424d800d2a1d4460121f9f1de8e7a.tar.gz
scummvm-rg350-a50ede203b0424d800d2a1d4460121f9f1de8e7a.tar.bz2
scummvm-rg350-a50ede203b0424d800d2a1d4460121f9f1de8e7a.zip
ANDROID: Add support for joystick motion
Diffstat (limited to 'backends/platform/android/events.cpp')
-rw-r--r--backends/platform/android/events.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index 5ad9ed825c..4d7ef9caf2 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -65,6 +65,7 @@ enum {
JE_RMB_UP = 12,
JE_MOUSE_MOVE = 13,
JE_GAMEPAD = 14,
+ JE_JOYSTICK = 15,
JE_QUIT = 0x1000
};
@@ -896,6 +897,31 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
break;
+ case JE_JOYSTICK:
+ e.mouse = getEventManager()->getMousePos();
+
+ switch (arg1) {
+ case JACTION_MULTIPLE:
+ e.type = Common::EVENT_MOUSEMOVE;
+
+ // already multiplied by 100
+ e.mouse.x += arg2 * _joystick_scale / _eventScaleX;
+ e.mouse.y += arg3 * _joystick_scale / _eventScaleY;
+
+ clipMouse(e.mouse);
+
+ break;
+ default:
+ LOGE("unhandled jaction on joystick: %d", arg1);
+ return;
+ }
+
+ lockMutex(_event_queue_lock);
+ _event_queue.push(e);
+ unlockMutex(_event_queue_lock);
+
+ return;
+
case JE_QUIT:
e.type = Common::EVENT_QUIT;