From f343bc45fb88d8f24aa6c01ac44d00f358c6007f Mon Sep 17 00:00:00 2001 From: radius Date: Sat, 19 Nov 2016 12:57:12 -0500 Subject: [PATCH 1/3] remove these settings that we never properly implemented --- configuration.c | 21 +-------------------- configuration.h | 8 -------- input/input_driver.c | 10 +++++----- menu/menu_event.c | 14 +++++++------- 4 files changed, 13 insertions(+), 40 deletions(-) diff --git a/configuration.c b/configuration.c index ec05a6d9ca..74cbc3f4df 100644 --- a/configuration.c +++ b/configuration.c @@ -520,19 +520,6 @@ const char *config_get_default_menu(void) return "null"; } -static unsigned config_menu_btn_ok_default(void) -{ - if (g_defaults.menu.controls.set) - return g_defaults.menu.controls.menu_btn_ok; - return default_menu_btn_ok; -} - -static unsigned config_menu_btn_cancel_default(void) -{ - if (g_defaults.menu.controls.set) - return g_defaults.menu.controls.menu_btn_cancel; - return default_menu_btn_cancel; -} #endif bool config_overlay_enable_default(void) @@ -895,12 +882,7 @@ static int populate_settings_int(settings_t *settings, struct config_int_setting SETTING_INT("keyboard_gamepad_mapping_type",&settings->input.keyboard_gamepad_mapping_type, true, 1, false); SETTING_INT("input_poll_type_behavior", &settings->input.poll_type_behavior, true, 2, false); #ifdef HAVE_MENU - SETTING_INT("menu_ok_btn", &settings->menu_ok_btn, true, config_menu_btn_ok_default(), false); - SETTING_INT("menu_cancel_btn", &settings->menu_cancel_btn, true, config_menu_btn_cancel_default(), false); - SETTING_INT("menu_search_btn", &settings->menu_search_btn, true, default_menu_btn_search, false); - SETTING_INT("menu_info_btn", &settings->menu_info_btn, true, default_menu_btn_info, false); - SETTING_INT("menu_default_btn", &settings->menu_default_btn, true, default_menu_btn_default, false); - SETTING_INT("menu_scroll_down_btn", &settings->menu_scroll_down_btn, true, default_menu_btn_scroll_down, false); + #endif SETTING_INT("video_monitor_index", &settings->video.monitor_index, true, monitor_index, false); SETTING_INT("video_fullscreen_x", &settings->video.fullscreen_x, true, fullscreen_x, false); @@ -911,7 +893,6 @@ static int populate_settings_int(settings_t *settings, struct config_int_setting #ifdef HAVE_NETWORKGAMEPAD SETTING_INT("network_remote_base_port", &settings->network_remote_base_port, true, network_remote_base_port, false); #endif - SETTING_INT("menu_scroll_up_btn", &settings->menu_scroll_up_btn, true, default_menu_btn_scroll_up, false); #ifdef HAVE_GEKKO SETTING_INT("video_viwidth", &settings->video.viwidth, true, video_viwidth, false); #endif diff --git a/configuration.h b/configuration.h index d58cb0547f..5eb700da4f 100644 --- a/configuration.h +++ b/configuration.h @@ -454,14 +454,6 @@ typedef struct settings bool sort_savefiles_enable; bool sort_savestates_enable; - unsigned menu_ok_btn; - unsigned menu_cancel_btn; - unsigned menu_search_btn; - unsigned menu_default_btn; - unsigned menu_info_btn; - unsigned menu_scroll_down_btn; - unsigned menu_scroll_up_btn; - char username[32]; #ifdef HAVE_LANGEXTRA unsigned int user_language; diff --git a/input/input_driver.c b/input/input_driver.c index d236bc33d6..f3a88cbbe0 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -820,23 +820,23 @@ uint64_t input_menu_keys_pressed(void) if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN)) - BIT64_SET(ret, settings->menu_ok_btn); + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_A); if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_BACKSPACE)) - BIT64_SET(ret, settings->menu_cancel_btn); + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_B); if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_SPACE)) - BIT64_SET(ret, settings->menu_default_btn); + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_START); if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_SLASH)) - BIT64_SET(ret, settings->menu_search_btn); + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_X); if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_RSHIFT)) - BIT64_SET(ret, settings->menu_info_btn); + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_SELECT); if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_RIGHT)) diff --git a/menu/menu_event.c b/menu/menu_event.c index 3150189b12..27574af55d 100644 --- a/menu/menu_event.c +++ b/menu/menu_event.c @@ -356,21 +356,21 @@ unsigned menu_event(uint64_t input, uint64_t trigger_input) ret = MENU_ACTION_LEFT; else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_RIGHT)) ret = MENU_ACTION_RIGHT; - else if (trigger_input & (UINT64_C(1) << settings->menu_scroll_up_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_L)) ret = MENU_ACTION_SCROLL_UP; - else if (trigger_input & (UINT64_C(1) << settings->menu_scroll_down_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_R)) ret = MENU_ACTION_SCROLL_DOWN; - else if (trigger_input & (UINT64_C(1) << settings->menu_cancel_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_B)) ret = MENU_ACTION_CANCEL; - else if (trigger_input & (UINT64_C(1) << settings->menu_ok_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_A)) ret = MENU_ACTION_OK; - else if (trigger_input & (UINT64_C(1) << settings->menu_search_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_X)) ret = MENU_ACTION_SEARCH; else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_Y)) ret = MENU_ACTION_SCAN; - else if (trigger_input & (UINT64_C(1) << settings->menu_default_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_START)) ret = MENU_ACTION_START; - else if (trigger_input & (UINT64_C(1) << settings->menu_info_btn)) + else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_SELECT)) ret = MENU_ACTION_INFO; else if (trigger_input & (UINT64_C(1) << RARCH_MENU_TOGGLE)) ret = MENU_ACTION_TOGGLE; From a99a9c081059b288fa4b2b1865c7f096179155aa Mon Sep 17 00:00:00 2001 From: radius Date: Sat, 19 Nov 2016 13:09:07 -0500 Subject: [PATCH 2/3] add setting to swap menu_ok and menu_cancel --- config.def.h | 1 + configuration.c | 1 + configuration.h | 2 ++ menu/menu_event.c | 8 ++++++-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 625ae215fa..abf79e73fd 100644 --- a/config.def.h +++ b/config.def.h @@ -625,6 +625,7 @@ static bool back_as_menu_toggle_enable = true; #endif static bool all_users_control_menu = false; +static bool menu_swap_ok_cancel_buttons = false; /* Crop overscanned frames. */ static const bool crop_overscan = true; diff --git a/configuration.c b/configuration.c index 74cbc3f4df..009d6e2cf1 100644 --- a/configuration.c +++ b/configuration.c @@ -699,6 +699,7 @@ static int populate_settings_bool(settings_t *settings, struct config_bool_setti SETTING_BOOL("input_remap_binds_enable", &settings->input.remap_binds_enable, true, true, false); SETTING_BOOL("back_as_menu_toggle_enable", &settings->input.back_as_menu_toggle_enable, true, true, false); SETTING_BOOL("all_users_control_menu", &settings->input.all_users_control_menu, true, all_users_control_menu, false); + SETTING_BOOL("menu_swap_ok_cancel_buttons", &settings->input.menu_swap_ok_cancel_buttons, true, menu_swap_ok_cancel_buttons, false); #ifdef HAVE_NETWORKING SETTING_BOOL("netplay_client_swap_input", &settings->netplay.swap_input, true, netplay_client_swap_input, false); #endif diff --git a/configuration.h b/configuration.h index 5eb700da4f..6d03dedc22 100644 --- a/configuration.h +++ b/configuration.h @@ -296,6 +296,8 @@ typedef struct settings unsigned menu_toggle_gamepad_combo; bool back_as_menu_toggle_enable; bool all_users_control_menu; + + bool menu_swap_ok_cancel_buttons; #if defined(VITA) bool backtouch_enable; bool backtouch_toggle; diff --git a/menu/menu_event.c b/menu/menu_event.c index 27574af55d..168cea11ba 100644 --- a/menu/menu_event.c +++ b/menu/menu_event.c @@ -347,6 +347,10 @@ unsigned menu_event(uint64_t input, uint64_t trigger_input) trigger_input = 0; } + unsigned menu_ok_btn = settings->input.menu_swap_ok_cancel_buttons ? + RETRO_DEVICE_ID_JOYPAD_A: RETRO_DEVICE_ID_JOYPAD_B; + unsigned menu_cancel_btn = settings->input.menu_swap_ok_cancel_buttons ? + RETRO_DEVICE_ID_JOYPAD_B: RETRO_DEVICE_ID_JOYPAD_A; if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_UP)) ret = MENU_ACTION_UP; @@ -360,9 +364,9 @@ unsigned menu_event(uint64_t input, uint64_t trigger_input) ret = MENU_ACTION_SCROLL_UP; else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_R)) ret = MENU_ACTION_SCROLL_DOWN; - else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_B)) + else if (trigger_input & (UINT64_C(1) << menu_ok_btn)) ret = MENU_ACTION_CANCEL; - else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_A)) + else if (trigger_input & (UINT64_C(1) << menu_cancel_btn)) ret = MENU_ACTION_OK; else if (trigger_input & (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_X)) ret = MENU_ACTION_SEARCH; From 53ab0cdb552a4d99e6baf55a9f73ca96d18032b5 Mon Sep 17 00:00:00 2001 From: radius Date: Sat, 19 Nov 2016 13:48:24 -0500 Subject: [PATCH 3/3] add menu setting and fix for keyboard --- input/input_driver.c | 15 ++++++++++++--- intl/msg_hash_lbl.h | 2 ++ intl/msg_hash_us.h | 2 ++ menu/menu_displaylist.c | 2 ++ menu/menu_setting.c | 16 ++++++++++++++++ msg_hash.h | 2 ++ 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/input/input_driver.c b/input/input_driver.c index f3a88cbbe0..6b0fdc7802 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -817,14 +817,23 @@ uint64_t input_menu_keys_pressed(void) if (menu_input_dialog_get_display_kb()) return ret; - if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_RETURN)) - BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_A); + { + if (!settings->input.menu_swap_ok_cancel_buttons) + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_A); + else + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_B); + } if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_BACKSPACE)) - BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_B); + { + if (!settings->input.menu_swap_ok_cancel_buttons) + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_B); + else + BIT64_SET(ret, RETRO_DEVICE_ID_JOYPAD_A); + } if (current_input->input_state(current_input_data, binds, 0, RETRO_DEVICE_KEYBOARD, 0, RETROK_SPACE)) diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 1ccf0ebbce..6012342fdc 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -408,6 +408,8 @@ MSG_HASH(MENU_ENUM_LABEL_INFO_SCREEN, "info_screen") MSG_HASH(MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU, "all_users_control_menu") +MSG_HASH(MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, + "menu_swap_ok_cancel") MSG_HASH(MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE, "input_autodetect_enable") MSG_HASH(MENU_ENUM_LABEL_INPUT_AXIS_THRESHOLD, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index e2331c03ef..367eee2caf 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -612,6 +612,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_AUTODETECT_ENABLE, "Autoconfig Enable") MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_AXIS_THRESHOLD, "Analog Stick Deadzone") +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL, + "Menu Swap Ok & Cancel Buttons") MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_BACK_AS_MENU_ENUM_TOGGLE_ENABLE, "Back As Menu Toggle Enable") MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_BIND_ALL, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index c4b0984e26..e6aec4b04a 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -5317,6 +5317,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) #endif ret = menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO, PARSE_ONLY_UINT, false); + ret = menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, PARSE_ONLY_BOOL, false); ret = menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU, PARSE_ONLY_BOOL, false); ret = menu_displaylist_parse_settings_enum(menu, info, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 06906c21cb..9b0e53ce38 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -3997,6 +3997,22 @@ static bool setting_append_list( general_read_handler); menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); + CONFIG_BOOL( + list, list_info, + &settings->input.menu_swap_ok_cancel_buttons, + MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, + MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL, + menu_swap_ok_cancel_buttons, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_NONE + ); + CONFIG_BOOL( list, list_info, &settings->input.all_users_control_menu, diff --git a/msg_hash.h b/msg_hash.h index d54dd29768..c594c1fb57 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -454,6 +454,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_INPUT_MAX_USERS, MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE, MENU_ENUM_LABEL_INPUT_AXIS_THRESHOLD, + MENU_ENUM_LABEL_MENU_INPUT_SWAP_OK_CANCEL, MENU_ENUM_LABEL_INPUT_SMALL_KEYBOARD_ENABLE, MENU_ENUM_LABEL_INPUT_TOUCH_ENABLE, MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH, @@ -563,6 +564,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_INPUT_MAX_USERS, MENU_ENUM_LABEL_VALUE_INPUT_REMAP_BINDS_ENABLE, MENU_ENUM_LABEL_VALUE_INPUT_AXIS_THRESHOLD, + MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL, MENU_ENUM_LABEL_VALUE_INPUT_BIND_TIMEOUT, MENU_ENUM_LABEL_VALUE_INPUT_TURBO_PERIOD, MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_ENABLE,