Refactor 'Onscreen Display'/'Onscreen Overlay' settings

This commit is contained in:
twinaphex 2016-07-02 13:49:05 +02:00
parent 84d9a58ec8
commit abe2a14b16
9 changed files with 188 additions and 9 deletions

View File

@ -1290,6 +1290,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
return "deferred_frame_throttle_settings_list";
case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST:
return "deferred_rewind_settings_list";
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST:
return "deferred_onscreen_display_settings_list";
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST:
return "deferred_onscreen_overlay_settings_list";
case MENU_ENUM_LABEL_ACCOUNTS_LIST:
return "accounts_list";
case MENU_ENUM_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST:
@ -1322,6 +1326,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
return "frame_throttle_settings";
case MENU_ENUM_LABEL_REWIND_SETTINGS:
return "rewind_settings";
case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS:
return "onscreen_display_settings";
case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS:
return "onscreen_overlay_settings";
case MENU_ENUM_LABEL_AUDIO_SETTINGS:
return "audio_settings";
case MENU_ENUM_LABEL_DEBUG_PANEL_ENABLE:
@ -3336,6 +3344,8 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
return "Onscreen Display";
case MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS:
return "Onscreen Overlay";
case MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS:
return "Onscreen Overlay";
case MENU_ENUM_LABEL_VALUE_MENU_SETTINGS:
return "Menu";
case MENU_ENUM_LABEL_VALUE_MULTIMEDIA_SETTINGS:

View File

@ -139,6 +139,16 @@ static int deferred_push_rewind_settings_list(menu_displaylist_info_t *info)
return deferred_push_dlist(info, DISPLAYLIST_REWIND_SETTINGS_LIST);
}
static int deferred_push_onscreen_display_settings_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST);
}
static int deferred_push_onscreen_overlay_settings_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST);
}
static int deferred_push_audio_settings_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_AUDIO_SETTINGS_LIST);
@ -657,6 +667,16 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_rewind_settings_list);
return 0;
}
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST)))
{
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_display_settings_list);
return 0;
}
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST)))
{
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_overlay_settings_list);
return 0;
}
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_CONTENT_DIRS_LIST)))
{
#ifdef HAVE_NETWORKING
@ -909,6 +929,12 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_rewind_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_display_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_onscreen_overlay_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST:
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_audio_settings_list);
break;

View File

@ -500,6 +500,20 @@ int generic_action_ok_displaylist_push(const char *path,
info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST);
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST;
break;
case ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST:
info.directory_ptr = idx;
info.type = type;
info_path = path;
info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST);
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST;
break;
case ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST:
info.directory_ptr = idx;
info.type = type;
info_path = path;
info_label = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST);
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST;
break;
case ACTION_OK_DL_AUDIO_SETTINGS_LIST:
info.directory_ptr = idx;
info.type = type;
@ -2366,6 +2380,20 @@ static int action_ok_rewind_list(const char *path,
entry_idx, ACTION_OK_DL_REWIND_SETTINGS_LIST);
}
static int action_ok_onscreen_display_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
return generic_action_ok_displaylist_push(path, label, type, idx,
entry_idx, ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST);
}
static int action_ok_onscreen_overlay_list(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
return generic_action_ok_displaylist_push(path, label, type, idx,
entry_idx, ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST);
}
static int action_ok_rdb_entry(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -3014,6 +3042,12 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_REWIND_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_rewind_list);
break;
case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_onscreen_display_list);
break;
case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS:
BIND_ACTION_OK(cbs, action_ok_onscreen_overlay_list);
break;
case MENU_ENUM_LABEL_SCREEN_RESOLUTION:
BIND_ACTION_OK(cbs, action_ok_video_resolution);
break;

View File

