(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). // Log level for libretro cores (GET_LOG_INTERFACE).
static const unsigned libretro_log_level = 0; static const unsigned libretro_log_level = 0;
#ifndef RARCH_DEFAULT_PORT
#define RARCH_DEFAULT_PORT 55435
#endif
//////////////////// ////////////////////
// Keybinds, Joypad // 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); file_list_push(menu->selection_buf, "", "netplay_spectator_mode_enable", MENU_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE, 0);
#ifdef HAVE_NETPLAY #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, "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 #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"))) 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); file_list_push(menu->selection_buf, "", "netplay_delay_frames", MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0);
break; break;
@ -1972,35 +1973,44 @@ 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) static void menu_common_setting_set_current_unsigned_integer(rarch_setting_t *setting, unsigned action)
{ {
switch (action) if (!strcmp(setting->name, "netplay_tcp_udp_port"))
{ {
case MENU_ACTION_LEFT: if (action == MENU_ACTION_OK)
if (*setting->value.unsigned_integer != setting->min) menu_key_start_line(driver.menu, "TCP/UDP Port: ", netplay_port_callback);
*setting->value.unsigned_integer = *setting->value.unsigned_integer - setting->step; else if (action == MENU_ACTION_START)
if (setting->enforce_minrange)
{
if (*setting->value.unsigned_integer < setting->min)
*setting->value.unsigned_integer = setting->min;
}
break;
case MENU_ACTION_RIGHT:
case MENU_ACTION_OK:
*setting->value.unsigned_integer = *setting->value.unsigned_integer + setting->step;
if (setting->enforce_maxrange)
{
if (*setting->value.unsigned_integer > setting->max)
*setting->value.unsigned_integer = setting->max;
}
break;
case MENU_ACTION_START:
*setting->value.unsigned_integer = setting->default_value.unsigned_integer; *setting->value.unsigned_integer = setting->default_value.unsigned_integer;
break;
} }
else
{
switch (action)
{
case MENU_ACTION_LEFT:
if (*setting->value.unsigned_integer != setting->min)
*setting->value.unsigned_integer = *setting->value.unsigned_integer - setting->step;
if (setting->enforce_minrange)
{
if (*setting->value.unsigned_integer < setting->min)
*setting->value.unsigned_integer = setting->min;
}
break;
case MENU_ACTION_RIGHT:
case MENU_ACTION_OK:
*setting->value.unsigned_integer = *setting->value.unsigned_integer + setting->step;
if (setting->enforce_maxrange)
{
if (*setting->value.unsigned_integer > setting->max)
*setting->value.unsigned_integer = setting->max;
}
break;
case MENU_ACTION_START:
*setting->value.unsigned_integer = setting->default_value.unsigned_integer;
break;
}
}
if (setting->change_handler) if (setting->change_handler)
setting->change_handler(setting); 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; static unsigned menu_current_gx_resolution = GX_RESOLUTIONS_640_480;
#endif #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) static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t *setting)
{ {
struct retro_perf_counter **counters; 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) else if (action == MENU_ACTION_START)
*g_extern.netplay_server = '\0'; *g_extern.netplay_server = '\0';
break; 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 #endif
case MENU_SETTINGS_NETPLAY_NICKNAME: case MENU_SETTINGS_NETPLAY_NICKNAME:
if (action == MENU_ACTION_OK) 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: case MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS:
strlcpy(type_str, g_extern.netplay_server, type_str_size); strlcpy(type_str, g_extern.netplay_server, type_str_size);
break; 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 #endif
default: default:
*type_str = '\0'; *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) void netplay_port_callback(void *userdata, const char *str)
{ {
menu_handle_t *menu = (menu_handle_t*)userdata; 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) if (str && *str && setting_data)
g_extern.netplay_port = strtoul(str, NULL, 0); {
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); 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) void netplay_nickname_callback(void *userdata, const char *str)
{ {
menu_handle_t *menu = (menu_handle_t*)userdata; 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(); rarch_setting_t *setting_data = (rarch_setting_t *)setting_data_get_list();
if (str && *str && setting_data) if (str && *str && setting_data)

View File

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

View File

@ -1075,6 +1075,8 @@ static void general_read_handler(const void *data)
#ifdef HAVE_NETPLAY #ifdef HAVE_NETPLAY
else if (!strcmp(setting->name, "netplay_client_swap_input")) else if (!strcmp(setting->name, "netplay_client_swap_input"))
*setting->value.boolean = g_settings.input.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 #endif
#ifdef HAVE_OVERLAY #ifdef HAVE_OVERLAY
else if (!strcmp(setting->name, "input_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; *setting->value.boolean = g_extern.netplay_is_spectate;
else if (!strcmp(setting->name, "netplay_delay_frames")) else if (!strcmp(setting->name, "netplay_delay_frames"))
*setting->value.unsigned_integer = g_extern.netplay_sync_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 #endif
else if (!strcmp(setting->name, "log_verbosity")) else if (!strcmp(setting->name, "log_verbosity"))
*setting->value.boolean = g_extern.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_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_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_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_SUB_GROUP()
END_GROUP() END_GROUP()
#endif #endif