Revert "Reduce dependency on settings in menu_widgets.c"

This reverts commit ec53a400a7e2f4870dbaa9746af43ec6548cfa8c.
This commit is contained in:
twinaphex 2020-02-13 14:11:52 +01:00
parent 2e0f921ded
commit b004202cbf
3 changed files with 33 additions and 59 deletions

View File

@ -336,8 +336,7 @@ void menu_widgets_msg_queue_push(
char *title, char *title,
enum message_queue_icon icon, enum message_queue_icon icon,
enum message_queue_category category, enum message_queue_category category,
unsigned prio, bool flush, unsigned prio, bool flush)
float video_font_size)
{ {
menu_widget_msg_t* msg_widget = NULL; menu_widget_msg_t* msg_widget = NULL;
@ -424,9 +423,9 @@ void menu_widgets_msg_queue_push(
unsigned width = menu_driver_is_alive() ? unsigned width = menu_driver_is_alive() ?
msg_queue_default_rect_width_menu_alive : msg_queue_default_rect_width; msg_queue_default_rect_width_menu_alive : msg_queue_default_rect_width;
unsigned text_width = font_driver_get_message_width(font_regular, title, title_length, msg_queue_text_scale_factor); unsigned text_width = font_driver_get_message_width(font_regular, title, title_length, msg_queue_text_scale_factor);
settings_t *settings = config_get_ptr();
msg_widget->text_height = msg_queue_text_scale_factor msg_widget->text_height = msg_queue_text_scale_factor * settings->floats.video_font_size;
* video_font_size;
/* Text is too wide, split it into two lines */ /* Text is too wide, split it into two lines */
if (text_width > width) if (text_width > width)
@ -864,9 +863,7 @@ static void menu_widgets_hourglass_tick(void *userdata)
menu_animation_push(&entry); menu_animation_push(&entry);
} }
void menu_widgets_iterate( void menu_widgets_iterate(unsigned width, unsigned height)
float video_font_size,
unsigned width, unsigned height)
{ {
size_t i; size_t i;
@ -947,6 +944,8 @@ void menu_widgets_iterate(
if (screenshot_filename[0] != '\0') if (screenshot_filename[0] != '\0')
{ {
menu_timer_ctx_entry_t timer; menu_timer_ctx_entry_t timer;
settings_t *settings = config_get_ptr();
float video_font_size = settings->floats.video_font_size;
video_driver_texture_unload(&screenshot_texture); video_driver_texture_unload(&screenshot_texture);
@ -982,7 +981,6 @@ void menu_widgets_iterate(
static int menu_widgets_draw_indicator(video_frame_info_t *video_info, static int menu_widgets_draw_indicator(video_frame_info_t *video_info,
menu_texture_item icon, int y, int top_right_x_advance, menu_texture_item icon, int y, int top_right_x_advance,
float video_font_size,
enum msg_hash_enums msg) enum msg_hash_enums msg)
{ {
unsigned width; unsigned width;
@ -1015,6 +1013,8 @@ static int menu_widgets_draw_indicator(video_frame_info_t *video_info,
{ {
unsigned height = simple_widget_height; unsigned height = simple_widget_height;
const char *txt = msg_hash_to_str(msg); const char *txt = msg_hash_to_str(msg);
settings_t *settings = config_get_ptr();
float video_font_size = settings->floats.video_font_size;
width = font_driver_get_message_width(font_regular, txt, (unsigned)strlen(txt), 1) + simple_widget_padding*2; width = font_driver_get_message_width(font_regular, txt, (unsigned)strlen(txt), 1) + simple_widget_padding*2;
@ -1038,8 +1038,7 @@ static int menu_widgets_draw_indicator(video_frame_info_t *video_info,
return width; return width;
} }
static void menu_widgets_draw_task_msg( static void menu_widgets_draw_task_msg(menu_widget_msg_t *msg, video_frame_info_t *video_info)
menu_widget_msg_t *msg, video_frame_info_t *video_info)
{ {
unsigned text_color; unsigned text_color;
unsigned bar_width; unsigned bar_width;
@ -1792,25 +1791,21 @@ void menu_widgets_frame(void *data)
if (video_info->widgets_is_paused) if (video_info->widgets_is_paused)
top_right_x_advance -= menu_widgets_draw_indicator(video_info, top_right_x_advance -= menu_widgets_draw_indicator(video_info,
menu_widgets_icons_textures[MENU_WIDGETS_ICON_PAUSED], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance, menu_widgets_icons_textures[MENU_WIDGETS_ICON_PAUSED], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance,
video_font_size,
MSG_PAUSED); MSG_PAUSED);
if (video_info->widgets_is_fast_forwarding) if (video_info->widgets_is_fast_forwarding)
top_right_x_advance -= menu_widgets_draw_indicator(video_info, top_right_x_advance -= menu_widgets_draw_indicator(video_info,
menu_widgets_icons_textures[MENU_WIDGETS_ICON_FAST_FORWARD], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance, menu_widgets_icons_textures[MENU_WIDGETS_ICON_FAST_FORWARD], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance,
video_font_size,
MSG_PAUSED); MSG_PAUSED);
if (video_info->widgets_is_rewinding) if (video_info->widgets_is_rewinding)
top_right_x_advance -= menu_widgets_draw_indicator(video_info, top_right_x_advance -= menu_widgets_draw_indicator(video_info,
menu_widgets_icons_textures[MENU_WIDGETS_ICON_REWIND], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance, menu_widgets_icons_textures[MENU_WIDGETS_ICON_REWIND], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance,
video_font_size,
MSG_REWINDING); MSG_REWINDING);
if (video_info->runloop_is_slowmotion) if (video_info->runloop_is_slowmotion)
top_right_x_advance -= menu_widgets_draw_indicator(video_info, top_right_x_advance -= menu_widgets_draw_indicator(video_info,
menu_widgets_icons_textures[MENU_WIDGETS_ICON_SLOW_MOTION], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance, menu_widgets_icons_textures[MENU_WIDGETS_ICON_SLOW_MOTION], (video_info->fps_show ? simple_widget_height : 0), top_right_x_advance,
video_font_size,
MSG_SLOW_MOTION); MSG_SLOW_MOTION);
/* Screenshot */ /* Screenshot */
@ -1868,13 +1863,8 @@ error:
return false; return false;
} }
void menu_widgets_context_reset( void menu_widgets_context_reset(bool is_threaded,
bool is_threaded, unsigned width, unsigned height)
unsigned width, unsigned height,
float video_font_size,
const char *dir_assets,
char *path_font
)
{ {
int i; int i;
char xmb_path[PATH_MAX_LENGTH]; char xmb_path[PATH_MAX_LENGTH];
@ -1883,18 +1873,20 @@ void menu_widgets_context_reset(
char theme_path[PATH_MAX_LENGTH]; char theme_path[PATH_MAX_LENGTH];
char ozone_path[PATH_MAX_LENGTH]; char ozone_path[PATH_MAX_LENGTH];
char font_path[PATH_MAX_LENGTH]; char font_path[PATH_MAX_LENGTH];
settings_t *settings = config_get_ptr();
float video_font_size = settings->floats.video_font_size;
/* Textures paths */ /* Textures paths */
fill_pathname_join( fill_pathname_join(
menu_widgets_path, menu_widgets_path,
dir_assets, settings->paths.directory_assets,
"menu_widgets", "menu_widgets",
sizeof(menu_widgets_path) sizeof(menu_widgets_path)
); );
fill_pathname_join( fill_pathname_join(
xmb_path, xmb_path,
dir_assets, settings->paths.directory_assets,
"xmb", "xmb",
sizeof(xmb_path) sizeof(xmb_path)
); );
@ -1931,13 +1923,13 @@ void menu_widgets_context_reset(
/* Fonts paths */ /* Fonts paths */
fill_pathname_join( fill_pathname_join(
ozone_path, ozone_path,
dir_assets, settings->paths.directory_assets,
"ozone", "ozone",
sizeof(ozone_path) sizeof(ozone_path)
); );
/* Fonts */ /* Fonts */
if (path_font[0] == '\0') if (settings->paths.path_font[0] == '\0')
{ {
fill_pathname_join(font_path, ozone_path, "regular.ttf", sizeof(font_path)); fill_pathname_join(font_path, ozone_path, "regular.ttf", sizeof(font_path));
font_regular = menu_display_font_file(font_path, video_font_size, is_threaded); font_regular = menu_display_font_file(font_path, video_font_size, is_threaded);
@ -1947,8 +1939,8 @@ void menu_widgets_context_reset(
} }
else else
{ {
font_regular = menu_display_font_file(path_font, video_font_size, is_threaded); font_regular = menu_display_font_file(settings->paths.path_font, video_font_size, is_threaded);
font_bold = menu_display_font_file(path_font, video_font_size, is_threaded); font_bold = menu_display_font_file(settings->paths.path_font, video_font_size, is_threaded);
} }
/* Metrics */ /* Metrics */
@ -2021,7 +2013,7 @@ void menu_widgets_context_destroy(void)
menu_display_font_free(font_bold); menu_display_font_free(font_bold);
font_regular = NULL; font_regular = NULL;
font_bold = NULL; font_bold = NULL;
} }
static void menu_widgets_achievement_free(void *userdata) static void menu_widgets_achievement_free(void *userdata)
@ -2130,10 +2122,12 @@ static void menu_widgets_volume_timer_end(void *userdata)
menu_animation_push(&entry); menu_animation_push(&entry);
} }
void menu_widgets_volume_update_and_show(float new_volume) void menu_widgets_volume_update_and_show(void)
{ {
menu_timer_ctx_entry_t entry; menu_timer_ctx_entry_t entry;
settings_t *settings = config_get_ptr();
bool mute = *(audio_get_bool_ptr(AUDIO_ACTION_MUTE_ENABLE)); bool mute = *(audio_get_bool_ptr(AUDIO_ACTION_MUTE_ENABLE));
float new_volume = settings->floats.audio_volume;
menu_animation_kill_by_tag(&volume_tag); menu_animation_kill_by_tag(&volume_tag);

View File

@ -46,14 +46,11 @@ void menu_widgets_msg_queue_push(
char *title, char *title,
enum message_queue_icon icon, enum message_queue_icon icon,
enum message_queue_category category, enum message_queue_category category,
unsigned prio, bool flush, unsigned prio, bool flush);
float video_font_size);
void menu_widgets_volume_update_and_show(float new_volume); void menu_widgets_volume_update_and_show(void);
void menu_widgets_iterate( void menu_widgets_iterate(unsigned width, unsigned height);
float video_font_size,
unsigned width, unsigned height);
void menu_widgets_screenshot_taken(const char *shotname, const char *filename); void menu_widgets_screenshot_taken(const char *shotname, const char *filename);
@ -73,11 +70,7 @@ void menu_widgets_start_load_content_animation(
void menu_widgets_cleanup_load_content_animation(void); void menu_widgets_cleanup_load_content_animation(void);
void menu_widgets_context_reset(bool is_threaded, void menu_widgets_context_reset(bool is_threaded,
unsigned width, unsigned height, unsigned width, unsigned height);
float video_font_size,
const char *dir_assets,
char *font_path
);
void menu_widgets_context_destroy(void); void menu_widgets_context_destroy(void);

View File

@ -5407,7 +5407,7 @@ static void command_event_set_volume(float gain)
#if defined(HAVE_MENU) && defined(HAVE_MENU_WIDGETS) #if defined(HAVE_MENU) && defined(HAVE_MENU_WIDGETS)
if (menu_widgets_inited) if (menu_widgets_inited)
menu_widgets_volume_update_and_show(settings->floats.audio_volume); menu_widgets_volume_update_and_show();
else else
#endif #endif
runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@ -6887,8 +6887,7 @@ TODO: Add a setting for these tweaks */
#if defined(HAVE_MENU) && defined(HAVE_MENU_WIDGETS) #if defined(HAVE_MENU) && defined(HAVE_MENU_WIDGETS)
if (menu_widgets_inited) if (menu_widgets_inited)
menu_widgets_volume_update_and_show( menu_widgets_volume_update_and_show();
configuration_settings->floats.audio_volume);
else else
#endif #endif
runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO); runloop_msg_queue_push(msg, 1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
@ -23432,11 +23431,7 @@ static void drivers_init(int flags)
if (menu_widgets_inited) if (menu_widgets_inited)
menu_widgets_context_reset(video_is_threaded, menu_widgets_context_reset(video_is_threaded,
video_driver_width, video_driver_height, video_driver_width, video_driver_height);
settings->floats.video_font_size,
settings->paths.directory_assets,
settings->paths.path_font
);
} }
else else
{ {
@ -25779,12 +25774,7 @@ static void runloop_task_msg_queue_push(
runloop_msg_queue_lock(); runloop_msg_queue_lock();
ui_companion_driver_msg_queue_push(msg, ui_companion_driver_msg_queue_push(msg,
prio, task ? duration : duration * 60 / 1000, flush); prio, task ? duration : duration * 60 / 1000, flush);
menu_widgets_msg_queue_push(task, msg, duration, NULL, menu_widgets_msg_queue_push(task, msg, duration, NULL, (enum message_queue_icon)MESSAGE_QUEUE_CATEGORY_INFO, (enum message_queue_category)MESSAGE_QUEUE_ICON_DEFAULT, prio, flush);
(enum message_queue_icon)MESSAGE_QUEUE_CATEGORY_INFO,
(enum message_queue_category)MESSAGE_QUEUE_ICON_DEFAULT,
prio, flush,
configuration_settings->floats.video_font_size
);
runloop_msg_queue_unlock(); runloop_msg_queue_unlock();
} }
else else
@ -26656,8 +26646,7 @@ void runloop_msg_queue_push(const char *msg,
{ {
menu_widgets_msg_queue_push(NULL, msg, menu_widgets_msg_queue_push(NULL, msg,
roundf((float)duration / 60.0f * 1000.0f), roundf((float)duration / 60.0f * 1000.0f),
title, icon, category, prio, flush, title, icon, category, prio, flush);
configuration_settings->floats.video_font_size);
duration = duration * 60 / 1000; duration = duration * 60 / 1000;
} }
else else
@ -27158,9 +27147,7 @@ static enum runloop_state runloop_check_state(void)
if (menu_widgets_inited) if (menu_widgets_inited)
{ {
runloop_msg_queue_lock(); runloop_msg_queue_lock();
menu_widgets_iterate( menu_widgets_iterate(video_driver_width, video_driver_height);
settings->floats.video_font_size,
video_driver_width, video_driver_height);
runloop_msg_queue_unlock(); runloop_msg_queue_unlock();
} }
#endif #endif