@ -235,6 +235,20 @@ static int action_get_rewind_settings_list(const char *path, const char *label,
return 0;
}
static int action_get_onscreen_display_settings_list(const char *path, const char *label,
unsigned menu_type, char *s, size_t len)
{
sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), len);
return 0;
}
static int action_get_onscreen_overlay_settings_list(const char *path, const char *label,
unsigned menu_type, char *s, size_t len)
{
sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS), len);
return 0;
}
static int action_get_audio_settings_list(const char *path, const char *label,
unsigned menu_type, char *s, size_t len)
{
@ -815,6 +829,18 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST)))
{
BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_display_settings_list);
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST)))
{
BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_overlay_settings_list);
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_CONTENT_DIRS_LIST)))
{
BIND_ACTION_GET_TITLE(cbs, action_get_download_core_content_list);
@ -1044,6 +1070,12 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST:
BIND_ACTION_GET_TITLE(cbs, action_get_rewind_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST:
BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_display_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST:
BIND_ACTION_GET_TITLE(cbs, action_get_onscreen_overlay_settings_list);
break;
case MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST:
BIND_ACTION_GET_TITLE(cbs, action_get_core_settings_list);
break;

View File

@ -75,6 +75,8 @@ enum
ACTION_OK_DL_CORE_CONTENT_DIRS_LIST,
ACTION_OK_DL_DEFERRED_CORE_LIST,
ACTION_OK_DL_DEFERRED_CORE_LIST_SET,
ACTION_OK_DL_ONSCREEN_DISPLAY_SETTINGS_LIST,
ACTION_OK_DL_ONSCREEN_OVERLAY_SETTINGS_LIST,
ACTION_OK_DL_CONTENT_SETTINGS
};

View File

@ -3742,6 +3742,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
case DISPLAYLIST_SAVING_SETTINGS_LIST:
case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST:
case DISPLAYLIST_REWIND_SETTINGS_LIST:
case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST:
case DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST:
case DISPLAYLIST_AUDIO_SETTINGS_LIST:
case DISPLAYLIST_CORE_SETTINGS_LIST:
case DISPLAYLIST_INPUT_SETTINGS_LIST:
@ -4132,6 +4134,55 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
MENU_ENUM_LABEL_REWIND_GRANULARITY,
PARSE_ONLY_UINT, false);
info->need_refresh = true;
info->need_push = true;
break;
case DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST:
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_FONT_ENABLE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_FONT_PATH,
PARSE_ONLY_PATH, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_FONT_SIZE,
PARSE_ONLY_FLOAT, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X,
PARSE_ONLY_FLOAT, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y,
PARSE_ONLY_FLOAT, false);
info->need_refresh = true;
info->need_push = true;
break;
case DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST:
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_INPUT_OVERLAY_ENABLE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_OVERLAY_AUTOLOAD_PREFERRED,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_INPUT_OSK_OVERLAY_ENABLE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_OVERLAY_PRESET,
PARSE_ONLY_PATH, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_OVERLAY_OPACITY,
PARSE_ONLY_FLOAT, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_OVERLAY_SCALE,
PARSE_ONLY_FLOAT, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_KEYBOARD_OVERLAY_PRESET,
PARSE_ONLY_PATH, false);
info->need_refresh = true;
info->need_push = true;
break;
@ -4383,12 +4434,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_REWIND_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings(menu, info,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings(menu, info,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings(menu, info,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_RECORDING_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS, PARSE_ACTION, false);
ret = menu_displaylist_parse_settings(menu, info,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MENU_SETTINGS), PARSE_ONLY_GROUP, false);
ret = menu_displaylist_parse_settings(menu, info,

View File

@ -111,6 +111,8 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_CORE_SETTINGS_LIST,
DISPLAYLIST_INPUT_SETTINGS_LIST,
DISPLAYLIST_INPUT_HOTKEY_BINDS_LIST,
DISPLAYLIST_ONSCREEN_OVERLAY_SETTINGS_LIST,
DISPLAYLIST_ONSCREEN_DISPLAY_SETTINGS_LIST,
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,
DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST,
DISPLAYLIST_LOAD_CONTENT_LIST,

View File

@ -4263,6 +4263,24 @@ static bool setting_append_list(
parent_group);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_REWIND_SETTINGS);
CONFIG_ACTION(
list, list_info,
msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS),
&group_info,
&subgroup_info,
parent_group);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS);
CONFIG_ACTION(
list, list_info,
msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS),
&group_info,
&subgroup_info,
parent_group);
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS);
CONFIG_ACTION(
list, list_info,
msg_hash_to_str(MENU_ENUM_LABEL_PLAYLIST_SETTINGS),
@ -6022,7 +6040,7 @@ static bool setting_append_list(
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS),
parent_group);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_RECORDING_SETTINGS);
START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group);
@ -6229,7 +6247,7 @@ static bool setting_append_list(
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS),
parent_group);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS);
START_SUB_GROUP(list, list_info, "Messages",
&group_info,
@ -6321,7 +6339,7 @@ static bool setting_append_list(
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS),
parent_group);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS);
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_OVERLAY_SETTINGS);
START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group);

View File

@ -690,6 +690,8 @@ enum msg_hash_enums
MENU_ENUM_LABEL_DEFERRED_SAVING_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_FRAME_THROTTLE_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_REWIND_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_ONSCREEN_DISPLAY_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_LOGGING_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_AUDIO_SETTINGS_LIST,
MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST,
@ -1384,6 +1386,8 @@ enum msg_hash_enums
MENU_ENUM_LABEL_VALUE_SAVE_NEW_CONFIG,
MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS,
MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS,
MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS,
MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS,
MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_CHANGES,
MENU_ENUM_LABEL_CHEAT_APPLY_CHANGES,
MENU_ENUM_LABEL_CUSTOM_BIND,