mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 15:40:44 +00:00
(XMB) Dynamic wallpapers
This commit is contained in:
parent
b09b7e602c
commit
6da346f456
@ -548,6 +548,7 @@ static void config_set_defaults(void)
|
||||
settings->menu.pointer.enable = pointer_enable;
|
||||
settings->menu.timedate_enable = true;
|
||||
settings->menu.core_enable = true;
|
||||
settings->menu.dynamic_wallpaper_enable = false;
|
||||
*settings->menu.wallpaper = '\0';
|
||||
settings->menu.collapse_subgroups_enable = collapse_subgroups_enable;
|
||||
settings->menu.show_advanced_settings = show_advanced_settings;
|
||||
@ -672,6 +673,7 @@ static void config_set_defaults(void)
|
||||
*settings->input.overlay = '\0';
|
||||
*settings->core_assets_directory = '\0';
|
||||
*settings->assets_directory = '\0';
|
||||
*settings->dynamic_wallpapers_directory = '\0';
|
||||
*settings->playlist_directory = '\0';
|
||||
*settings->video.shader_path = '\0';
|
||||
*settings->video.shader_dir = '\0';
|
||||
@ -1209,6 +1211,7 @@ static bool config_load_file(const char *path, bool set_defaults)
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.pointer.enable, "menu_pointer_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.timedate_enable, "menu_timedate_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.core_enable, "menu_core_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.dynamic_wallpaper_enable, "menu_dynamic_wallpaper_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.navigation.wraparound.horizontal_enable, "menu_navigation_wraparound_horizontal_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.navigation.wraparound.vertical_enable, "menu_navigation_wraparound_vertical_enable");
|
||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.navigation.browser.filter.supported_extensions_enable, "menu_navigation_browser_filter_supported_extensions_enable");
|
||||
@ -1442,11 +1445,14 @@ static bool config_load_file(const char *path, bool set_defaults)
|
||||
config_get_path(conf, "input_remapping_directory", settings->input_remapping_directory, sizeof(settings->input_remapping_directory));
|
||||
config_get_path(conf, "core_assets_directory", settings->core_assets_directory, sizeof(settings->core_assets_directory));
|
||||
config_get_path(conf, "assets_directory", settings->assets_directory, sizeof(settings->assets_directory));
|
||||
config_get_path(conf, "dynamic_wallpapers_directory", settings->dynamic_wallpapers_directory, sizeof(settings->dynamic_wallpapers_directory));
|
||||
config_get_path(conf, "playlist_directory", settings->playlist_directory, sizeof(settings->playlist_directory));
|
||||
if (!strcmp(settings->core_assets_directory, "default"))
|
||||
*settings->core_assets_directory = '\0';
|
||||
if (!strcmp(settings->assets_directory, "default"))
|
||||
*settings->assets_directory = '\0';
|
||||
if (!strcmp(settings->dynamic_wallpapers_directory, "default"))
|
||||
*settings->dynamic_wallpapers_directory = '\0';
|
||||
if (!strcmp(settings->playlist_directory, "default"))
|
||||
*settings->playlist_directory = '\0';
|
||||
#ifdef HAVE_MENU
|
||||
@ -2325,6 +2331,7 @@ bool config_save_file(const char *path)
|
||||
config_set_bool(conf,"menu_pointer_enable", settings->menu.pointer.enable);
|
||||
config_set_bool(conf,"menu_timedate_enable", settings->menu.timedate_enable);
|
||||
config_set_bool(conf,"menu_core_enable", settings->menu.core_enable);
|
||||
config_set_bool(conf,"menu_dynamic_wallpaper_enable", settings->menu.dynamic_wallpaper_enable);
|
||||
config_set_path(conf, "menu_wallpaper", settings->menu.wallpaper);
|
||||
#endif
|
||||
config_set_bool(conf, "video_vsync", settings->video.vsync);
|
||||
@ -2408,6 +2415,12 @@ bool config_save_file(const char *path)
|
||||
config_set_path(conf, "assets_directory",
|
||||
*settings->assets_directory ?
|
||||
settings->assets_directory : "default");
|
||||
config_set_path(conf, "dynamic_wallpapers_directory",
|
||||
*settings->dynamic_wallpapers_directory ?
|
||||
settings->dynamic_wallpapers_directory : "default");
|
||||
config_set_path(conf, "dynamic_wallpapers_directory",
|
||||
*settings->dynamic_wallpapers_directory ?
|
||||
settings->dynamic_wallpapers_directory : "default");
|
||||
config_set_path(conf, "playlist_directory",
|
||||
*settings->playlist_directory ?
|
||||
settings->playlist_directory : "default");
|
||||
|
@ -111,6 +111,7 @@ typedef struct settings
|
||||
bool pause_libretro;
|
||||
bool timedate_enable;
|
||||
bool core_enable;
|
||||
bool dynamic_wallpaper_enable;
|
||||
bool throttle;
|
||||
char wallpaper[PATH_MAX_LENGTH];
|
||||
|
||||
@ -311,6 +312,7 @@ typedef struct settings
|
||||
|
||||
char core_assets_directory[PATH_MAX_LENGTH];
|
||||
char assets_directory[PATH_MAX_LENGTH];
|
||||
char dynamic_wallpapers_directory[PATH_MAX_LENGTH];
|
||||
char menu_config_directory[PATH_MAX_LENGTH];
|
||||
#if defined(HAVE_MENU)
|
||||
char menu_content_directory[PATH_MAX_LENGTH];
|
||||
|
@ -696,10 +696,30 @@ static void xmb_list_switch_new(xmb_handle_t *xmb,
|
||||
unsigned i;
|
||||
size_t end = 0;
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
if (settings->menu.dynamic_wallpaper_enable)
|
||||
{
|
||||
char path[PATH_MAX_LENGTH];
|
||||
|
||||
char *tmp = string_replace_substring(xmb->title_name, "/", " ");
|
||||
|
||||
if (tmp)
|
||||
{
|
||||
fill_pathname_join(path, settings->dynamic_wallpapers_directory, tmp, sizeof(path));
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
strlcat(path, ".png", sizeof(path));
|
||||
|
||||
if (path_file_exists(path))
|
||||
rarch_main_data_msg_queue_push(DATA_TYPE_IMAGE, path,
|
||||
"cb_menu_wallpaper", 0, 1, true);
|
||||
}
|
||||
|
||||
end = file_list_get_size(list);
|
||||
|
||||
for (i = 0; i < end; i++)
|
||||
|
@ -2606,6 +2606,15 @@ int setting_get_description(const char *label, char *s,
|
||||
"menu interfaces try to look for loadable \n"
|
||||
"assets, etc.");
|
||||
}
|
||||
else if (!strcmp(label, "dynamic_wallpapers_directory"))
|
||||
{
|
||||
snprintf(s, len,
|
||||
" -- Dynamic Wallpapers Directory. \n"
|
||||
" \n"
|
||||
" The place to store wallpapers that will \n"
|
||||
"be loaded dynamically by the menu depending \n"
|
||||
"on context.");
|
||||
}
|
||||
else if (!strcmp(label, "slowmotion_ratio"))
|
||||
{
|
||||
snprintf(s, len,
|
||||
@ -5536,6 +5545,18 @@ static bool setting_append_list_menu_options(
|
||||
menu_settings_list_current_add_values(list, list_info, "png");
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_EMPTY);
|
||||
|
||||
CONFIG_BOOL(
|
||||
settings->menu.dynamic_wallpaper_enable,
|
||||
"menu_dynamic_wallpaper_enable",
|
||||
"Dynamic Wallpaper",
|
||||
true,
|
||||
"OFF",
|
||||
"ON",
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
|
||||
CONFIG_BOOL(
|
||||
settings->menu.pause_libretro,
|
||||
"menu_pause_libretro",
|
||||
@ -6274,6 +6295,21 @@ static bool setting_append_list_directory_options(
|
||||
list_info,
|
||||
SD_FLAG_ALLOW_EMPTY | SD_FLAG_PATH_DIR | SD_FLAG_BROWSER_ACTION);
|
||||
|
||||
CONFIG_DIR(
|
||||
settings->dynamic_wallpapers_directory,
|
||||
"dynamic_wallpapers_directory",
|
||||
"Dynamic Wallpapers Directory",
|
||||
"",
|
||||
"<default>",
|
||||
group_info.name,
|
||||
subgroup_info.name,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
settings_data_list_current_add_flags(
|
||||
list,
|
||||
list_info,
|
||||
SD_FLAG_ALLOW_EMPTY | SD_FLAG_PATH_DIR | SD_FLAG_BROWSER_ACTION);
|
||||
|
||||
CONFIG_DIR(
|
||||
settings->menu_content_directory,
|
||||
"rgui_browser_directory",
|
||||
|
@ -89,6 +89,10 @@
|
||||
# loadable assets, etc.
|
||||
# assets_directory =
|
||||
|
||||
# Dynamic wallpapers directory. The place to store the wallpapers dynamically
|
||||
# loaded by the menu depending on context.
|
||||
# dynamic_wallpapers_directory =
|
||||
|
||||
# Sets start directory for menu config browser.
|
||||
# rgui_config_directory =
|
||||
|
||||
@ -615,6 +619,9 @@
|
||||
# Path to a .png image to set as menu wallpaper.
|
||||
# menu_wallpaper =
|
||||
|
||||
# Dynamically load a new wallpaper depending on context.
|
||||
# menu_dynamic_wallpaper_enable = false
|
||||
|
||||
# Wrap-around toe beginning and/or end if boundary of list reached horizontally
|
||||
# menu_navigation_wraparound_horizontal_enable = false
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user