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_CFLAGS :=
LOCAL_C_INCLUDES := LOCAL_C_INCLUDES :=
ifeq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),) #ifeq ($(CRYSTAX_TOOLCHAIN)$(NDK_R5_TOOLCHAIN),)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../stlport/stlport #LOCAL_C_INCLUDES += $(LOCAL_PATH)/../stlport/stlport
endif #endif
ifneq ($(CRYSTAX_R5_TOOLCHAIN),) ifneq ($(CRYSTAX_R5_TOOLCHAIN),)
LOCAL_C_INCLUDES += $(NDK_PATH)/sources/crystax/include LOCAL_C_INCLUDES += $(NDK_PATH)/sources/crystax/include
endif endif

View File

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

View File

@@ -1,6 +1,6 @@
# The application settings for Android libSDL port # The application settings for Android libSDL port
AppSettingVersion=17 AppSettingVersion=17
LibSdlVersion=1.2 LibSdlVersion=1.3
AppName="Ballfield" AppName="Ballfield"
AppFullName=net.olofson.ballfield AppFullName=net.olofson.ballfield
ScreenOrientation=h ScreenOrientation=h
@@ -23,7 +23,7 @@ AppUsesJoystick=n
AppHandlesJoystickSensitivity=n AppHandlesJoystickSensitivity=n
AppUsesMultitouch=n AppUsesMultitouch=n
NonBlockingSwapBuffers=y NonBlockingSwapBuffers=y
RedefinedKeys="SPACE" RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP SPACE ESCAPE"
AppTouchscreenKeyboardKeysAmount=0 AppTouchscreenKeyboardKeysAmount=0
AppTouchscreenKeyboardKeysAmountAutoFire=0 AppTouchscreenKeyboardKeysAmountAutoFire=0
RedefinedKeysScreenKb="1 2 3 4 5 6 1 2 3 4" 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) if(evt.type == SDL_KEYUP || evt.type == SDL_KEYDOWN)
{ {
Uint8 *keys = SDL_GetKeyState(&i); if(evt.key.keysym.sym == SDLK_ESCAPE)
if(keys[SDLK_ESCAPE])
return 0; 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) if(evt.type == SDL_VIDEORESIZE)
__android_log_print(ANDROID_LOG_INFO, "Ballfield", "SDL resize event: %d x %d", evt.resize.w, evt.resize.h); __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_CAMERA] = SDL_KEY(SDL_KEY_VAL(SDL_ANDROID_KEYCODE_6));
keymap[KEYCODE_FOCUS] = 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_0] = SDL_KEY(0);
keymap[KEYCODE_1] = SDL_KEY(1); 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_SCROLL_LOCK] = SDL_KEY(SCROLLLOCK);
keymap[KEYCODE_META_LEFT] = SDL_KEY(LEFT); keymap[KEYCODE_META_LEFT] = SDL_KEY(LEFT);
keymap[KEYCODE_META_RIGHT] = SDL_KEY(RIGHT); 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_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_HOME] = SDL_KEY(HOME);
keymap[KEYCODE_MOVE_END] = SDL_KEY(END); keymap[KEYCODE_MOVE_END] = SDL_KEY(END);
keymap[KEYCODE_INSERT] = SDL_KEY(INSERT); 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_F10] = SDL_KEY(F10);
keymap[KEYCODE_F11] = SDL_KEY(F11); keymap[KEYCODE_F11] = SDL_KEY(F11);
keymap[KEYCODE_F12] = SDL_KEY(F12); keymap[KEYCODE_F12] = SDL_KEY(F12);
keymap[KEYCODE_NUM_LOCK] = SDL_KEY(NUMLOCK); keymap[KEYCODE_NUM_LOCK] = SDL_KEY(NUMLOCKCLEAR);
keymap[KEYCODE_NUMPAD_0] = SDL_KEY(KP0); keymap[KEYCODE_NUMPAD_0] = SDL_KEY(KP_0);
keymap[KEYCODE_NUMPAD_1] = SDL_KEY(KP1); keymap[KEYCODE_NUMPAD_1] = SDL_KEY(KP_1);
keymap[KEYCODE_NUMPAD_2] = SDL_KEY(KP2); keymap[KEYCODE_NUMPAD_2] = SDL_KEY(KP_2);
keymap[KEYCODE_NUMPAD_3] = SDL_KEY(KP3); keymap[KEYCODE_NUMPAD_3] = SDL_KEY(KP_3);
keymap[KEYCODE_NUMPAD_4] = SDL_KEY(KP4); keymap[KEYCODE_NUMPAD_4] = SDL_KEY(KP_4);
keymap[KEYCODE_NUMPAD_5] = SDL_KEY(KP5); keymap[KEYCODE_NUMPAD_5] = SDL_KEY(KP_5);
keymap[KEYCODE_NUMPAD_6] = SDL_KEY(KP6); keymap[KEYCODE_NUMPAD_6] = SDL_KEY(KP_6);
keymap[KEYCODE_NUMPAD_7] = SDL_KEY(KP7); keymap[KEYCODE_NUMPAD_7] = SDL_KEY(KP_7);
keymap[KEYCODE_NUMPAD_8] = SDL_KEY(KP8); keymap[KEYCODE_NUMPAD_8] = SDL_KEY(KP_8);
keymap[KEYCODE_NUMPAD_9] = SDL_KEY(KP9); keymap[KEYCODE_NUMPAD_9] = SDL_KEY(KP_9);
keymap[KEYCODE_NUMPAD_DIVIDE] = SDL_KEY(KP_DIVIDE); keymap[KEYCODE_NUMPAD_DIVIDE] = SDL_KEY(KP_DIVIDE);
keymap[KEYCODE_NUMPAD_MULTIPLY] = SDL_KEY(KP_MULTIPLY); keymap[KEYCODE_NUMPAD_MULTIPLY] = SDL_KEY(KP_MULTIPLY);
keymap[KEYCODE_NUMPAD_SUBTRACT] = SDL_KEY(KP_MINUS); 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 // Special key to signal that key should be handled by Java internally, such as Volume Up/Down keys
#define SDLK_NO_REMAP 512 #define SDLK_NO_REMAP 512
#define SDL_SCANCODE_NO_REMAP SDLK_NO_REMAP
#if SDL_VERSION_ATLEAST(1,3,0) #if SDL_VERSION_ATLEAST(1,3,0)
@@ -80,6 +81,8 @@
#define GRAVE DOLLAR #define GRAVE DOLLAR
#define APOSTROPHE QUOTE #define APOSTROPHE QUOTE
#define LGUI LMETA #define LGUI LMETA
#define RGUI RMETA
#define SCROLLLOCK SCROLLOCK
// Overkill haha // Overkill haha
#define A a #define A a
#define B b #define B b
@@ -144,6 +147,12 @@ extern int SDL_ANDROID_isTouchscreenKeyboardUsed;
#ifndef SDL_ANDROID_KEYCODE_7 #ifndef SDL_ANDROID_KEYCODE_7
#define SDL_ANDROID_KEYCODE_7 SDL_ANDROID_KEYCODE_1 #define SDL_ANDROID_KEYCODE_7 SDL_ANDROID_KEYCODE_1
#endif #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 // Touchscreen keyboard keys + zoom and rotate keycodes
#ifndef SDL_ANDROID_SCREENKB_KEYCODE_0 #ifndef SDL_ANDROID_SCREENKB_KEYCODE_0

View File

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