From cadb9539b603c536ff9dcd1999293f3c811ddcf6 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 23 Sep 2018 11:46:03 +0200 Subject: [PATCH] Add dropdown lists for Netplay share Digital/Analog --- menu/cbs/menu_cbs_get_value.c | 90 ----------------------------------- menu/menu_setting.c | 64 +++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 90 deletions(-) diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index b569b222df..d40216c200 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -1847,86 +1847,6 @@ static void menu_action_setting_disp_set_label_setting_path(file_list_t* list, strlcpy(s2, path, len2); } -#ifdef HAVE_NETWORKING -static void menu_action_setting_disp_set_label_netplay_share_digital(file_list_t* list, - unsigned *w, unsigned type, unsigned i, - const char *label, - char *s, size_t len, - const char *entry_label, - const char *path, - char *s2, size_t len2) -{ - settings_t *settings = config_get_ptr(); - const char *src; - - if (!settings) - return; - - strlcpy(s2, path, len2); - *w = 19; - switch (settings->uints.netplay_share_digital) - { - case RARCH_NETPLAY_SHARE_DIGITAL_NO_PREFERENCE: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE); - break; - - case RARCH_NETPLAY_SHARE_DIGITAL_OR: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_OR); - break; - - case RARCH_NETPLAY_SHARE_DIGITAL_XOR: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_XOR); - break; - - case RARCH_NETPLAY_SHARE_DIGITAL_VOTE: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_VOTE); - break; - - default: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE); - break; - } - strlcpy(s, src, len); -} - -static void menu_action_setting_disp_set_label_netplay_share_analog(file_list_t* list, - unsigned *w, unsigned type, unsigned i, - const char *label, - char *s, size_t len, - const char *entry_label, - const char *path, - char *s2, size_t len2) -{ - settings_t *settings = config_get_ptr(); - const char *src; - - if (!settings) - return; - - strlcpy(s2, path, len2); - *w = 19; - switch (settings->uints.netplay_share_analog) - { - case RARCH_NETPLAY_SHARE_ANALOG_NO_PREFERENCE: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE); - break; - - case RARCH_NETPLAY_SHARE_ANALOG_MAX: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_MAX); - break; - - case RARCH_NETPLAY_SHARE_ANALOG_AVERAGE: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_AVERAGE); - break; - - default: - src = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE); - break; - } - strlcpy(s, src, len); -} -#endif - static int menu_cbs_init_bind_get_string_representation_compare_label( menu_file_list_cbs_t *cbs) { @@ -2031,16 +1951,6 @@ static int menu_cbs_init_bind_get_string_representation_compare_label( BIND_ACTION_GET_VALUE(cbs, menu_action_setting_disp_set_label_menu_input_keyboard_gamepad_mapping_type); break; -#ifdef HAVE_NETWORKING - case MENU_ENUM_LABEL_NETPLAY_SHARE_DIGITAL: - BIND_ACTION_GET_VALUE(cbs, - menu_action_setting_disp_set_label_netplay_share_digital); - break; - case MENU_ENUM_LABEL_NETPLAY_SHARE_ANALOG: - BIND_ACTION_GET_VALUE(cbs, - menu_action_setting_disp_set_label_netplay_share_analog); - break; -#endif case MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST: case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST: diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 860e1c6257..c08bad9f25 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -793,6 +793,64 @@ static void setting_get_string_representation_toggle_gamepad_combo(void *data, } } +static void setting_get_string_representation_netplay_share_digital(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case RARCH_NETPLAY_SHARE_DIGITAL_NO_PREFERENCE: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE), len); + break; + + case RARCH_NETPLAY_SHARE_DIGITAL_OR: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_OR), len); + break; + + case RARCH_NETPLAY_SHARE_DIGITAL_XOR: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_XOR), len); + break; + + case RARCH_NETPLAY_SHARE_DIGITAL_VOTE: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_VOTE), len); + break; + + default: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE), len); + break; + } +} + +static void setting_get_string_representation_netplay_share_analog(void *data, + char *s, size_t len) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + if (!setting) + return; + + switch (*setting->value.target.unsigned_integer) + { + case RARCH_NETPLAY_SHARE_ANALOG_NO_PREFERENCE: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE), len); + break; + + case RARCH_NETPLAY_SHARE_ANALOG_MAX: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_MAX), len); + break; + + case RARCH_NETPLAY_SHARE_ANALOG_AVERAGE: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_AVERAGE), len); + break; + + default: + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE), len); + break; + } +} + static void setting_get_string_representation_poll_type_behavior(void *data, char *s, size_t len) { @@ -8123,6 +8181,9 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_netplay_share_digital; menu_settings_list_current_add_range(list, list_info, 0, RARCH_NETPLAY_SHARE_DIGITAL_LAST-1, 1, true, true); CONFIG_UINT( @@ -8136,6 +8197,9 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); + (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint; + (*list)[list_info->index - 1].get_string_representation = + &setting_get_string_representation_netplay_share_analog; menu_settings_list_current_add_range(list, list_info, 0, RARCH_NETPLAY_SHARE_ANALOG_LAST-1, 1, true, true); for (user = 0; user < MAX_USERS; user++)