Fixes for SDL 1.3, the keycodes and invoking from background are broken

This commit is contained in:
pelya
2011-09-19 16:11:22 +03:00
parent c1ae5a0fc6
commit ede9b2fdfd
8 changed files with 144 additions and 135 deletions

View File

@@ -22,9 +22,9 @@ LOCAL_SRC_FILES += $(foreach F, $(APP_SUBDIRS), $(addprefix $(F)/,$(notdir $(wil
LOCAL_CFLAGS :=
LOCAL_C_INCLUDES :=
ifeq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../stlport/stlport
endif
#ifeq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),)
#LOCAL_C_INCLUDES += $(LOCAL_PATH)/../stlport/stlport
#endif
ifneq ($(CRYSTAX_R5_TOOLCHAIN),)
LOCAL_C_INCLUDES += $(NDK_PATH)/sources/crystax/include
endif

View File

@@ -16,6 +16,7 @@ SdlVideoResizeKeepAspect=n
CompatibilityHacks=
AppUsesMouse=n
AppNeedsTwoButtonMouse=n
ForceRelativeMouseMode=n
AppNeedsArrowKeys=y
AppNeedsTextInput=y
AppUsesJoystick=n

View File

@@ -1,6 +1,6 @@
# The application settings for Android libSDL port
AppSettingVersion=17
LibSdlVersion=1.2
LibSdlVersion=1.3
AppName="Ballfield"
AppFullName=net.olofson.ballfield
ScreenOrientation=h
@@ -23,7 +23,7 @@ AppUsesJoystick=n
AppHandlesJoystickSensitivity=n
AppUsesMultitouch=n
NonBlockingSwapBuffers=y
RedefinedKeys="SPACE"
RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP SPACE ESCAPE"
AppTouchscreenKeyboardKeysAmount=0
AppTouchscreenKeyboardKeysAmountAutoFire=0
RedefinedKeysScreenKb="1 2 3 4 5 6 1 2 3 4"

View File

@@ -593,10 +593,9 @@ int main(int argc, char* argv[])
{
if(evt.type == SDL_KEYUP || evt.type == SDL_KEYDOWN)
{
Uint8 *keys = SDL_GetKeyState(&i);
if(keys[SDLK_ESCAPE])
if(evt.key.keysym.sym == SDLK_ESCAPE)
return 0;
__android_log_print(ANDROID_LOG_INFO, "Ballfield", "SDL key event: evt %s state %s key %d RETURN %d mod %d unicode %d", evt.type == SDL_KEYUP ? "UP " : "DOWN" , evt.key.state == SDL_PRESSED ? "PRESSED " : "RELEASED", (int)evt.key.keysym.sym, int(evt.key.keysym.sym == SDLK_RETURN), (int)evt.key.keysym.mod, (int)evt.key.keysym.unicode);
__android_log_print(ANDROID_LOG_INFO, "Ballfield", "SDL key event: evt %s state %s key %d scancode %d mod %d unicode %d", evt.type == SDL_KEYUP ? "UP " : "DOWN" , evt.key.state == SDL_PRESSED ? "PRESSED " : "RELEASED", (int)evt.key.keysym.sym, (int)evt.key.keysym.scancode, (int)evt.key.keysym.mod, (int)evt.key.keysym.unicode);
}
if(evt.type == SDL_VIDEORESIZE)
__android_log_print(ANDROID_LOG_INFO, "Ballfield", "SDL resize event: %d x %d", evt.resize.w, evt.resize.h);

View File

@@ -1 +1 @@
sc2
ballfield

View File

@@ -1863,7 +1863,7 @@ JAVA_EXPORT_NAME(Settings_nativeInitKeymap) ( JNIEnv* env, jobject thiz )
keymap[KEYCODE_CAMERA] = SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_KEYCODE_6));
keymap[KEYCODE_FOCUS] = SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_KEYCODE_6));
keymap[KEYCODE_CALL] = LSHIFT;
keymap[KEYCODE_CALL] = SDL_KEY(TAB);
keymap[KEYCODE_0] = SDL_KEY(0);
keymap[KEYCODE_1] = SDL_KEY(1);
@@ -1986,9 +1986,9 @@ JAVA_EXPORT_NAME(Settings_nativeInitKeymap) ( JNIEnv* env, jobject thiz )
keymap[KEYCODE_SCROLL_LOCK] = SDL_KEY(SCROLLLOCK);
keymap[KEYCODE_META_LEFT] = SDL_KEY(LEFT);
keymap[KEYCODE_META_RIGHT] = SDL_KEY(RIGHT);
keymap[KEYCODE_FUNCTION] = SDL_KEY(RMETA);
keymap[KEYCODE_FUNCTION] = SDL_KEY(RGUI);
keymap[KEYCODE_SYSRQ] = SDL_KEY(SYSREQ);
keymap[KEYCODE_BREAK] = SDL_KEY(BREAK);
keymap[KEYCODE_BREAK] = SDL_KEY(PAUSE);
keymap[KEYCODE_MOVE_HOME] = SDL_KEY(HOME);
keymap[KEYCODE_MOVE_END] = SDL_KEY(END);
keymap[KEYCODE_INSERT] = SDL_KEY(INSERT);
@@ -2010,17 +2010,17 @@ JAVA_EXPORT_NAME(Settings_nativeInitKeymap) ( JNIEnv* env, jobject thiz )
keymap[KEYCODE_F10] = SDL_KEY(F10);
keymap[KEYCODE_F11] = SDL_KEY(F11);
keymap[KEYCODE_F12] = SDL_KEY(F12);
keymap[KEYCODE_NUM_LOCK] = SDL_KEY(NUMLOCK);
keymap[KEYCODE_NUMPAD_0] = SDL_KEY(KP0);
keymap[KEYCODE_NUMPAD_1] = SDL_KEY(KP1);
keymap[KEYCODE_NUMPAD_2] = SDL_KEY(KP2);
keymap[KEYCODE_NUMPAD_3] = SDL_KEY(KP3);
keymap[KEYCODE_NUMPAD_4] = SDL_KEY(KP4);
keymap[KEYCODE_NUMPAD_5] = SDL_KEY(KP5);
keymap[KEYCODE_NUMPAD_6] = SDL_KEY(KP6);
keymap[KEYCODE_NUMPAD_7] = SDL_KEY(KP7);
keymap[KEYCODE_NUMPAD_8] = SDL_KEY(KP8);
keymap[KEYCODE_NUMPAD_9] = SDL_KEY(KP9);
keymap[KEYCODE_NUM_LOCK] = SDL_KEY(NUMLOCKCLEAR);
keymap[KEYCODE_NUMPAD_0] = SDL_KEY(KP_0);
keymap[KEYCODE_NUMPAD_1] = SDL_KEY(KP_1);
keymap[KEYCODE_NUMPAD_2] = SDL_KEY(KP_2);
keymap[KEYCODE_NUMPAD_3] = SDL_KEY(KP_3);
keymap[KEYCODE_NUMPAD_4] = SDL_KEY(KP_4);
keymap[KEYCODE_NUMPAD_5] = SDL_KEY(KP_5);
keymap[KEYCODE_NUMPAD_6] = SDL_KEY(KP_6);
keymap[KEYCODE_NUMPAD_7] = SDL_KEY(KP_7);
keymap[KEYCODE_NUMPAD_8] = SDL_KEY(KP_8);
keymap[KEYCODE_NUMPAD_9] = SDL_KEY(KP_9);
keymap[KEYCODE_NUMPAD_DIVIDE] = SDL_KEY(KP_DIVIDE);
keymap[KEYCODE_NUMPAD_MULTIPLY] = SDL_KEY(KP_MULTIPLY);
keymap[KEYCODE_NUMPAD_SUBTRACT] = SDL_KEY(KP_MINUS);

View File

@@ -54,6 +54,7 @@
// Special key to signal that key should be handled by Java internally, such as Volume Up/Down keys
#define SDLK_NO_REMAP 512
#define SDL_SCANCODE_NO_REMAP SDLK_NO_REMAP
#if SDL_VERSION_ATLEAST(1,3,0)
@@ -80,6 +81,8 @@
#define GRAVE DOLLAR
#define APOSTROPHE QUOTE
#define LGUI LMETA
#define RGUI RMETA
#define SCROLLLOCK SCROLLOCK
// Overkill haha
#define A a
#define B b
@@ -144,6 +147,12 @@ extern int SDL_ANDROID_isTouchscreenKeyboardUsed;
#ifndef SDL_ANDROID_KEYCODE_7
#define SDL_ANDROID_KEYCODE_7 SDL_ANDROID_KEYCODE_1
#endif
#ifndef SDL_ANDROID_KEYCODE_8
#define SDL_ANDROID_KEYCODE_8 LALT
#endif
#ifndef SDL_ANDROID_KEYCODE_9
#define SDL_ANDROID_KEYCODE_9 RALT
#endif
// Touchscreen keyboard keys + zoom and rotate keycodes
#ifndef SDL_ANDROID_SCREENKB_KEYCODE_0

View File

@@ -96,118 +96,118 @@ KEYCODE_MEDIA_PREVIOUS = 88,
KEYCODE_MEDIA_REWIND = 89,
KEYCODE_MEDIA_FAST_FORWARD = 90,
KEYCODE_MUTE = 91,
KEYCODE_PAGE_UP = 92;
KEYCODE_PAGE_DOWN = 93;
KEYCODE_PICTSYMBOLS = 94;
KEYCODE_SWITCH_CHARSET = 95;
KEYCODE_BUTTON_A = 96;
KEYCODE_BUTTON_B = 97;
KEYCODE_BUTTON_C = 98;
KEYCODE_BUTTON_X = 99;
KEYCODE_BUTTON_Y = 100;
KEYCODE_BUTTON_Z = 101;
KEYCODE_BUTTON_L1 = 102;
KEYCODE_BUTTON_R1 = 103;
KEYCODE_BUTTON_L2 = 104;
KEYCODE_BUTTON_R2 = 105;
KEYCODE_BUTTON_THUMBL = 106;
KEYCODE_BUTTON_THUMBR = 107;
KEYCODE_BUTTON_START = 108;
KEYCODE_BUTTON_SELECT = 109;
KEYCODE_BUTTON_MODE = 110;
KEYCODE_ESCAPE = 111;
KEYCODE_FORWARD_DEL = 112;
KEYCODE_CTRL_LEFT = 113;
KEYCODE_CTRL_RIGHT = 114;
KEYCODE_CAPS_LOCK = 115;
KEYCODE_SCROLL_LOCK = 116;
KEYCODE_META_LEFT = 117;
KEYCODE_META_RIGHT = 118;
KEYCODE_FUNCTION = 119;
KEYCODE_SYSRQ = 120;
KEYCODE_BREAK = 121;
KEYCODE_MOVE_HOME = 122;
KEYCODE_MOVE_END = 123;
KEYCODE_INSERT = 124;
KEYCODE_FORWARD = 125;
KEYCODE_MEDIA_PLAY = 126;
KEYCODE_MEDIA_PAUSE = 127;
KEYCODE_MEDIA_CLOSE = 128;
KEYCODE_MEDIA_EJECT = 129;
KEYCODE_MEDIA_RECORD = 130;
KEYCODE_F1 = 131;
KEYCODE_F2 = 132;
KEYCODE_F3 = 133;
KEYCODE_F4 = 134;
KEYCODE_F5 = 135;
KEYCODE_F6 = 136;
KEYCODE_F7 = 137;
KEYCODE_F8 = 138;
KEYCODE_F9 = 139;
KEYCODE_F10 = 140;
KEYCODE_F11 = 141;
KEYCODE_F12 = 142;
KEYCODE_NUM_LOCK = 143;
KEYCODE_NUMPAD_0 = 144;
KEYCODE_NUMPAD_1 = 145;
KEYCODE_NUMPAD_2 = 146;
KEYCODE_NUMPAD_3 = 147;
KEYCODE_NUMPAD_4 = 148;
KEYCODE_NUMPAD_5 = 149;
KEYCODE_NUMPAD_6 = 150;
KEYCODE_NUMPAD_7 = 151;
KEYCODE_NUMPAD_8 = 152;
KEYCODE_NUMPAD_9 = 153;
KEYCODE_NUMPAD_DIVIDE = 154;
KEYCODE_NUMPAD_MULTIPLY = 155;
KEYCODE_NUMPAD_SUBTRACT = 156;
KEYCODE_NUMPAD_ADD = 157;
KEYCODE_NUMPAD_DOT = 158;
KEYCODE_NUMPAD_COMMA = 159;
KEYCODE_NUMPAD_ENTER = 160;
KEYCODE_NUMPAD_EQUALS = 161;
KEYCODE_NUMPAD_LEFT_PAREN = 162
KEYCODE_NUMPAD_RIGHT_PAREN = 16
KEYCODE_VOLUME_MUTE = 164;
KEYCODE_INFO = 165;
KEYCODE_CHANNEL_UP = 166;
KEYCODE_CHANNEL_DOWN = 167;
KEYCODE_ZOOM_IN = 168;
KEYCODE_ZOOM_OUT = 169;
KEYCODE_TV = 170;
KEYCODE_WINDOW = 171;
KEYCODE_GUIDE = 172;
KEYCODE_DVR = 173;
KEYCODE_BOOKMARK = 174;
KEYCODE_CAPTIONS = 175;
KEYCODE_SETTINGS = 176;
KEYCODE_TV_POWER = 177;
KEYCODE_TV_INPUT = 178;
KEYCODE_STB_POWER = 179;
KEYCODE_STB_INPUT = 180;
KEYCODE_AVR_POWER = 181;
KEYCODE_AVR_INPUT = 182;
KEYCODE_PROG_RED = 183;
KEYCODE_PROG_GREEN = 184;
KEYCODE_PROG_YELLOW = 185;
KEYCODE_PROG_BLUE = 186;
KEYCODE_APP_SWITCH = 187;
KEYCODE_BUTTON_1 = 188;
KEYCODE_BUTTON_2 = 189;
KEYCODE_BUTTON_3 = 190;
KEYCODE_BUTTON_4 = 191;
KEYCODE_BUTTON_5 = 192;
KEYCODE_BUTTON_6 = 193;
KEYCODE_BUTTON_7 = 194;
KEYCODE_BUTTON_8 = 195;
KEYCODE_BUTTON_9 = 196;
KEYCODE_BUTTON_10 = 197;
KEYCODE_BUTTON_11 = 198;
KEYCODE_BUTTON_12 = 199;
KEYCODE_BUTTON_13 = 200;
KEYCODE_BUTTON_14 = 201;
KEYCODE_BUTTON_15 = 202;
KEYCODE_BUTTON_16 = 203;
KEYCODE_PAGE_UP = 92,
KEYCODE_PAGE_DOWN = 93,
KEYCODE_PICTSYMBOLS = 94,
KEYCODE_SWITCH_CHARSET = 95,
KEYCODE_BUTTON_A = 96,
KEYCODE_BUTTON_B = 97,
KEYCODE_BUTTON_C = 98,
KEYCODE_BUTTON_X = 99,
KEYCODE_BUTTON_Y = 100,
KEYCODE_BUTTON_Z = 101,
KEYCODE_BUTTON_L1 = 102,
KEYCODE_BUTTON_R1 = 103,
KEYCODE_BUTTON_L2 = 104,
KEYCODE_BUTTON_R2 = 105,
KEYCODE_BUTTON_THUMBL = 106,
KEYCODE_BUTTON_THUMBR = 107,
KEYCODE_BUTTON_START = 108,
KEYCODE_BUTTON_SELECT = 109,
KEYCODE_BUTTON_MODE = 110,
KEYCODE_ESCAPE = 111,
KEYCODE_FORWARD_DEL = 112,
KEYCODE_CTRL_LEFT = 113,
KEYCODE_CTRL_RIGHT = 114,
KEYCODE_CAPS_LOCK = 115,
KEYCODE_SCROLL_LOCK = 116,
KEYCODE_META_LEFT = 117,
KEYCODE_META_RIGHT = 118,
KEYCODE_FUNCTION = 119,
KEYCODE_SYSRQ = 120,
KEYCODE_BREAK = 121,
KEYCODE_MOVE_HOME = 122,
KEYCODE_MOVE_END = 123,
KEYCODE_INSERT = 124,
KEYCODE_FORWARD = 125,
KEYCODE_MEDIA_PLAY = 126,
KEYCODE_MEDIA_PAUSE = 127,
KEYCODE_MEDIA_CLOSE = 128,
KEYCODE_MEDIA_EJECT = 129,
KEYCODE_MEDIA_RECORD = 130,
KEYCODE_F1 = 131,
KEYCODE_F2 = 132,
KEYCODE_F3 = 133,
KEYCODE_F4 = 134,
KEYCODE_F5 = 135,
KEYCODE_F6 = 136,
KEYCODE_F7 = 137,
KEYCODE_F8 = 138,
KEYCODE_F9 = 139,
KEYCODE_F10 = 140,
KEYCODE_F11 = 141,
KEYCODE_F12 = 142,
KEYCODE_NUM_LOCK = 143,
KEYCODE_NUMPAD_0 = 144,
KEYCODE_NUMPAD_1 = 145,
KEYCODE_NUMPAD_2 = 146,
KEYCODE_NUMPAD_3 = 147,
KEYCODE_NUMPAD_4 = 148,
KEYCODE_NUMPAD_5 = 149,
KEYCODE_NUMPAD_6 = 150,
KEYCODE_NUMPAD_7 = 151,
KEYCODE_NUMPAD_8 = 152,
KEYCODE_NUMPAD_9 = 153,
KEYCODE_NUMPAD_DIVIDE = 154,
KEYCODE_NUMPAD_MULTIPLY = 155,
KEYCODE_NUMPAD_SUBTRACT = 156,
KEYCODE_NUMPAD_ADD = 157,
KEYCODE_NUMPAD_DOT = 158,
KEYCODE_NUMPAD_COMMA = 159,
KEYCODE_NUMPAD_ENTER = 160,
KEYCODE_NUMPAD_EQUALS = 161,
KEYCODE_NUMPAD_LEFT_PAREN = 162,
KEYCODE_NUMPAD_RIGHT_PAREN = 163,
KEYCODE_VOLUME_MUTE = 164,
KEYCODE_INFO = 165,
KEYCODE_CHANNEL_UP = 166,
KEYCODE_CHANNEL_DOWN = 167,
KEYCODE_ZOOM_IN = 168,
KEYCODE_ZOOM_OUT = 169,
KEYCODE_TV = 170,
KEYCODE_WINDOW = 171,
KEYCODE_GUIDE = 172,
KEYCODE_DVR = 173,
KEYCODE_BOOKMARK = 174,
KEYCODE_CAPTIONS = 175,
KEYCODE_SETTINGS = 176,
KEYCODE_TV_POWER = 177,
KEYCODE_TV_INPUT = 178,
KEYCODE_STB_POWER = 179,
KEYCODE_STB_INPUT = 180,
KEYCODE_AVR_POWER = 181,
KEYCODE_AVR_INPUT = 182,
KEYCODE_PROG_RED = 183,
KEYCODE_PROG_GREEN = 184,
KEYCODE_PROG_YELLOW = 185,
KEYCODE_PROG_BLUE = 186,
KEYCODE_APP_SWITCH = 187,
KEYCODE_BUTTON_1 = 188,
KEYCODE_BUTTON_2 = 189,
KEYCODE_BUTTON_3 = 190,
KEYCODE_BUTTON_4 = 191,
KEYCODE_BUTTON_5 = 192,
KEYCODE_BUTTON_6 = 193,
KEYCODE_BUTTON_7 = 194,
KEYCODE_BUTTON_8 = 195,
KEYCODE_BUTTON_9 = 196,
KEYCODE_BUTTON_10 = 197,
KEYCODE_BUTTON_11 = 198,
KEYCODE_BUTTON_12 = 199,
KEYCODE_BUTTON_13 = 200,
KEYCODE_BUTTON_14 = 201,
KEYCODE_BUTTON_15 = 202,
KEYCODE_BUTTON_16 = 203,
KEYCODE_LAST = 255 // Android 2.3 added several new gaming keys, Android 3.1 added even more - plz keep in sync with Keycodes.java
};