mirror of
https://github.com/libretro/RetroArch
synced 2025-03-31 10:20:41 +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;
|
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,
|
static int action_left_shader_watch_for_changes(unsigned type, const char *label,
|
||||||
bool wraparound)
|
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:
|
case MENU_ENUM_LABEL_VIDEO_SHADER_DEFAULT_FILTER:
|
||||||
BIND_ACTION_LEFT(cbs, action_left_shader_filter_default);
|
BIND_ACTION_LEFT(cbs, action_left_shader_filter_default);
|
||||||
break;
|
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:
|
case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES:
|
||||||
BIND_ACTION_LEFT(cbs, action_left_shader_watch_for_changes);
|
BIND_ACTION_LEFT(cbs, action_left_shader_watch_for_changes);
|
||||||
break;
|
break;
|
||||||
|
@ -380,44 +380,6 @@ static int action_right_shader_num_passes(unsigned type, const char *label,
|
|||||||
return 0;
|
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,
|
static int action_right_shader_watch_for_changes(unsigned type, const char *label,
|
||||||
bool wraparound)
|
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:
|
case MENU_ENUM_LABEL_VIDEO_SHADER_DEFAULT_FILTER:
|
||||||
BIND_ACTION_RIGHT(cbs, action_right_shader_filter_default);
|
BIND_ACTION_RIGHT(cbs, action_right_shader_filter_default);
|
||||||
break;
|
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:
|
case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES:
|
||||||
BIND_ACTION_RIGHT(cbs, action_right_shader_watch_for_changes);
|
BIND_ACTION_RIGHT(cbs, action_right_shader_watch_for_changes);
|
||||||
break;
|
break;
|
||||||
|
@ -653,6 +653,82 @@ static int setting_uint_action_left_crt_switch_resolution_super(
|
|||||||
return 0;
|
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(
|
static int setting_uint_action_right_crt_switch_resolution_super(
|
||||||
void *data, bool wraparound)
|
void *data, bool wraparound)
|
||||||
{
|
{
|
||||||
@ -8482,6 +8558,8 @@ static bool setting_append_list(
|
|||||||
parent_group,
|
parent_group,
|
||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_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 =
|
(*list)[list_info->index - 1].get_string_representation =
|
||||||
&setting_get_string_representation_netplay_mitm_server;
|
&setting_get_string_representation_netplay_mitm_server;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user