diff --git a/project/java/Video.java b/project/java/Video.java index 22f9faf3f..3a9f5ac39 100644 --- a/project/java/Video.java +++ b/project/java/Video.java @@ -308,6 +308,7 @@ abstract class DifferentTouchInput float ymin = 0.0f; float ymax = 1.0f; float minRange = 1.0f; + float xshift = 0.0f; XperiaPlayTouchpadTouchInput() { @@ -322,14 +323,14 @@ abstract class DifferentTouchInput if( (device.getSources() & InputDevice.SOURCE_TOUCHPAD) != InputDevice.SOURCE_TOUCHPAD ) continue; System.out.println("libSDL: input device ID " + id + " type " + device.getSources() + " name " + device.getName() + " is a touchpad" ); - InputDevice.MotionRange range = device.getMotionRange(MotionEvent.AXIS_X); + InputDevice.MotionRange range = device.getMotionRange(MotionEvent.AXIS_X, InputDevice.SOURCE_TOUCHPAD); if(range != null) { xmin = range.getMin(); xmax = range.getMax() - range.getMin(); System.out.println("libSDL: touch pad X range " + xmin + ":" + xmax ); } - range = device.getMotionRange(MotionEvent.AXIS_Y); + range = device.getMotionRange(MotionEvent.AXIS_Y, InputDevice.SOURCE_TOUCHPAD); if(range != null) { ymin = range.getMin(); @@ -339,9 +340,9 @@ abstract class DifferentTouchInput // Xperia Play has long wide touchpad with joystick-like embossing on the sides, so we'll leave only a left joystick to function // I don't know how to use the second joystick, so I'll just ignore it for now minRange = Math.min( Math.abs(ymax - ymin), Math.abs(xmax - xmin) ); + xshift = xmax - minRange; } } - private int GalaxyNoteGingerStylus = 0; public void process(final MotionEvent event) { boolean hwMouseEvent = ( event.getSource() == InputDevice.SOURCE_MOUSE || @@ -361,14 +362,13 @@ abstract class DifferentTouchInput process(event); return; } - + /* int x = (int)((event.getX() - xmin) / xmax * 65535.0f); int y = (int)((event.getY() - ymin) / ymax * 65535.0f); - // Use only left square part of a touch surface - I've heard reports that it breaks functionality, feel free to uncomment and test it. - /* - int x = (int)((event.getX() - xmin) / minRange * 65535.0f); - int y = (int)((event.getY() - ymin) / minRange * 65535.0f); */ + // Use only right square part of a touch surface - I've heard reports that it breaks functionality, feel free to uncomment and test it. + int x = (int)((event.getX() - xshift) / minRange * 65535.0f); + int y = (int)((event.getY() - ymin) / minRange * 65535.0f); if( x > 65535 ) x = 65535; if( x < 0 ) @@ -384,7 +384,7 @@ abstract class DifferentTouchInput down = 0; // TODO: we're processing only one touch pointer, touchpad will most probably support multitouch //System.out.println("libSDL: touch pad event: " + x + ":" + y + " action " + event.getAction() + " down " + down + " multitouch " + multitouch ); - DemoGLSurfaceView.nativeTouchpad( x, 65535-y, down, multitouch ); // Y axis is inverted, as you may have guessed + DemoGLSurfaceView.nativeTouchpad( x, 65535 - y, down, multitouch ); // Y axis is inverted, as you may have guessed } } private static class IcsTouchInput extends XperiaPlayTouchpadTouchInput diff --git a/project/jni/application/openttd/AndroidAppSettings.cfg b/project/jni/application/openttd/AndroidAppSettings.cfg index 1bb270c6b..a9e35584f 100644 --- a/project/jni/application/openttd/AndroidAppSettings.cfg +++ b/project/jni/application/openttd/AndroidAppSettings.cfg @@ -33,8 +33,8 @@ StartupMenuButtonTimeout=3000 HiddenMenuOptions='OptionalDownloadConfig' FirstStartMenuOptions='' MultiABI=n -AppVersionCode=12116 -AppVersionName="1.2.1.16" +AppVersionCode=12117 +AppVersionName="1.2.1.17" ResetSdlConfigForThisVersion=y DeleteFilesOnUpgrade="data gm" CompiledLibraries="jpeg png freetype timidity lzma lzo2"