Mercurial > sdl-ios-xcode
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: */