[Scummvm-cvs-logs] scummvm master -> e056bfca9c0ef1a07f4a9703d842ffa669096b0d

dhewg dhewg at wiibrew.org
Fri Mar 18 22:08:26 CET 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b721547213 ANDROID: Implement trackball click
e056bfca9c ANDROID: Seperate DPAD codes


Commit: b7215472136c91841d44decd6955b4eb3e3e2ce1
    https://github.com/scummvm/scummvm/commit/b7215472136c91841d44decd6955b4eb3e3e2ce1
Author: dhewg (dhewg at wiibrew.org)
Date: 2011-03-18T13:53:25-07:00

Commit Message:
ANDROID: Implement trackball click

Changed paths:
    backends/platform/android/events.cpp
    backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java



diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index cab09e0..da17b8e 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -569,15 +569,29 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 		return;
 
 	case JE_BALL:
-		e.type = Common::EVENT_MOUSEMOVE;
-
 		e.mouse = getEventManager()->getMousePos();
 
-		// already multiplied by 100
-		e.mouse.x += arg1 * _trackball_scale / _eventScaleX;
-		e.mouse.y += arg2 * _trackball_scale / _eventScaleY;
+		switch (arg1) {
+		case JACTION_DOWN:
+			e.type = Common::EVENT_LBUTTONDOWN;
+			break;
+		case JACTION_UP:
+			e.type = Common::EVENT_LBUTTONUP;
+			break;
+		case JACTION_MULTIPLE:
+			e.type = Common::EVENT_MOUSEMOVE;
+
+			// already multiplied by 100
+			e.mouse.x += arg2 * _trackball_scale / _eventScaleX;
+			e.mouse.y += arg3 * _trackball_scale / _eventScaleY;
 
-		clipMouse(e.mouse);
+			clipMouse(e.mouse);
+
+			break;
+		default:
+			LOGE("unhandled jaction on system key: %d", arg1);
+			return;
+		}
 
 		lockMutex(_event_queue_lock);
 		_event_queue.push(e);
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
index da589a3..baf1282 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
@@ -48,8 +48,10 @@ public class ScummVMEvents implements
 	}
 
 	public boolean onTrackballEvent(MotionEvent e) {
-		_scummvm.pushEvent(JE_BALL, (int)(e.getX() * e.getXPrecision() * 100),
-							(int)(e.getY() * e.getYPrecision() * 100), 0, 0, 0);
+		_scummvm.pushEvent(JE_BALL, e.getAction(),
+							(int)(e.getX() * e.getXPrecision() * 100),
+							(int)(e.getY() * e.getYPrecision() * 100),
+							0, 0);
 		return true;
 	}
 


Commit: e056bfca9c0ef1a07f4a9703d842ffa669096b0d
    https://github.com/scummvm/scummvm/commit/e056bfca9c0ef1a07f4a9703d842ffa669096b0d
Author: dhewg (dhewg at wiibrew.org)
Date: 2011-03-18T13:53:25-07:00

Commit Message:
ANDROID: Seperate DPAD codes

Changed paths:
    backends/platform/android/events.cpp
    backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java



diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index da17b8e..2f60492 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -38,11 +38,12 @@
 enum {
 	JE_SYS_KEY = 0,
 	JE_KEY = 1,
-	JE_DOWN = 2,
-	JE_SCROLL = 3,
-	JE_TAP = 4,
-	JE_DOUBLE_TAP = 5,
-	JE_BALL = 6,
+	JE_DPAD = 2,
+	JE_DOWN = 3,
+	JE_SCROLL = 4,
+	JE_TAP = 5,
+	JE_DOUBLE_TAP = 6,
+	JE_BALL = 7,
 	JE_QUIT = 0x1000
 };
 
@@ -338,7 +339,43 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 		break;
 
 	case JE_KEY:
