changeset 5000:6a10693e66c3

Cleaned up internal accelerometer interface
author Sam Lantinga <slouken@libsdl.org>
date Thu, 13 Jan 2011 18:03:56 -0800
parents 55fccf89b340
children 77df56570442
files src/SDL_android.cpp src/SDL_android.h src/joystick/android/SDL_sysjoystick.c
diffstat 3 files changed, 35 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/SDL_android.cpp	Thu Jan 13 17:13:00 2011 -0800
+++ b/src/SDL_android.cpp	Thu Jan 13 18:03:56 2011 -0800
@@ -57,7 +57,7 @@
 static jmethodID midAudioQuit;
 
 // Accelerometer data storage
-float fLastAccelerometer[3];
+static float fLastAccelerometer[3];
 
 
 /*******************************************************************************
@@ -184,6 +184,14 @@
     }
 }
 
+extern "C" void Android_JNI_GetAccelerometerValues(float values[3])
+{
+    int i;
+    for (i = 0; i < 3; ++i) {
+        values[i] = fLastAccelerometer[i];
+    }
+}
+
 //
 // Audio support
 //
--- a/src/SDL_android.h	Thu Jan 13 17:13:00 2011 -0800
+++ b/src/SDL_android.h	Thu Jan 13 18:03:56 2011 -0800
@@ -29,15 +29,16 @@
 #endif
 
 /* Interface from the SDL library into the Android Java activity */
-void Android_JNI_CreateContext();
-void Android_JNI_SwapWindow();
-void Android_JNI_SetActivityTitle(const char *title);
+extern void Android_JNI_CreateContext();
+extern void Android_JNI_SwapWindow();
+extern void Android_JNI_SetActivityTitle(const char *title);
+extern void Android_JNI_GetAccelerometerValues(float values[3]);
 
 // Audio support
-int Android_JNI_OpenAudioDevice(int sampleRate, int is16Bit, int channelCount, int desiredBufferFrames);
-void* Android_JNI_GetAudioBuffer();
-void Android_JNI_WriteAudioBuffer();
-void Android_JNI_CloseAudioDevice();
+extern int Android_JNI_OpenAudioDevice(int sampleRate, int is16Bit, int channelCount, int desiredBufferFrames);
+extern void* Android_JNI_GetAudioBuffer();
+extern void Android_JNI_WriteAudioBuffer();
+extern void Android_JNI_CloseAudioDevice();
 
 /* Ends C function definitions when using C++ */
 #ifdef __cplusplus
--- a/src/joystick/android/SDL_sysjoystick.c	Thu Jan 13 17:13:00 2011 -0800
+++ b/src/joystick/android/SDL_sysjoystick.c	Thu Jan 13 18:03:56 2011 -0800
@@ -32,10 +32,9 @@
 #include "SDL_joystick.h"
 #include "../SDL_sysjoystick.h"
 #include "../SDL_joystick_c.h"
+#include "../../SDL_android.h"
 
-extern float fLastAccelerometer[3];
-
-const char *accelerometerName = "Android accelerometer";
+static const char *accelerometerName = "Android accelerometer";
 
 /* Function to scan the system for joysticks.
  * This function should set SDL_numjoysticks to the number of available
@@ -47,17 +46,19 @@
 {
     SDL_numjoysticks = 1;
     
-return (1);
+    return (1);
 }
 
 /* Function to get the device-dependent name of a joystick */
 const char *
 SDL_SYS_JoystickName(int index)
 {
-    if (!index)
+    if (index == 0) {
         return accelerometerName;
-    SDL_SetError("No joystick available with that index");
-    return (NULL);
+    } else {
+        SDL_SetError("No joystick available with that index");
+        return (NULL);
+    }
 }
 
 /* Function to open a joystick for use.
@@ -82,12 +83,16 @@
  * but instead should call SDL_PrivateJoystick*() to deliver events
  * and update joystick device state.
  */
-    void
+void
 SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
 {
-    int i=0; 
-    for(i=0;i<3;i++){
-        SDL_PrivateJoystickAxis(joystick, i, fLastAccelerometer[i]);
+    int i;
+    float values[3];
+
+    Android_JNI_GetAccelerometerValues(values);
+
+    for ( i = 0; i < 3; i++ ) {
+        SDL_PrivateJoystickAxis(joystick, i, values[i]);
     }
 }
 
@@ -104,3 +109,5 @@
 }
 
 #endif /* SDL_JOYSTICK_NDS */
+
+/* vi: set ts=4 sw=4 expandtab: */