(Menu) Refactor Netplay TCP/UDP Port setting

This commit is contained in:
twinaphex 2014-08-24 19:00:36 +02:00
parent c07dcb2dc2
commit c45a063b99
5 changed files with 53 additions and 44 deletions

View File

@ -519,6 +519,9 @@ static const bool menu_show_start_screen = true;
// Log level for libretro cores (GET_LOG_INTERFACE).
static const unsigned libretro_log_level = 0;
#ifndef RARCH_DEFAULT_PORT
#define RARCH_DEFAULT_PORT 55435
#endif
////////////////////
// Keybinds, Joypad

View File

@ -336,8 +336,9 @@ static void menu_common_entries_init(menu_handle_t *menu, unsigned menu_type)
file_list_push(menu->selection_buf, "", "netplay_spectator_mode_enable", MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0);
#ifdef HAVE_NETPLAY
file_list_push(menu->selection_buf, "Host IP Address", "", MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0);
file_list_push(menu->selection_buf, "TCP/UDP Port", "", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0);
#endif
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_tcp_udp_port")))
file_list_push(menu->selection_buf, "", "netplay_tcp_udp_port", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0);
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_delay_frames")))
file_list_push(menu->selection_buf, "", "netplay_delay_frames", MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0);
break;
@ -1971,6 +1972,15 @@ static void menu_common_setting_set_current_fraction(rarch_setting_t *setting, u
}
static void menu_common_setting_set_current_unsigned_integer(rarch_setting_t *setting, unsigned action)
{
if (!strcmp(setting->name, "netplay_tcp_udp_port"))
{
if (action == MENU_ACTION_OK)
menu_key_start_line(driver.menu, "TCP/UDP Port: ", netplay_port_callback);
else if (action == MENU_ACTION_START)
*setting->value.unsigned_integer = setting->default_value.unsigned_integer;
}
else
{
switch (action)
{
@ -2000,7 +2010,7 @@ static void menu_common_setting_set_current_unsigned_integer(rarch_setting_t *se
*setting->value.unsigned_integer = setting->default_value.unsigned_integer;
break;
}
}
if (setting->change_handler)
setting->change_handler(setting);
}
@ -3000,11 +3010,6 @@ static unsigned menu_gx_resolutions[GX_RESOLUTIONS_LAST][2] = {
static unsigned menu_current_gx_resolution = GX_RESOLUTIONS_640_480;
#endif
#ifndef RARCH_DEFAULT_PORT
#define RARCH_DEFAULT_PORT 55435
#endif
static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t *setting)
{
struct retro_perf_counter **counters;
@ -3672,12 +3677,6 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
else if (action == MENU_ACTION_START)
*g_extern.netplay_server = '\0';
break;
case MENU_SETTINGS_NETPLAY_TCP_UDP_PORT:
if (action == MENU_ACTION_OK)
menu_key_start_line(driver.menu, "TCP/UDP Port: ", netplay_port_callback);
else if (action == MENU_ACTION_START)
g_extern.netplay_port = RARCH_DEFAULT_PORT;
break;
#endif
case MENU_SETTINGS_NETPLAY_NICKNAME:
if (action == MENU_ACTION_OK)
@ -4098,9 +4097,6 @@ static void menu_common_setting_set_label(char *type_str,
case MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS:
strlcpy(type_str, g_extern.netplay_server, type_str_size);
break;
case MENU_SETTINGS_NETPLAY_TCP_UDP_PORT:
snprintf(type_str, type_str_size, "%d", g_extern.netplay_port ? g_extern.netplay_port : RARCH_DEFAULT_PORT);
break;
#endif
default:
*type_str = '\0';

View File

@ -73,9 +73,14 @@ static void menu_search_callback(void *userdata, const char *str)
void netplay_port_callback(void *userdata, const char *str)
{
menu_handle_t *menu = (menu_handle_t*)userdata;
rarch_setting_t *current_setting = NULL;
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
if (str && *str)
g_extern.netplay_port = strtoul(str, NULL, 0);
if (str && *str && setting_data)
{
if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_tcp_udp_port")))
*current_setting->value.unsigned_integer = strtoul(str, NULL, 0);
}
menu_key_end_line(menu);
}
@ -93,7 +98,7 @@ void netplay_ipaddress_callback(void *userdata, const char *str)
void netplay_nickname_callback(void *userdata, const char *str)
{
menu_handle_t *menu = (menu_handle_t*)userdata;
rarch_setting_t *current_setting;
rarch_setting_t *current_setting = NULL;
rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
if (str && *str && setting_data)

View File

@ -626,7 +626,7 @@ struct global
bool netplay_is_client;
bool netplay_is_spectate;
unsigned netplay_sync_frames;
uint16_t netplay_port;
unsigned netplay_port;
#endif
// Recording.

View File

@ -1075,6 +1075,8 @@ static void general_read_handler(const void *data)
#ifdef HAVE_NETPLAY
else if (!strcmp(setting->name, "netplay_client_swap_input"))
*setting->value.boolean = g_settings.input.netplay_client_swap_input;
else if (!strcmp(setting->name, "netplay_tcp_udp_port"))
*setting->value.unsigned_integer = g_extern.netplay_port;
#endif
#ifdef HAVE_OVERLAY
else if (!strcmp(setting->name, "input_overlay"))
@ -1195,6 +1197,8 @@ static void general_read_handler(const void *data)
*setting->value.boolean = g_extern.netplay_is_spectate;
else if (!strcmp(setting->name, "netplay_delay_frames"))
*setting->value.unsigned_integer = g_extern.netplay_sync_frames;
else if (!strcmp(setting->name, "netplay_tcp_udp_port"))
*setting->value.unsigned_integer = g_extern.netplay_port;
#endif
else if (!strcmp(setting->name, "log_verbosity"))
*setting->value.boolean = g_extern.verbosity;
@ -1858,6 +1862,7 @@ rarch_setting_t* setting_data_get_list(void)
CONFIG_BOOL(g_extern.netplay_is_client, "netplay_mode", "Netplay Client Enable", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_BOOL(g_extern.netplay_is_spectate, "netplay_spectator_mode_enable", "Netplay Spectator Enable", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler)
CONFIG_UINT(g_extern.netplay_sync_frames, "netplay_delay_frames", "Netplay Delay Frames", 0, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(0, 10, 1, true, false)
CONFIG_UINT(g_extern.netplay_port, "netplay_tcp_udp_port", "Netplay TCP/UDP Port", RARCH_DEFAULT_PORT, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_RANGE(1, 99999, 1, true, true)
END_SUB_GROUP()
END_GROUP()
#endif