mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-15 22:35:59 +00:00
fixed hat code validation.
This commit is contained in:
@@ -172,6 +172,14 @@ void Java_org_libsdl_app_SDLActivity_onNativeJoy(
|
||||
Android_OnJoy(device_id, axis, value);
|
||||
}
|
||||
|
||||
/* POV Hat */
|
||||
void Java_org_libsdl_app_SDLActivity_onNativeHat(
|
||||
JNIEnv* env, jclass jcls,
|
||||
jint device_id, jint hat_id, jint x, jint y)
|
||||
{
|
||||
Android_OnHat(device_id, hat_id, x, y);
|
||||
}
|
||||
|
||||
|
||||
int Java_org_libsdl_app_SDLActivity_nativeAddJoystick(
|
||||
JNIEnv* env, jclass jcls,
|
||||
|
@@ -226,6 +226,26 @@ Android_OnJoy(int device_id, int axis, float value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
Android_OnHat(int device_id, int hat_id, int x, int y)
|
||||
{
|
||||
const Uint8 position_map[3][3] = {
|
||||
{SDL_HAT_LEFTUP, SDL_HAT_UP, SDL_HAT_RIGHTUP},
|
||||
{SDL_HAT_LEFT, SDL_HAT_CENTERED, SDL_HAT_RIGHT},
|
||||
{SDL_HAT_LEFTDOWN, SDL_HAT_DOWN, SDL_HAT_RIGHTDOWN}
|
||||
};
|
||||
|
||||
if (x >= -1 && x <=1 && y >= -1 && y <= 1) {
|
||||
SDL_joylist_item *item = JoystickByDeviceId(device_id);
|
||||
if (item && item->joystick) {
|
||||
SDL_PrivateJoystickHat(item->joystick, hat_id, position_map[y+1][x+1] );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
Android_AddJoystick(int device_id, const char *name, SDL_bool is_accelerometer, int nbuttons, int naxes, int nhats, int nballs)
|
||||
|
@@ -27,6 +27,7 @@
|
||||
extern int Android_OnPadDown(int device_id, int keycode);
|
||||
extern int Android_OnPadUp(int device_id, int keycode);
|
||||
extern int Android_OnJoy(int device_id, int axisnum, float value);
|
||||
extern int Android_OnHat(int device_id, int hat_id, int x, int y);
|
||||
extern int Android_AddJoystick(int device_id, const char *name, SDL_bool is_accelerometer, int nbuttons, int naxes, int nhats, int nballs);
|
||||
extern int Android_RemoveJoystick(int device_id);
|
||||
|
||||
|
Reference in New Issue
Block a user