mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 13:20:43 +00:00
Enable configuration of menu ticker text speed
This commit is contained in:
parent
9b84a0f701
commit
bfe0c3fb48
@ -325,6 +325,7 @@ static bool menu_show_core_updater = true;
|
|||||||
static bool menu_show_sublabels = false;
|
static bool menu_show_sublabels = false;
|
||||||
|
|
||||||
static unsigned menu_ticker_type = TICKER_TYPE_BOUNCE;
|
static unsigned menu_ticker_type = TICKER_TYPE_BOUNCE;
|
||||||
|
static float menu_ticker_speed = 1.0f;
|
||||||
|
|
||||||
static bool content_show_settings = true;
|
static bool content_show_settings = true;
|
||||||
static bool content_show_favorites = true;
|
static bool content_show_favorites = true;
|
||||||
|
@ -1605,6 +1605,7 @@ static struct config_float_setting *populate_settings_float(settings_t *settings
|
|||||||
SETTING_FLOAT("menu_framebuffer_opacity", &settings->floats.menu_framebuffer_opacity, true, menu_framebuffer_opacity, false);
|
SETTING_FLOAT("menu_framebuffer_opacity", &settings->floats.menu_framebuffer_opacity, true, menu_framebuffer_opacity, false);
|
||||||
SETTING_FLOAT("menu_footer_opacity", &settings->floats.menu_footer_opacity, true, menu_footer_opacity, false);
|
SETTING_FLOAT("menu_footer_opacity", &settings->floats.menu_footer_opacity, true, menu_footer_opacity, false);
|
||||||
SETTING_FLOAT("menu_header_opacity", &settings->floats.menu_header_opacity, true, menu_header_opacity, false);
|
SETTING_FLOAT("menu_header_opacity", &settings->floats.menu_header_opacity, true, menu_header_opacity, false);
|
||||||
|
SETTING_FLOAT("menu_ticker_speed", &settings->floats.menu_ticker_speed, true, menu_ticker_speed, false);
|
||||||
#endif
|
#endif
|
||||||
SETTING_FLOAT("video_message_pos_x", &settings->floats.video_msg_pos_x, true, message_pos_offset_x, false);
|
SETTING_FLOAT("video_message_pos_x", &settings->floats.video_msg_pos_x, true, message_pos_offset_x, false);
|
||||||
SETTING_FLOAT("video_message_pos_y", &settings->floats.video_msg_pos_y, true, message_pos_offset_y, false);
|
SETTING_FLOAT("video_message_pos_y", &settings->floats.video_msg_pos_y, true, message_pos_offset_y, false);
|
||||||
|
@ -329,6 +329,7 @@ typedef struct settings
|
|||||||
float menu_framebuffer_opacity;
|
float menu_framebuffer_opacity;
|
||||||
float menu_footer_opacity;
|
float menu_footer_opacity;
|
||||||
float menu_header_opacity;
|
float menu_header_opacity;
|
||||||
|
float menu_ticker_speed;
|
||||||
|
|
||||||
float audio_max_timing_skew;
|
float audio_max_timing_skew;
|
||||||
float audio_volume; /* dB scale. */
|
float audio_volume; /* dB scale. */
|
||||||
|
@ -1131,6 +1131,8 @@ MSG_HASH(MENU_ENUM_LABEL_TIMEDATE_STYLE,
|
|||||||
"menu_timedate_style")
|
"menu_timedate_style")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_MENU_TICKER_TYPE,
|
MSG_HASH(MENU_ENUM_LABEL_MENU_TICKER_TYPE,
|
||||||
"menu_ticker_type")
|
"menu_ticker_type")
|
||||||
|
MSG_HASH(MENU_ENUM_LABEL_MENU_TICKER_SPEED,
|
||||||
|
"menu_ticker_speed")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_UI_COMPANION_ENABLE,
|
MSG_HASH(MENU_ENUM_LABEL_UI_COMPANION_ENABLE,
|
||||||
"ui_companion_enable")
|
"ui_companion_enable")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT,
|
MSG_HASH(MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT,
|
||||||
|
@ -3090,6 +3090,14 @@ MSG_HASH(
|
|||||||
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
|
||||||
"Scroll Left"
|
"Scroll Left"
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_SPEED,
|
||||||
|
"Ticker Text Speed"
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_SUBLABEL_MENU_TICKER_SPEED,
|
||||||
|
"Animation speed when scrolling long menu text strings."
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME,
|
MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME,
|
||||||
"Menu Color Theme"
|
"Menu Color Theme"
|
||||||
|
@ -519,6 +519,7 @@ default_sublabel_macro(action_bind_sublabel_menu_rgui_thumbnail_downscaler,
|
|||||||
default_sublabel_macro(action_bind_sublabel_content_runtime_log, MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG)
|
default_sublabel_macro(action_bind_sublabel_content_runtime_log, MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG)
|
||||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_internal_upscale_level, MENU_ENUM_SUBLABEL_MENU_RGUI_INTERNAL_UPSCALE_LEVEL)
|
default_sublabel_macro(action_bind_sublabel_menu_rgui_internal_upscale_level, MENU_ENUM_SUBLABEL_MENU_RGUI_INTERNAL_UPSCALE_LEVEL)
|
||||||
default_sublabel_macro(action_bind_sublabel_menu_ticker_type, MENU_ENUM_SUBLABEL_MENU_TICKER_TYPE)
|
default_sublabel_macro(action_bind_sublabel_menu_ticker_type, MENU_ENUM_SUBLABEL_MENU_TICKER_TYPE)
|
||||||
|
default_sublabel_macro(action_bind_sublabel_menu_ticker_speed, MENU_ENUM_SUBLABEL_MENU_TICKER_SPEED)
|
||||||
|
|
||||||
static int action_bind_sublabel_systeminfo_controller_entry(
|
static int action_bind_sublabel_systeminfo_controller_entry(
|
||||||
file_list_t *list,
|
file_list_t *list,
|
||||||
@ -2260,6 +2261,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
|||||||
case MENU_ENUM_LABEL_MENU_TICKER_TYPE:
|
case MENU_ENUM_LABEL_MENU_TICKER_TYPE:
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_ticker_type);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_ticker_type);
|
||||||
break;
|
break;
|
||||||
|
case MENU_ENUM_LABEL_MENU_TICKER_SPEED:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_ticker_speed);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
case MSG_UNKNOWN:
|
case MSG_UNKNOWN:
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -566,6 +566,12 @@ static void menu_animation_update_time(bool timedate_enable)
|
|||||||
static retro_time_t
|
static retro_time_t
|
||||||
last_ticker_slow_update = 0;
|
last_ticker_slow_update = 0;
|
||||||
|
|
||||||
|
/* Adjust ticker speed */
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
float speed_factor = settings->floats.menu_ticker_speed > 0.0001f ? settings->floats.menu_ticker_speed : 1.0f;
|
||||||
|
unsigned ticker_speed = (unsigned)(((float)TICKER_SPEED / speed_factor) + 0.5);
|
||||||
|
unsigned ticker_slow_speed = (unsigned)(((float)TICKER_SLOW_SPEED / speed_factor) + 0.5);
|
||||||
|
|
||||||
cur_time = cpu_features_get_time_usec() / 1000;
|
cur_time = cpu_features_get_time_usec() / 1000;
|
||||||
delta_time = old_time == 0 ? 0 : cur_time - old_time;
|
delta_time = old_time == 0 ? 0 : cur_time - old_time;
|
||||||
|
|
||||||
@ -579,14 +585,14 @@ static void menu_animation_update_time(bool timedate_enable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ticker_is_active
|
if (ticker_is_active
|
||||||
&& cur_time - last_ticker_update >= TICKER_SPEED)
|
&& cur_time - last_ticker_update >= ticker_speed)
|
||||||
{
|
{
|
||||||
ticker_idx++;
|
ticker_idx++;
|
||||||
last_ticker_update = cur_time;
|
last_ticker_update = cur_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ticker_is_active
|
if (ticker_is_active
|
||||||
&& cur_time - last_ticker_slow_update >= TICKER_SLOW_SPEED)
|
&& cur_time - last_ticker_slow_update >= ticker_slow_speed)
|
||||||
{
|
{
|
||||||
ticker_slow_idx++;
|
ticker_slow_idx++;
|
||||||
last_ticker_slow_update = cur_time;
|
last_ticker_slow_update = cur_time;
|
||||||
@ -899,4 +905,4 @@ uint64_t menu_animation_get_ticker_idx(void)
|
|||||||
uint64_t menu_animation_get_ticker_slow_idx(void)
|
uint64_t menu_animation_get_ticker_slow_idx(void)
|
||||||
{
|
{
|
||||||
return ticker_slow_idx;
|
return ticker_slow_idx;
|
||||||
}
|
}
|
||||||
|
@ -6136,6 +6136,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
|||||||
MENU_ENUM_LABEL_MENU_TICKER_TYPE,
|
MENU_ENUM_LABEL_MENU_TICKER_TYPE,
|
||||||
PARSE_ONLY_UINT, false) == 0)
|
PARSE_ONLY_UINT, false) == 0)
|
||||||
count++;
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(menu, info,
|
||||||
|
MENU_ENUM_LABEL_MENU_TICKER_SPEED,
|
||||||
|
PARSE_ONLY_FLOAT, false) == 0)
|
||||||
|
count++;
|
||||||
|
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
menu_entries_append_enum(info->list,
|
menu_entries_append_enum(info->list,
|
||||||
|
@ -8205,6 +8205,21 @@ static bool setting_append_list(
|
|||||||
&setting_get_string_representation_uint_menu_ticker_type;
|
&setting_get_string_representation_uint_menu_ticker_type;
|
||||||
menu_settings_list_current_add_range(list, list_info, 0, TICKER_TYPE_LAST-1, 1, true, true);
|
menu_settings_list_current_add_range(list, list_info, 0, TICKER_TYPE_LAST-1, 1, true, true);
|
||||||
|
|
||||||
|
CONFIG_FLOAT(
|
||||||
|
list, list_info,
|
||||||
|
&settings->floats.menu_ticker_speed,
|
||||||
|
MENU_ENUM_LABEL_MENU_TICKER_SPEED,
|
||||||
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_SPEED,
|
||||||
|
menu_ticker_speed,
|
||||||
|
"%.1fx",
|
||||||
|
&group_info,
|
||||||
|
&subgroup_info,
|
||||||
|
parent_group,
|
||||||
|
general_write_handler,
|
||||||
|
general_read_handler);
|
||||||
|
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||||
|
menu_settings_list_current_add_range(list, list_info, 0.2, 6.0, 0.1, true, true);
|
||||||
|
|
||||||
END_SUB_GROUP(list, list_info, parent_group);
|
END_SUB_GROUP(list, list_info, parent_group);
|
||||||
|
|
||||||
START_SUB_GROUP(list, list_info, "Navigation", &group_info, &subgroup_info, parent_group);
|
START_SUB_GROUP(list, list_info, "Navigation", &group_info, &subgroup_info, parent_group);
|
||||||
|
@ -921,6 +921,7 @@ enum msg_hash_enums
|
|||||||
MENU_LABEL(QUICK_MENU_START_STREAMING),
|
MENU_LABEL(QUICK_MENU_START_STREAMING),
|
||||||
MENU_LABEL(QUICK_MENU_STOP_STREAMING),
|
MENU_LABEL(QUICK_MENU_STOP_STREAMING),
|
||||||
MENU_LABEL(MENU_TICKER_TYPE),
|
MENU_LABEL(MENU_TICKER_TYPE),
|
||||||
|
MENU_LABEL(MENU_TICKER_SPEED),
|
||||||
|
|
||||||
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_BOUNCE,
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_BOUNCE,
|
||||||
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
|
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user