From d7f36af446722ac4d5d71cb489930b1c32f25f11 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 11 Jan 2015 00:07:59 +0100 Subject: [PATCH] Move stuff around --- input/android_input.c | 16 ++-- input/android_input_joypad.c | 9 +-- input/apple_joypad_hid.c | 19 ++--- input/input_common.c | 22 ++++++ input/input_common.h | 1 + input/input_context.c | 147 ----------------------------------- input/input_keymaps.c | 126 ++++++++++++++++++++++++++++++ 7 files changed, 173 insertions(+), 167 deletions(-) diff --git a/input/android_input.c b/input/android_input.c index b4afd0671e..e2a160a3bc 100644 --- a/input/android_input.c +++ b/input/android_input.c @@ -158,6 +158,7 @@ static bool android_input_lookup_name_gingerbread(char *buf, jclass class; jmethodID method, getName; jobject device, name; + const char *str = NULL; JNIEnv *env = (JNIEnv*)jni_thread_getenv(); if (!env) @@ -197,7 +198,7 @@ static bool android_input_lookup_name_gingerbread(char *buf, buf[0] = '\0'; - const char *str = (*env)->GetStringUTFChars(env, name, 0); + str = (*env)->GetStringUTFChars(env, name, 0); if (str) strlcpy(buf, str, size); (*env)->ReleaseStringUTFChars(env, name, str); @@ -215,6 +216,7 @@ static bool android_input_lookup_name_post_gingerbread(char *buf, jclass class; jmethodID method, getName, getVendorId, getProductId; jobject device, name; + const char *str = NULL; JNIEnv *env = (JNIEnv*)jni_thread_getenv(); if (!env) @@ -254,7 +256,7 @@ static bool android_input_lookup_name_post_gingerbread(char *buf, buf[0] = '\0'; - const char *str = (*env)->GetStringUTFChars(env, name, 0); + str = (*env)->GetStringUTFChars(env, name, 0); if (str) strlcpy(buf, str, size); (*env)->ReleaseStringUTFChars(env, name, str); @@ -297,6 +299,7 @@ static void *android_input_init(void) { int32_t major, minor, bugfix; android_input_t *android = (android_input_t*)calloc(1, sizeof(*android)); + if (!android) return NULL; @@ -349,6 +352,7 @@ static inline int android_input_poll_event_type_motion( { float x, y; int pointer_max = min(AMotionEvent_getPointerCount(event), MAX_TOUCH); + for (motion_pointer = 0; motion_pointer < pointer_max; motion_pointer++) { x = AMotionEvent_getX(event, motion_pointer); @@ -619,7 +623,7 @@ static void android_input_poll(void *data) { int ident; struct android_app *android_app = (struct android_app*)g_android; - android_input_t *android = (android_input_t*)data; + android_input_t *android = (android_input_t*)data; while ((ident = ALooper_pollAll((driver.input->key_pressed(driver.input_data, RARCH_PAUSE_TOGGLE)) @@ -841,9 +845,9 @@ static float android_input_get_sensor_input(void *data, static const rarch_joypad_driver_t *android_input_get_joypad_driver(void *data) { android_input_t *android = (android_input_t*)data; - if (android) - return android->joypad; - return NULL; + if (!android) + return NULL; + return android->joypad; } input_driver_t input_android = { diff --git a/input/android_input_joypad.c b/input/android_input_joypad.c index e3f3fe2675..78b1df61c1 100644 --- a/input/android_input_joypad.c +++ b/input/android_input_joypad.c @@ -89,15 +89,14 @@ static bool android_joypad_button(unsigned port, uint16_t joykey) static int16_t android_joypad_axis(unsigned port, uint32_t joyaxis) { - android_input_t *android = (android_input_t*)driver.input_data; - if (!android || joyaxis == AXIS_NONE || port >= MAX_PADS) - return 0; - int val = 0; - int axis = -1; bool is_neg = false; bool is_pos = false; + android_input_t *android = (android_input_t*)driver.input_data; + + if (!android || joyaxis == AXIS_NONE || port >= MAX_PADS) + return 0; if (AXIS_NEG_GET(joyaxis) < MAX_AXIS) { diff --git a/input/apple_joypad_hid.c b/input/apple_joypad_hid.c index 36d02a79ee..e8c5574d5e 100644 --- a/input/apple_joypad_hid.c +++ b/input/apple_joypad_hid.c @@ -147,15 +147,17 @@ static void hid_device_report(void* context, IOReturn result, void *sender, { struct pad_connection* connection = (struct pad_connection*)context; - if (connection) - pad_connection_packet(&slots[connection->slot], connection->slot, - connection->data, reportLength + 1); + if (!connection) + return; + + pad_connection_packet(&slots[connection->slot], connection->slot, + connection->data, reportLength + 1); } static void add_device(void* context, IOReturn result, void* sender, IOHIDDeviceRef device) { - char device_name[PATH_MAX]; + char device_name[PATH_MAX_LENGTH]; CFStringRef device_name_ref; CFNumberRef vendorID, productID; struct pad_connection* connection = (struct pad_connection*) @@ -208,13 +210,11 @@ static void add_device(void* context, IOReturn result, static void append_matching_dictionary(CFMutableArrayRef array, uint32_t page, uint32_t use) { - CFNumberRef pagen, usen; - CFMutableDictionaryRef matcher; - - matcher = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, + CFNumberRef usen; + CFMutableDictionaryRef matcher = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFNumberRef pagen = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &page); - pagen = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &page); CFDictionarySetValue(matcher, CFSTR(kIOHIDDeviceUsagePageKey), pagen); CFRelease(pagen); @@ -286,6 +286,7 @@ static bool apple_joypad_button(unsigned port, uint16_t joykey) { apple_input_data_t *apple = (apple_input_data_t*)driver.input_data; uint32_t buttons = pad_connection_get_buttons(&slots[port], port); + if (!apple || joykey == NO_BTN) return false; diff --git a/input/input_common.c b/input/input_common.c index 550886c5e0..798df1dcc1 100644 --- a/input/input_common.c +++ b/input/input_common.c @@ -15,6 +15,7 @@ */ #include "input_common.h" +#include "input_keymaps.h" #include #include #include @@ -168,6 +169,27 @@ const char *input_config_get_prefix(unsigned user, bool meta) return NULL; } +static enum retro_key find_rk_bind(const char *str) +{ + size_t i; + + for (i = 0; input_config_key_map[i].str; i++) + { + if (strcasecmp(input_config_key_map[i].str, str) == 0) + return input_config_key_map[i].key; + } + + RARCH_WARN("Key name %s not found.\n", str); + return RETROK_UNKNOWN; +} + +enum retro_key input_translate_str_to_rk(const char *str) +{ + if (strlen(str) == 1 && isalpha(*str)) + return (enum retro_key)(RETROK_a + (tolower(*str) - (int)'a')); + return find_rk_bind(str); +} + /** * input_translate_str_to_bind_id: * @str : String to translate to bind ID. diff --git a/input/input_common.h b/input/input_common.h index ad977f5a61..983b171a75 100644 --- a/input/input_common.h +++ b/input/input_common.h @@ -56,6 +56,7 @@ void input_get_bind_string(char *buf, const struct retro_keybind *bind, const struct retro_keybind *auto_bind, size_t size); void input_translate_rk_to_str(enum retro_key key, char *buf, size_t size); + enum retro_key input_translate_str_to_rk(const char *str); const char *input_config_get_prefix(unsigned user, bool meta); diff --git a/input/input_context.c b/input/input_context.c index 22870afffc..47be0e30a8 100644 --- a/input/input_context.c +++ b/input/input_context.c @@ -105,153 +105,6 @@ const char* config_get_joypad_driver_options(void) return options; } -const struct input_key_map input_config_key_map[] = { - { "left", RETROK_LEFT }, - { "right", RETROK_RIGHT }, - { "up", RETROK_UP }, - { "down", RETROK_DOWN }, - { "enter", RETROK_RETURN }, - { "kp_enter", RETROK_KP_ENTER }, - { "tab", RETROK_TAB }, - { "insert", RETROK_INSERT }, - { "del", RETROK_DELETE }, - { "end", RETROK_END }, - { "home", RETROK_HOME }, - { "rshift", RETROK_RSHIFT }, - { "shift", RETROK_LSHIFT }, - { "ctrl", RETROK_LCTRL }, - { "alt", RETROK_LALT }, - { "space", RETROK_SPACE }, - { "escape", RETROK_ESCAPE }, - { "add", RETROK_KP_PLUS }, - { "subtract", RETROK_KP_MINUS }, - { "kp_plus", RETROK_KP_PLUS }, - { "kp_minus", RETROK_KP_MINUS }, - { "f1", RETROK_F1 }, - { "f2", RETROK_F2 }, - { "f3", RETROK_F3 }, - { "f4", RETROK_F4 }, - { "f5", RETROK_F5 }, - { "f6", RETROK_F6 }, - { "f7", RETROK_F7 }, - { "f8", RETROK_F8 }, - { "f9", RETROK_F9 }, - { "f10", RETROK_F10 }, - { "f11", RETROK_F11 }, - { "f12", RETROK_F12 }, - { "num0", RETROK_0 }, - { "num1", RETROK_1 }, - { "num2", RETROK_2 }, - { "num3", RETROK_3 }, - { "num4", RETROK_4 }, - { "num5", RETROK_5 }, - { "num6", RETROK_6 }, - { "num7", RETROK_7 }, - { "num8", RETROK_8 }, - { "num9", RETROK_9 }, - { "pageup", RETROK_PAGEUP }, - { "pagedown", RETROK_PAGEDOWN }, - { "keypad0", RETROK_KP0 }, - { "keypad1", RETROK_KP1 }, - { "keypad2", RETROK_KP2 }, - { "keypad3", RETROK_KP3 }, - { "keypad4", RETROK_KP4 }, - { "keypad5", RETROK_KP5 }, - { "keypad6", RETROK_KP6 }, - { "keypad7", RETROK_KP7 }, - { "keypad8", RETROK_KP8 }, - { "keypad9", RETROK_KP9 }, - { "period", RETROK_PERIOD }, - { "capslock", RETROK_CAPSLOCK }, - { "numlock", RETROK_NUMLOCK }, - { "backspace", RETROK_BACKSPACE }, - { "multiply", RETROK_KP_MULTIPLY }, - { "divide", RETROK_KP_DIVIDE }, - { "print_screen", RETROK_PRINT }, - { "scroll_lock", RETROK_SCROLLOCK }, - { "tilde", RETROK_BACKQUOTE }, - { "backquote", RETROK_BACKQUOTE }, - { "pause", RETROK_PAUSE }, - - /* Keys that weren't mappable before */ - { "quote", RETROK_QUOTE }, - { "comma", RETROK_COMMA }, - { "minus", RETROK_MINUS }, - { "slash", RETROK_SLASH }, - { "semicolon", RETROK_SEMICOLON }, - { "equals", RETROK_EQUALS }, - { "leftbracket", RETROK_LEFTBRACKET }, - { "backslash", RETROK_BACKSLASH }, - { "rightbracket", RETROK_RIGHTBRACKET }, - { "kp_period", RETROK_KP_PERIOD }, - { "kp_equals", RETROK_KP_EQUALS }, - { "rctrl", RETROK_RCTRL }, - { "ralt", RETROK_RALT }, - - /* Keys not referenced in any keyboard mapping - * (except perhaps rarch_key_map_apple_hid) */ - { "caret", RETROK_CARET }, - { "underscore", RETROK_UNDERSCORE }, - { "exclaim", RETROK_EXCLAIM }, - { "quotedbl", RETROK_QUOTEDBL }, - { "hash", RETROK_HASH }, - { "dollar", RETROK_DOLLAR }, - { "ampersand", RETROK_AMPERSAND }, - { "leftparen", RETROK_LEFTPAREN }, - { "rightparen", RETROK_RIGHTPAREN }, - { "asterisk", RETROK_ASTERISK }, - { "plus", RETROK_PLUS }, - { "colon", RETROK_COLON }, - { "less", RETROK_LESS }, - { "greater", RETROK_GREATER }, - { "question", RETROK_QUESTION }, - { "at", RETROK_AT }, - - { "f13", RETROK_F13 }, - { "f14", RETROK_F14 }, - { "f15", RETROK_F15 }, - - { "rmeta", RETROK_RMETA }, - { "lmeta", RETROK_LMETA }, - { "lsuper", RETROK_LSUPER }, - { "rsuper", RETROK_RSUPER }, - { "mode", RETROK_MODE }, - { "compose", RETROK_COMPOSE }, - - { "help", RETROK_HELP }, - { "sysreq", RETROK_SYSREQ }, - { "break", RETROK_BREAK }, - { "menu", RETROK_MENU }, - { "power", RETROK_POWER }, - { "euro", RETROK_EURO }, - { "undo", RETROK_UNDO }, - { "clear", RETROK_CLEAR }, - - { "nul", RETROK_UNKNOWN }, - { NULL, RETROK_UNKNOWN }, -}; - -static enum retro_key find_rk_bind(const char *str) -{ - size_t i; - - for (i = 0; input_config_key_map[i].str; i++) - { - if (strcasecmp(input_config_key_map[i].str, str) == 0) - return input_config_key_map[i].key; - } - - RARCH_WARN("Key name %s not found.\n", str); - return RETROK_UNKNOWN; -} - -enum retro_key input_translate_str_to_rk(const char *str) -{ - if (strlen(str) == 1 && isalpha(*str)) - return (enum retro_key)(RETROK_a + (tolower(*str) - (int)'a')); - return find_rk_bind(str); -} - /** * input_joypad_init_driver: * @ident : identifier of driver to initialize. diff --git a/input/input_keymaps.c b/input/input_keymaps.c index 41797230b1..273e415bc2 100644 --- a/input/input_keymaps.c +++ b/input/input_keymaps.c @@ -47,6 +47,132 @@ #include #endif +const struct input_key_map input_config_key_map[] = { + { "left", RETROK_LEFT }, + { "right", RETROK_RIGHT }, + { "up", RETROK_UP }, + { "down", RETROK_DOWN }, + { "enter", RETROK_RETURN }, + { "kp_enter", RETROK_KP_ENTER }, + { "tab", RETROK_TAB }, + { "insert", RETROK_INSERT }, + { "del", RETROK_DELETE }, + { "end", RETROK_END }, + { "home", RETROK_HOME }, + { "rshift", RETROK_RSHIFT }, + { "shift", RETROK_LSHIFT }, + { "ctrl", RETROK_LCTRL }, + { "alt", RETROK_LALT }, + { "space", RETROK_SPACE }, + { "escape", RETROK_ESCAPE }, + { "add", RETROK_KP_PLUS }, + { "subtract", RETROK_KP_MINUS }, + { "kp_plus", RETROK_KP_PLUS }, + { "kp_minus", RETROK_KP_MINUS }, + { "f1", RETROK_F1 }, + { "f2", RETROK_F2 }, + { "f3", RETROK_F3 }, + { "f4", RETROK_F4 }, + { "f5", RETROK_F5 }, + { "f6", RETROK_F6 }, + { "f7", RETROK_F7 }, + { "f8", RETROK_F8 }, + { "f9", RETROK_F9 }, + { "f10", RETROK_F10 }, + { "f11", RETROK_F11 }, + { "f12", RETROK_F12 }, + { "num0", RETROK_0 }, + { "num1", RETROK_1 }, + { "num2", RETROK_2 }, + { "num3", RETROK_3 }, + { "num4", RETROK_4 }, + { "num5", RETROK_5 }, + { "num6", RETROK_6 }, + { "num7", RETROK_7 }, + { "num8", RETROK_8 }, + { "num9", RETROK_9 }, + { "pageup", RETROK_PAGEUP }, + { "pagedown", RETROK_PAGEDOWN }, + { "keypad0", RETROK_KP0 }, + { "keypad1", RETROK_KP1 }, + { "keypad2", RETROK_KP2 }, + { "keypad3", RETROK_KP3 }, + { "keypad4", RETROK_KP4 }, + { "keypad5", RETROK_KP5 }, + { "keypad6", RETROK_KP6 }, + { "keypad7", RETROK_KP7 }, + { "keypad8", RETROK_KP8 }, + { "keypad9", RETROK_KP9 }, + { "period", RETROK_PERIOD }, + { "capslock", RETROK_CAPSLOCK }, + { "numlock", RETROK_NUMLOCK }, + { "backspace", RETROK_BACKSPACE }, + { "multiply", RETROK_KP_MULTIPLY }, + { "divide", RETROK_KP_DIVIDE }, + { "print_screen", RETROK_PRINT }, + { "scroll_lock", RETROK_SCROLLOCK }, + { "tilde", RETROK_BACKQUOTE }, + { "backquote", RETROK_BACKQUOTE }, + { "pause", RETROK_PAUSE }, + + /* Keys that weren't mappable before */ + { "quote", RETROK_QUOTE }, + { "comma", RETROK_COMMA }, + { "minus", RETROK_MINUS }, + { "slash", RETROK_SLASH }, + { "semicolon", RETROK_SEMICOLON }, + { "equals", RETROK_EQUALS }, + { "leftbracket", RETROK_LEFTBRACKET }, + { "backslash", RETROK_BACKSLASH }, + { "rightbracket", RETROK_RIGHTBRACKET }, + { "kp_period", RETROK_KP_PERIOD }, + { "kp_equals", RETROK_KP_EQUALS }, + { "rctrl", RETROK_RCTRL }, + { "ralt", RETROK_RALT }, + + /* Keys not referenced in any keyboard mapping + * (except perhaps rarch_key_map_apple_hid) */ + { "caret", RETROK_CARET }, + { "underscore", RETROK_UNDERSCORE }, + { "exclaim", RETROK_EXCLAIM }, + { "quotedbl", RETROK_QUOTEDBL }, + { "hash", RETROK_HASH }, + { "dollar", RETROK_DOLLAR }, + { "ampersand", RETROK_AMPERSAND }, + { "leftparen", RETROK_LEFTPAREN }, + { "rightparen", RETROK_RIGHTPAREN }, + { "asterisk", RETROK_ASTERISK }, + { "plus", RETROK_PLUS }, + { "colon", RETROK_COLON }, + { "less", RETROK_LESS }, + { "greater", RETROK_GREATER }, + { "question", RETROK_QUESTION }, + { "at", RETROK_AT }, + + { "f13", RETROK_F13 }, + { "f14", RETROK_F14 }, + { "f15", RETROK_F15 }, + + { "rmeta", RETROK_RMETA }, + { "lmeta", RETROK_LMETA }, + { "lsuper", RETROK_LSUPER }, + { "rsuper", RETROK_RSUPER }, + { "mode", RETROK_MODE }, + { "compose", RETROK_COMPOSE }, + + { "help", RETROK_HELP }, + { "sysreq", RETROK_SYSREQ }, + { "break", RETROK_BREAK }, + { "menu", RETROK_MENU }, + { "power", RETROK_POWER }, + { "euro", RETROK_EURO }, + { "undo", RETROK_UNDO }, + { "clear", RETROK_CLEAR }, + + { "nul", RETROK_UNKNOWN }, + { NULL, RETROK_UNKNOWN }, +}; + #ifdef HAVE_X11 const struct rarch_key_map rarch_key_map_x11[] = { { XK_BackSpace, RETROK_BACKSPACE },