mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-20 19:40:39 +00:00
Create 'Content Settings'
This commit is contained in:
parent
d9504d73bd
commit
f71c27af65
@ -191,6 +191,11 @@ static int deferred_push_options(menu_displaylist_info_t *info)
|
||||
return menu_displaylist_push_list(info, DISPLAYLIST_OPTIONS);
|
||||
}
|
||||
|
||||
static int deferred_push_content_settings(menu_displaylist_info_t *info)
|
||||
{
|
||||
return menu_displaylist_push_list(info, DISPLAYLIST_CONTENT_SETTINGS);
|
||||
}
|
||||
|
||||
static int deferred_push_load_content_list(menu_displaylist_info_t *info)
|
||||
{
|
||||
return menu_displaylist_push_list(info, DISPLAYLIST_LOAD_CONTENT_LIST);
|
||||
@ -500,6 +505,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(menu_file_list_cbs_t *
|
||||
case MENU_LABEL_OPTIONS:
|
||||
cbs->action_deferred_push = deferred_push_options;
|
||||
break;
|
||||
case MENU_LABEL_CONTENT_SETTINGS:
|
||||
cbs->action_deferred_push = deferred_push_content_settings;
|
||||
break;
|
||||
case MENU_LABEL_LOAD_CONTENT_LIST:
|
||||
cbs->action_deferred_push = deferred_push_load_content_list;
|
||||
break;
|
||||
|
@ -490,6 +490,24 @@ static void menu_action_setting_disp_set_label_menu_more(
|
||||
strlcpy(s2, path, len2);
|
||||
}
|
||||
|
||||
static void menu_action_setting_disp_set_label_state(
|
||||
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();
|
||||
|
||||
strlcpy(s2, path, len2);
|
||||
*w = 16;
|
||||
snprintf(s, len, "%d", settings->state_slot);
|
||||
if (settings->state_slot == -1)
|
||||
strlcat(s, " (Auto)", len);
|
||||
}
|
||||
|
||||
|
||||
static void menu_action_setting_disp_set_label_menu_disk_index(
|
||||
file_list_t* list,
|
||||
@ -808,6 +826,11 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
|
||||
{
|
||||
switch (label_hash)
|
||||
{
|
||||
case MENU_LABEL_SAVE_STATE:
|
||||
case MENU_LABEL_LOAD_STATE:
|
||||
cbs->action_get_value =
|
||||
menu_action_setting_disp_set_label_state;
|
||||
break;
|
||||
case MENU_LABEL_CHEAT_NUM_PASSES:
|
||||
cbs->action_get_value =
|
||||
menu_action_setting_disp_set_label_cheat_num_passes;
|
||||
@ -860,6 +883,9 @@ static int menu_cbs_init_bind_get_string_representation_compare_label(
|
||||
case MENU_LABEL_CORE_COUNTERS:
|
||||
case MENU_LABEL_DATABASE_MANAGER_LIST:
|
||||
case MENU_LABEL_CURSOR_MANAGER_LIST:
|
||||
case MENU_LABEL_RESTART_CONTENT:
|
||||
case MENU_LABEL_RESUME_CONTENT:
|
||||
case MENU_LABEL_TAKE_SCREENSHOT:
|
||||
cbs->action_get_value =
|
||||
menu_action_setting_disp_set_label_menu_more;
|
||||
break;
|
||||
|
@ -1553,6 +1553,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_LABEL_MANAGEMENT:
|
||||
case MENU_LABEL_OPTIONS:
|
||||
case MENU_LABEL_LOAD_CONTENT_LIST:
|
||||
case MENU_LABEL_CONTENT_SETTINGS:
|
||||
cbs->action_ok = action_ok_push_default;
|
||||
break;
|
||||
case MENU_LABEL_LOAD_CONTENT:
|
||||
|
@ -681,6 +681,7 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
|
||||
case MENU_LABEL_CURSOR_MANAGER_LIST:
|
||||
case MENU_LABEL_DEFERRED_CORE_UPDATER_LIST:
|
||||
case MENU_LABEL_LOAD_CONTENT_LIST:
|
||||
case MENU_LABEL_CONTENT_SETTINGS:
|
||||
cbs->action_get_title = action_get_title_action_generic;
|
||||
break;
|
||||
case MENU_LABEL_DISK_IMAGE_APPEND:
|
||||
|
@ -1430,10 +1430,52 @@ static int menu_displaylist_parse_horizontal_list(menu_displaylist_info_t *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_displaylist_parse_load_content_settings(menu_displaylist_info_t *info)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
if (global->main_is_init && (global->core_type != CORE_TYPE_DUMMY))
|
||||
{
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RESUME_CONTENT),
|
||||
menu_hash_to_str(MENU_LABEL_RESUME_CONTENT),
|
||||
MENU_SETTING_ACTION_RUN, 0, 0);
|
||||
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RESTART_CONTENT),
|
||||
menu_hash_to_str(MENU_LABEL_RESTART_CONTENT),
|
||||
MENU_SETTING_ACTION_RUN, 0, 0);
|
||||
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_TAKE_SCREENSHOT),
|
||||
menu_hash_to_str(MENU_LABEL_TAKE_SCREENSHOT),
|
||||
MENU_SETTING_ACTION_SCREENSHOT, 0, 0);
|
||||
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SAVE_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_SAVE_STATE),
|
||||
MENU_SETTING_ACTION_SAVESTATE, 0, 0);
|
||||
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_LOAD_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_LOAD_STATE),
|
||||
MENU_SETTING_ACTION_LOADSTATE, 0, 0);
|
||||
}
|
||||
else
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS),
|
||||
"", 0, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_displaylist_parse_load_core_list(menu_displaylist_info_t *info)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_LOAD_CONTENT),
|
||||
@ -1505,55 +1547,6 @@ static int menu_displaylist_parse_options(menu_displaylist_info_t *info)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_displaylist_parse_horizontal_content_actions(menu_displaylist_info_t *info)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
if (global->main_is_init && (global->core_type != CORE_TYPE_DUMMY) &&
|
||||
!strcmp(menu->deferred_path, global->fullpath))
|
||||
{
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_RESUME_CONTENT),
|
||||
"file_load_or_resume",
|
||||
MENU_SETTING_ACTION_RUN, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SAVE_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_SAVE_STATE),
|
||||
MENU_SETTING_ACTION_SAVESTATE, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_LOAD_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_LOAD_STATE),
|
||||
MENU_SETTING_ACTION_LOADSTATE, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_CORE_INFORMATION),
|
||||
menu_hash_to_str(MENU_LABEL_CORE_INFORMATION),
|
||||
MENU_SETTING_ACTION_CORE_INFORMATION, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_OPTIONS),
|
||||
menu_hash_to_str(MENU_LABEL_OPTIONS),
|
||||
MENU_SETTING_ACTION_CORE_OPTIONS, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_TAKE_SCREENSHOT),
|
||||
menu_hash_to_str(MENU_LABEL_TAKE_SCREENSHOT),
|
||||
MENU_SETTING_ACTION_SCREENSHOT, 0, 0);
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RESTART_CONTENT),
|
||||
menu_hash_to_str(MENU_LABEL_RESTART_CONTENT),
|
||||
MENU_SETTING_ACTION_RESET, 0, 0);
|
||||
}
|
||||
else
|
||||
menu_list_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RUN),
|
||||
"file_load_or_resume",
|
||||
MENU_SETTING_ACTION_RUN,
|
||||
0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int menu_displaylist_parse_options_cheats(menu_displaylist_info_t *info)
|
||||
{
|
||||
unsigned i;
|
||||
@ -1902,6 +1895,14 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
||||
ret = menu_displaylist_parse_horizontal_list(info);
|
||||
|
||||
need_sort = true;
|
||||
need_refresh = true;
|
||||
need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS:
|
||||
case DISPLAYLIST_CONTENT_SETTINGS:
|
||||
menu_list_clear(info->list);
|
||||
ret = menu_displaylist_parse_load_content_settings(info);
|
||||
|
||||
need_refresh = true;
|
||||
need_push = true;
|
||||
break;
|
||||
@ -1915,12 +1916,6 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
||||
menu_list_clear(info->list);
|
||||
ret = menu_displaylist_parse_options(info);
|
||||
|
||||
need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS:
|
||||
menu_list_clear(info->list);
|
||||
ret = menu_displaylist_parse_horizontal_content_actions(info);
|
||||
need_refresh = true;
|
||||
need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_OPTIONS_CHEATS:
|
||||
|
@ -73,6 +73,7 @@ enum
|
||||
DISPLAYLIST_SHADER_PARAMETERS_PRESET,
|
||||
DISPLAYLIST_SYSTEM_INFO,
|
||||
DISPLAYLIST_LOAD_CONTENT_LIST,
|
||||
DISPLAYLIST_CONTENT_SETTINGS,
|
||||
DISPLAYLIST_OPTIONS,
|
||||
DISPLAYLIST_OPTIONS_CHEATS,
|
||||
DISPLAYLIST_OPTIONS_REMAPPINGS,
|
||||
|
@ -1572,6 +1572,10 @@ static const char *menu_hash_to_str_english(uint32_t hash)
|
||||
{
|
||||
switch (hash)
|
||||
{
|
||||
case MENU_LABEL_CONTENT_SETTINGS:
|
||||
return "content_settings";
|
||||
case MENU_LABEL_VALUE_CONTENT_SETTINGS:
|
||||
return "Content Settings";
|
||||
case MENU_LABEL_VALUE_RDB_ENTRY_CRC32:
|
||||
return "CRC32";
|
||||
case MENU_LABEL_VALUE_RDB_ENTRY_MD5:
|
||||
|
@ -35,6 +35,9 @@ extern "C" {
|
||||
#define MENU_VALUE_OPEN_ARCHIVE 0x96da22b9U
|
||||
#define MENU_VALUE_ASK_ARCHIVE 0x0b87d6a4U
|
||||
|
||||
#define MENU_LABEL_CONTENT_SETTINGS 0xf31dcaf0U
|
||||
#define MENU_LABEL_VALUE_CONTENT_SETTINGS 0x399ea371U
|
||||
|
||||
#define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU
|
||||
#define MENU_LABEL_VALUE_LOAD_CONTENT_LIST 0x55ff08eaU
|
||||
|
||||
@ -102,10 +105,10 @@ extern "C" {
|
||||
#define MENU_LABEL_VALUE_NO_CORE_INFORMATION_AVAILABLE 0x2a11fe80U
|
||||
#define MENU_LABEL_VALUE_NO_CORES_AVAILABLE 0xe16bfd0dU
|
||||
#define MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE 0xea82695dU
|
||||
#define MENU_LABEL_SAVE_STATE 0x54a257f4U
|
||||
#define MENU_LABEL_SAVE_STATE 0x3a4849b5U
|
||||
#define MENU_LABEL_VALUE_LOAD_STATE 0xd23ba706U
|
||||
#define MENU_LABEL_VALUE_SAVE_STATE 0x3e182415U
|
||||
#define MENU_LABEL_LOAD_STATE 0xe8c5dae5U
|
||||
#define MENU_LABEL_LOAD_STATE 0xa39eb286U
|
||||
#define MENU_LABEL_REWIND 0x1931d5aeU
|
||||
#define MENU_LABEL_NETPLAY_FLIP_PLAYERS 0x801425abU
|
||||
#define MENU_LABEL_CHEAT_INDEX_MINUS 0x57f58b6cU
|
||||
|
@ -605,19 +605,6 @@ void setting_get_string_representation(void *data, char *s, size_t len)
|
||||
*
|
||||
* Returns: 0 on success, -1 on error.
|
||||
**/
|
||||
static int setting_action_start_savestates(void *data)
|
||||
{
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
settings->state_slot = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_action_start_bind_device(void *data)
|
||||
{
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
@ -907,36 +894,6 @@ static int setting_action_right_libretro_device_type(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_action_left_savestates(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
/* Slot -1 is (auto) slot. */
|
||||
if (settings->state_slot >= 0)
|
||||
settings->state_slot--;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_action_right_savestates(
|
||||
void *data, bool wraparound)
|
||||
{
|
||||
rarch_setting_t *setting = (rarch_setting_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!setting)
|
||||
return -1;
|
||||
|
||||
settings->state_slot++;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_action_left_bind_device(void *data, bool wraparound)
|
||||
{
|
||||
unsigned *p = NULL;
|
||||
@ -1179,17 +1136,6 @@ static int setting_action_ok_bind_defaults(void *data, bool wraparound)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int setting_bool_action_ok_exit(void *data, bool wraparound)
|
||||
{
|
||||
if (setting_generic_action_ok_default(data, wraparound) != 0)
|
||||
return -1;
|
||||
|
||||
event_command(EVENT_CMD_RESUME);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int setting_action_ok_video_refresh_rate_auto(void *data, bool wraparound)
|
||||
{
|
||||
double video_refresh_rate = 0.0;
|
||||
@ -3074,16 +3020,6 @@ static void get_string_representation_bind_device(void * data, char *s,
|
||||
}
|
||||
|
||||
|
||||
static void get_string_representation_savestate(void * data, char *s,
|
||||
size_t len)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
snprintf(s, len, "%d", settings->state_slot);
|
||||
if (settings->state_slot == -1)
|
||||
strlcat(s, " (Auto)", len);
|
||||
}
|
||||
|
||||
/**
|
||||
* setting_get_label:
|
||||
* @list : File list on which to perform the search
|
||||
@ -3535,6 +3471,13 @@ static bool setting_append_list_main_menu_options(
|
||||
parent_group);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_CONTENT_SETTINGS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_CONTENT_SETTINGS),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
parent_group);
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_OPTIONS),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_OPTIONS),
|
||||
@ -3579,64 +3522,6 @@ static bool setting_append_list_main_menu_options(
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED);
|
||||
}
|
||||
|
||||
if (global->main_is_init && (global->core_type != CORE_TYPE_DUMMY))
|
||||
{
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_SAVE_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_SAVE_STATE),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
menu_hash_to_str(MENU_VALUE_NOT_AVAILABLE));
|
||||
(*list)[list_info->index - 1].action_left = &setting_action_left_savestates;
|
||||
(*list)[list_info->index - 1].action_right = &setting_action_right_savestates;
|
||||
(*list)[list_info->index - 1].action_start = &setting_action_start_savestates;
|
||||
(*list)[list_info->index - 1].action_ok = &setting_bool_action_ok_exit;
|
||||
(*list)[list_info->index - 1].action_select = &setting_bool_action_ok_exit;
|
||||
(*list)[list_info->index - 1].get_string_representation = &get_string_representation_savestate;
|
||||
menu_settings_list_current_add_cmd (list, list_info, EVENT_CMD_SAVE_STATE);
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_LOAD_STATE),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_LOAD_STATE),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
menu_hash_to_str(MENU_VALUE_NOT_AVAILABLE));
|
||||
(*list)[list_info->index - 1].action_left = &setting_action_left_savestates;
|
||||
(*list)[list_info->index - 1].action_right = &setting_action_left_savestates;
|
||||
(*list)[list_info->index - 1].action_start = &setting_action_start_savestates;
|
||||
(*list)[list_info->index - 1].action_ok = &setting_bool_action_ok_exit;
|
||||
(*list)[list_info->index - 1].action_select = &setting_bool_action_ok_exit;
|
||||
(*list)[list_info->index - 1].get_string_representation = &get_string_representation_savestate;
|
||||
menu_settings_list_current_add_cmd (list, list_info, EVENT_CMD_LOAD_STATE);
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_TAKE_SCREENSHOT),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_TAKE_SCREENSHOT),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_cmd (list, list_info, EVENT_CMD_TAKE_SCREENSHOT);
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_RESUME_CONTENT),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RESUME_CONTENT),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_cmd (list, list_info, EVENT_CMD_RESUME);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_bool_action_ok_exit;
|
||||
(*list)[list_info->index - 1].action_select = &setting_bool_action_ok_exit;
|
||||
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_RESTART_CONTENT),
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_RESTART_CONTENT),
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_cmd(list, list_info, EVENT_CMD_RESET);
|
||||
(*list)[list_info->index - 1].action_ok =
|
||||
(*list)[list_info->index - 1].action_select = &setting_bool_action_ok_exit;
|
||||
}
|
||||
#ifndef HAVE_DYNAMIC
|
||||
CONFIG_ACTION(
|
||||
menu_hash_to_str(MENU_LABEL_RESTART_RETROARCH),
|
||||
|
Loading…
x
Reference in New Issue
Block a user