SDL: unfinished support for multiple gamepads

This commit is contained in:
Sergii Pylypenko
2017-11-03 23:49:24 +02:00
parent 9c86e109dd
commit b742ebaf72
8 changed files with 319 additions and 92 deletions

View File

@@ -55,6 +55,7 @@ If you compile this code with SDL 1.3 or newer, or use in some other way, the li
#include "../SDL_sysvideo.h"
#include "SDL_androidvideo.h"
#include "SDL_screenkeyboard.h"
#include "javakeycodes.h"
/* JNI-C++ wrapper stuff */
@@ -211,53 +212,53 @@ extern int SDL_ANDROID_isTouchscreenKeyboardUsed;
#endif
// Gamepad keys
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_0
#define SDL_ANDROID_GAMEPAD_KEYCODE_0 SDL_ANDROID_SCREENKB_KEYCODE_0
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_0
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_0 SDL_ANDROID_SCREENKB_KEYCODE_0
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_1
#define SDL_ANDROID_GAMEPAD_KEYCODE_1 SDL_ANDROID_SCREENKB_KEYCODE_1
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_1
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_1 SDL_ANDROID_SCREENKB_KEYCODE_1
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_2
#define SDL_ANDROID_GAMEPAD_KEYCODE_2 SDL_ANDROID_SCREENKB_KEYCODE_2
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_2
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_2 SDL_ANDROID_SCREENKB_KEYCODE_2
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_3
#define SDL_ANDROID_GAMEPAD_KEYCODE_3 SDL_ANDROID_SCREENKB_KEYCODE_3
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_3
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_3 SDL_ANDROID_SCREENKB_KEYCODE_3
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_4
#define SDL_ANDROID_GAMEPAD_KEYCODE_4 SDL_ANDROID_SCREENKB_KEYCODE_5
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_4
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_4 SDL_ANDROID_SCREENKB_KEYCODE_5
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_5
#define SDL_ANDROID_GAMEPAD_KEYCODE_5 SDL_ANDROID_SCREENKB_KEYCODE_4
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_5
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_5 SDL_ANDROID_SCREENKB_KEYCODE_4
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_6
#define SDL_ANDROID_GAMEPAD_KEYCODE_6 SDL_ANDROID_KEYCODE_0
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_6
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_6 SDL_ANDROID_KEYCODE_0
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_7
#define SDL_ANDROID_GAMEPAD_KEYCODE_7 SDL_ANDROID_KEYCODE_6
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_7
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_7 SDL_ANDROID_KEYCODE_6
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_8
#define SDL_ANDROID_GAMEPAD_KEYCODE_8 SPACE
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_8
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_8 SPACE
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_9
#define SDL_ANDROID_GAMEPAD_KEYCODE_9 RETURN
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_9
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_9 RETURN
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_10
#define SDL_ANDROID_GAMEPAD_KEYCODE_10 SDL_ANDROID_KEYCODE_5
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_10
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_10 SDL_ANDROID_KEYCODE_5
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_11
#define SDL_ANDROID_GAMEPAD_KEYCODE_11 SDL_ANDROID_KEYCODE_4
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_11
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_11 SDL_ANDROID_KEYCODE_4
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_12
#define SDL_ANDROID_GAMEPAD_KEYCODE_12 UP
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_12
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_12 UP
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_13
#define SDL_ANDROID_GAMEPAD_KEYCODE_13 DOWN
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_13
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_13 DOWN
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_14
#define SDL_ANDROID_GAMEPAD_KEYCODE_14 LEFT
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_14
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_14 LEFT
#endif
#ifndef SDL_ANDROID_GAMEPAD_KEYCODE_15
#define SDL_ANDROID_GAMEPAD_KEYCODE_15 RIGHT
#ifndef SDL_ANDROID_GAMEPAD_0_KEYCODE_15
#define SDL_ANDROID_GAMEPAD_0_KEYCODE_15 RIGHT
#endif
// Queue events to main thread
@@ -275,7 +276,8 @@ extern void SDL_ANDROID_MainThreadPushMouseWheel( int x, int y ); // SDL 1.3 onl
extern void SDL_ANDROID_MainThreadPushAppActive(int active);
// Internal input queue stuff
extern SDLKey SDL_android_keymap[];
extern SDLKey SDL_android_keymap[KEYCODE_LAST+1];
extern SDLKey SDL_android_gamepad_keymap[SDL_ANDROID_MAX_GAMEPADS][KEYCODE_LAST+1];
extern int SDL_android_KeysymFromUnicodeShiftNeeded(int unicode);
extern unsigned char SDL_android_keysym_to_scancode[SDLK_LAST];
extern SDL_Joystick *SDL_ANDROID_CurrentJoysticks[];