-		// five-way first
+		switch (arg1) {
+		case JACTION_DOWN:
+			e.type = Common::EVENT_KEYDOWN;
+			break;
+		case JACTION_UP:
+			e.type = Common::EVENT_KEYUP;
+			break;
+		default:
+			LOGE("unhandled jaction on key: %d", arg1);
+			return;
+		}
+
+		if (arg2 < 1 || arg2 > ARRAYSIZE(jkeymap)) {
+			LOGE("received invalid keycode: %d (%d)", arg2, arg3);
+			return;
+		}
+
+		if (arg5 > 0)
+			e.synthetic = true;
+
+		e.kbd.keycode = jkeymap[arg2];
+		e.kbd.ascii = arg3;
+
+		if (arg4 & JMETA_SHIFT)
+			e.kbd.flags |= Common::KBD_SHIFT;
+		if (arg4 & JMETA_ALT)
+			e.kbd.flags |= Common::KBD_ALT;
+		if (arg4 & (JMETA_SYM | JMETA_CTRL))
+			e.kbd.flags |= Common::KBD_CTRL;
+
+		lockMutex(_event_queue_lock);
+		_event_queue.push(e);
+		unlockMutex(_event_queue_lock);
+
+		return;
+
+	case JE_DPAD:
 		switch (arg2) {
 		case JKEYCODE_DPAD_UP:
 		case JKEYCODE_DPAD_DOWN:
@@ -349,7 +386,6 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 					return;
 
 				e.type = Common::EVENT_MOUSEMOVE;
-				e.synthetic = true;
 
 				e.mouse = getEventManager()->getMousePos();
 
@@ -366,10 +402,12 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 
 				// the longer the button held, the faster the pointer is
 				// TODO put these values in some option dlg?
-				int f = CLIP(arg5, 1, 8) * _dpad_scale * 100 / s;
+				int f = CLIP(arg4, 1, 8) * _dpad_scale * 100 / s;
 
-				*c += ((arg2 == JKEYCODE_DPAD_UP ||
-						arg2 == JKEYCODE_DPAD_LEFT) ? -1 : 1) * f;
+				if (arg2 == JKEYCODE_DPAD_UP || arg2 == JKEYCODE_DPAD_LEFT)
+					*c -= f;
+				else
+					*c += f;
 
 				clipMouse(e.mouse);
 
@@ -406,42 +444,6 @@ void OSystem_Android::pushEvent(int type, int arg1, int arg2, int arg3,
 			return;
 		}
 
-		switch (arg1) {
-		case JACTION_DOWN:
-			e.type = Common::EVENT_KEYDOWN;
-			break;
-		case JACTION_UP:
-			e.type = Common::EVENT_KEYUP;
-			break;
-		default:
-			LOGE("unhandled jaction on key: %d", arg1);
-			return;
-		}
-
-		if (arg2 < 1 || arg2 > ARRAYSIZE(jkeymap)) {
-			LOGE("received invalid keycode: %d (%d)", arg2, arg3);
-			return;
-		}
-
-		if (arg5 > 0)
-			e.synthetic = true;
-
-		e.kbd.keycode = jkeymap[arg2];
-		e.kbd.ascii = arg3;
-
-		if (arg4 & JMETA_SHIFT)
-			e.kbd.flags |= Common::KBD_SHIFT;
-		if (arg4 & JMETA_ALT)
-			e.kbd.flags |= Common::KBD_ALT;
-		if (arg4 & (JMETA_SYM | JMETA_CTRL))
-			e.kbd.flags |= Common::KBD_CTRL;
-
-		lockMutex(_event_queue_lock);
-		_event_queue.push(e);
-		unlockMutex(_event_queue_lock);
-
-		return;
-
 	case JE_DOWN:
 		_touch_pt_down = getEventManager()->getMousePos();
 		_touch_pt_scroll.x = -1;
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
index baf1282..cae88ea 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
@@ -20,11 +20,12 @@ public class ScummVMEvents implements
 
 	public static final int JE_SYS_KEY = 0;
 	public static final int JE_KEY = 1;
-	public static final int JE_DOWN = 2;
-	public static final int JE_SCROLL = 3;
-	public static final int JE_TAP = 4;
-	public static final int JE_DOUBLE_TAP = 5;
-	public static final int JE_BALL = 6;
+	public static final int JE_DPAD = 2;
+	public static final int JE_DOWN = 3;
+	public static final int JE_SCROLL = 4;
+	public static final int JE_TAP = 5;
+	public static final int JE_DOUBLE_TAP = 6;
+	public static final int JE_BALL = 7;
 	public static final int JE_QUIT = 0x1000;
 
 	final protected Context _context;
@@ -136,6 +137,18 @@ public class ScummVMEvents implements
 			return true;
 		}
 
+		switch (keyCode) {
+		case KeyEvent.KEYCODE_DPAD_UP:
+		case KeyEvent.KEYCODE_DPAD_DOWN:
+		case KeyEvent.KEYCODE_DPAD_LEFT:
+		case KeyEvent.KEYCODE_DPAD_RIGHT:
+		case KeyEvent.KEYCODE_DPAD_CENTER:
+			_scummvm.pushEvent(JE_DPAD, action, keyCode,
+								(int)(e.getEventTime() - e.getDownTime()),
+								e.getRepeatCount(), 0);
+			return true;
+		}
+
 		_scummvm.pushEvent(JE_KEY, action, keyCode,
 					e.getUnicodeChar() & KeyCharacterMap.COMBINING_ACCENT_MASK,
 					e.getMetaState(), e.getRepeatCount());






More information about the Scummvm-git-logs mailing list