mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
Reimplement left/right callbacks for netplay MITM server setting
This commit is contained in:
parent
a0efad3cc8
commit
390cb578a9
@ -599,44 +599,6 @@ static int action_left_shader_num_passes(unsigned type, const char *label,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_left_netplay_mitm_server(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
int i;
|
||||
bool found = false;
|
||||
int list_len = ARRAY_SIZE(netplay_mitm_server_list);
|
||||
|
||||
for (i = 0; i < list_len; i++)
|
||||
{
|
||||
/* find the currently selected server in the list */
|
||||
if (string_is_equal(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[i].name))
|
||||
{
|
||||
/* move to the previous one in the list, wrap around if necessary */
|
||||
if (i - 1 >= 0)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[i - 1].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
break;
|
||||
}
|
||||
else if (wraparound)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[list_len - 1].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
/* current entry was invalid, go back to the end */
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[list_len - 1].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_left_shader_watch_for_changes(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
@ -803,9 +765,6 @@ static int menu_cbs_init_bind_left_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_DEFAULT_FILTER:
|
||||
BIND_ACTION_LEFT(cbs, action_left_shader_filter_default);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER:
|
||||
BIND_ACTION_LEFT(cbs, action_left_netplay_mitm_server);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES:
|
||||
BIND_ACTION_LEFT(cbs, action_left_shader_watch_for_changes);
|
||||
break;
|
||||
|
@ -380,44 +380,6 @@ static int action_right_shader_num_passes(unsigned type, const char *label,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_right_netplay_mitm_server(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
unsigned i;
|
||||
bool found = false;
|
||||
unsigned list_len = ARRAY_SIZE(netplay_mitm_server_list);
|
||||
|
||||
for (i = 0; i < list_len; i++)
|
||||
{
|
||||
/* find the currently selected server in the list */
|
||||
if (string_is_equal(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[i].name))
|
||||
{
|
||||
/* move to the next one in the list, wrap around if necessary */
|
||||
if (i + 1 < list_len)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[i + 1].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
break;
|
||||
}
|
||||
else if (wraparound)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[0].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
/* current entry was invalid, go back to the start */
|
||||
strlcpy(settings->arrays.netplay_mitm_server, netplay_mitm_server_list[0].name, sizeof(settings->arrays.netplay_mitm_server));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_right_shader_watch_for_changes(unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
@ -695,9 +657,6 @@ static int menu_cbs_init_bind_right_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_DEFAULT_FILTER:
|
||||
BIND_ACTION_RIGHT(cbs, action_right_shader_filter_default);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER:
|
||||
BIND_ACTION_RIGHT(cbs, action_right_netplay_mitm_server);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES:
|
||||
BIND_ACTION_RIGHT(cbs, action_right_shader_watch_for_changes);
|
||||
break;
|
||||
|
@ -653,6 +653,82 @@ static int setting_uint_action_left_crt_switch_resolution_super(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_string_action_left_netplay_mitm_server(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
int i;
|
||||
bool found = false;
|
||||
unsigned list_len = ARRAY_SIZE(netplay_mitm_server_list);
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < list_len; i++)
|
||||
{
|
||||
/* find the currently selected server in the list */
|
||||
if (string_is_equal(setting->value.target.string, netplay_mitm_server_list[i].name))
|
||||
{
|
||||
/* move to the previous one in the list, wrap around if necessary */
|
||||
if (i - 1 >= 0)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[i - 1].name, sizeof(setting->value.target.string));
|
||||
break;
|
||||
}
|
||||
else if (wraparound)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[list_len - 1].name, sizeof(setting->value.target.string));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* current entry was invalid, go back to the end */
|
||||
if (!found)
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[list_len - 1].name, sizeof(setting->value.target.string));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_string_action_right_netplay_mitm_server(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
unsigned i;
|
||||
bool found = false;
|
||||
unsigned list_len = ARRAY_SIZE(netplay_mitm_server_list);
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < list_len; i++)
|
||||
{
|
||||
/* find the currently selected server in the list */
|
||||
if (string_is_equal(setting->value.target.string, netplay_mitm_server_list[i].name))
|
||||
{
|
||||
/* move to the next one in the list, wrap around if necessary */
|
||||
if (i + 1 < list_len)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[i + 1].name, sizeof(setting->value.target.string));
|
||||
break;
|
||||
}
|
||||
else if (wraparound)
|
||||
{
|
||||
found = true;
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[0].name, sizeof(setting->value.target.string));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* current entry was invalid, go back to the start */
|
||||
if (!found)
|
||||
strlcpy(setting->value.target.string, netplay_mitm_server_list[0].name, sizeof(setting->value.target.string));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_uint_action_right_crt_switch_resolution_super(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
@ -8482,6 +8558,8 @@ static bool setting_append_list(
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].action_left = setting_string_action_left_netplay_mitm_server;
|
||||
(*list)[list_info->index - 1].action_right = setting_string_action_right_netplay_mitm_server;
|
||||
(*list)[list_info->index - 1].get_string_representation =
|
||||
&setting_get_string_representation_netplay_mitm_server;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user