From 02877fdbdcdf0e3d4790465f66f4da3ab6dd815d Mon Sep 17 00:00:00 2001 From: pelya Date: Sat, 2 Feb 2013 00:06:00 +0200 Subject: [PATCH] Updated todo --- project/java/Accelerometer.java | 40 ++++++++++++++---------- project/jni/application/openarena/engine | 2 +- todo.txt | 5 +++ 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/project/java/Accelerometer.java b/project/java/Accelerometer.java index 3a10f0c66..005a71f8f 100644 --- a/project/java/Accelerometer.java +++ b/project/java/Accelerometer.java @@ -42,6 +42,7 @@ class AccelerometerReader implements SensorEventListener private SensorManager _manager = null; public boolean openedBySDL = false; + private final GyroscopeListener gyro = new GyroscopeListener(); public AccelerometerReader(Activity context) { @@ -54,6 +55,7 @@ class AccelerometerReader implements SensorEventListener { System.out.println("libSDL: stopping accelerometer/gyroscope"); _manager.unregisterListener(this); + _manager.unregisterListener(gyro); } } @@ -62,38 +64,42 @@ class AccelerometerReader implements SensorEventListener if( (Globals.UseAccelerometerAsArrowKeys || Globals.AppUsesAccelerometer) && _manager != null ) { System.out.println("libSDL: starting accelerometer"); - // TODO: orientation allows for 3rd axis - azimuth, but it will be way too hard to the user - // if( ! _manager.registerListener(this, _manager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME) ) _manager.registerListener(this, _manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); } if( Globals.AppUsesGyroscope && _manager != null ) { System.out.println("libSDL: starting gyroscope"); - _manager.registerListener(this, _manager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME); + _manager.registerListener(gyro, _manager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME); } } - public synchronized void onSensorChanged(SensorEvent event) { + public void onSensorChanged(SensorEvent event) + { + if( Globals.HorizontalOrientation ) + nativeAccelerometer(event.values[1], -event.values[0], event.values[2]); + else + nativeAccelerometer(event.values[0], event.values[1], event.values[2]); // TODO: not tested! + } + public void onAccuracyChanged(Sensor s, int a) + { + } - if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) + class GyroscopeListener implements SensorEventListener + { + public GyroscopeListener() { - if( Globals.HorizontalOrientation ) - nativeAccelerometer(event.values[1], -event.values[0], event.values[2]); - else - nativeAccelerometer(event.values[0], event.values[1], event.values[2]); // TODO: not tested! } - if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) + public void onSensorChanged(SensorEvent event) { + // TODO: vertical orientation //if( Globals.HorizontalOrientation ) nativeGyroscope(event.values[0], event.values[1], event.values[2]); - // TODO: vertical orientation } - + public synchronized void onAccuracyChanged(Sensor s, int a) + { + } } - public synchronized void onAccuracyChanged(Sensor s, int a) { - } - - private native void nativeAccelerometer(float accX, float accY, float accZ); - private native void nativeGyroscope(float X, float Y, float Z); + private static native void nativeAccelerometer(float accX, float accY, float accZ); + private static native void nativeGyroscope(float X, float Y, float Z); } diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index a6bcf511a..17010dd99 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit a6bcf511a13973a628b6d182262d7b4c237a0cb9 +Subproject commit 17010dd99f78801fc5028ca2d85023707f9c7463 diff --git a/todo.txt b/todo.txt index 205761511..4a8d602e1 100644 --- a/todo.txt +++ b/todo.txt @@ -1,6 +1,11 @@ Requested features (see also bugs.txt) ====================================== +- Fast event queue and joystick event trottling in SDL - remove mutex from SDL_ANDROID_PumpEvents(), + and add another compatibility hack option, because queue got bloated and my phone rebooted. + +- Gyroscope calibration dialog. + - Option for default on-screen key theme in AndroidAppSettings.cfg. - Select between normal mouse input and magnifying glass/relative input automatically, based on screen size.