From 014d8df325417154405dd1a2e65c987703946b4d Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Tue, 19 Mar 2013 19:35:19 +0200 Subject: [PATCH] Also send raw accelerometer events, in addition to gravity vector --- project/jni/application/openarena/AndroidAppSettings.cfg | 2 +- project/jni/application/openarena/engine | 2 +- project/jni/application/openarena/vm | 2 +- project/jni/sdl-1.2/src/video/android/SDL_androidinput.c | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/project/jni/application/openarena/AndroidAppSettings.cfg b/project/jni/application/openarena/AndroidAppSettings.cfg index a7e9bf37a..ce9d1936f 100644 --- a/project/jni/application/openarena/AndroidAppSettings.cfg +++ b/project/jni/application/openarena/AndroidAppSettings.cfg @@ -28,7 +28,7 @@ ForceRelativeMouseMode=n AppNeedsArrowKeys=y AppNeedsTextInput=y AppUsesJoystick=y -AppUsesAccelerometer=n +AppUsesAccelerometer=y AppUsesGyroscope=y AppUsesMultitouch=y AppRecordsAudio=y diff --git a/project/jni/application/openarena/engine b/project/jni/application/openarena/engine index 043cd637b..99e3e586e 160000 --- a/project/jni/application/openarena/engine +++ b/project/jni/application/openarena/engine @@ -1 +1 @@ -Subproject commit 043cd637b92b8f2ca148198347d463a6c5cde409 +Subproject commit 99e3e586eea1a356de9ee69d07a84759894ac38a diff --git a/project/jni/application/openarena/vm b/project/jni/application/openarena/vm index f7ed2dc3a..9d6a96f9c 160000 --- a/project/jni/application/openarena/vm +++ b/project/jni/application/openarena/vm @@ -1 +1 @@ -Subproject commit f7ed2dc3ae0c46c15672b100b8537929abeda772 +Subproject commit 9d6a96f9c0ba31b396f516ad4caa85113d585bd1 diff --git a/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c b/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c index fcc42842e..cc001e693 100644 --- a/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c +++ b/project/jni/sdl-1.2/src/video/android/SDL_androidinput.c @@ -57,7 +57,7 @@ static inline SDL_scancode TranslateKey(int scancode) static int isTrackballUsed = 0; int SDL_ANDROID_isMouseUsed = 0; -#define NORMALIZE_FLOAT_32767(X) (fminf(32767.0f, fmax(-32767.0f, (X) * 32767.0f))) +#define NORMALIZE_FLOAT_32767(X) (fminf(32767.0f, fmaxf(-32767.0f, (X) * 32767.0f))) enum { RIGHT_CLICK_NONE = 0, RIGHT_CLICK_WITH_MULTITOUCH = 1, RIGHT_CLICK_WITH_PRESSURE = 2, RIGHT_CLICK_WITH_KEY = 3, RIGHT_CLICK_WITH_TIMEOUT = 4 }; @@ -826,6 +826,9 @@ JAVA_EXPORT_NAME(AccelerometerReader_nativeAccelerometer) ( JNIEnv* env, jobjec normal = 0.00001f; updateOrientation (accPosX/normal, accPosY/normal, 0.0f); + SDL_ANDROID_MainThreadPushJoystickAxis(JOY_ACCELGYRO, 5, fminf(32767.0f, fmaxf(-32767.0f, accPosX*1000.0f))); // Do not consider wraparound case + SDL_ANDROID_MainThreadPushJoystickAxis(JOY_ACCELGYRO, 6, fminf(32767.0f, fmaxf(-32767.0f, accPosY*1000.0f))); + SDL_ANDROID_MainThreadPushJoystickAxis(JOY_ACCELGYRO, 7, fminf(32767.0f, fmaxf(-32767.0f, accPosZ*1000.0f))); } @@ -1417,7 +1420,7 @@ int SDL_SYS_JoystickOpen(SDL_Joystick *joystick) } if( joystick->index == JOY_ACCELGYRO ) { - joystick->naxes = 5; // Accelerometer = axes 0-1, gyroscope = axes 2-4 + joystick->naxes = 8; // Normalized accelerometer = axes 0-1, gyroscope = axes 2-4, raw accelerometer = axes 5-7 SDL_ANDROID_CallJavaStartAccelerometerGyroscope(1); } if( joystick->index >= JOY_GAMEPAD1 || joystick->index <= JOY_GAMEPAD4 )