(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.pointer.enable = pointer_enable;
|
||||||
settings->menu.timedate_enable = true;
|
settings->menu.timedate_enable = true;
|
||||||
settings->menu.core_enable = true;
|
settings->menu.core_enable = true;
|
||||||
|
settings->menu.dynamic_wallpaper_enable = false;
|
||||||
*settings->menu.wallpaper = '\0';
|
*settings->menu.wallpaper = '\0';
|
||||||
settings->menu.collapse_subgroups_enable = collapse_subgroups_enable;
|
settings->menu.collapse_subgroups_enable = collapse_subgroups_enable;
|
||||||
settings->menu.show_advanced_settings = show_advanced_settings;
|
settings->menu.show_advanced_settings = show_advanced_settings;
|
||||||
|
@ -672,6 +673,7 @@ static void config_set_defaults(void)
|
||||||
*settings->input.overlay = '\0';
|
*settings->input.overlay = '\0';
|
||||||
*settings->core_assets_directory = '\0';
|
*settings->core_assets_directory = '\0';
|
||||||
*settings->assets_directory = '\0';
|
*settings->assets_directory = '\0';
|
||||||
|
*settings->dynamic_wallpapers_directory = '\0';
|
||||||
*settings->playlist_directory = '\0';
|
*settings->playlist_directory = '\0';
|
||||||
*settings->video.shader_path = '\0';
|
*settings->video.shader_path = '\0';
|
||||||
*settings->video.shader_dir = '\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.pointer.enable, "menu_pointer_enable");
|
||||||
CONFIG_GET_BOOL_BASE(conf, settings, menu.timedate_enable, "menu_timedate_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.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.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.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");
|
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, "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, "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, "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));
|
config_get_path(conf, "playlist_directory", settings->playlist_directory, sizeof(settings->playlist_directory));
|
||||||
if (!strcmp(settings->core_assets_directory, "default"))
|
if (!strcmp(settings->core_assets_directory, "default"))
|
||||||
*settings->core_assets_directory = '\0';
|
*settings->core_assets_directory = '\0';
|
||||||
if (!strcmp(settings->assets_directory, "default"))
|
if (!strcmp(settings->assets_directory, "default"))
|
||||||
*settings->assets_directory = '\0';
|
*settings->assets_directory = '\0';
|
||||||
|
if (!strcmp(settings->dynamic_wallpapers_directory, "default"))
|
||||||
|
*settings->dynamic_wallpapers_directory = '\0';
|
||||||
if (!strcmp(settings->playlist_directory, "default"))
|
if (!strcmp(settings->playlist_directory, "default"))
|
||||||
*settings->playlist_directory = '\0';
|
*settings->playlist_directory = '\0';
|
||||||
#ifdef HAVE_MENU
|
#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_pointer_enable", settings->menu.pointer.enable);
|
||||||
config_set_bool(conf,"menu_timedate_enable", settings->menu.timedate_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_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);
|
config_set_path(conf, "menu_wallpaper", settings->menu.wallpaper);
|
||||||
#endif
|
#endif
|
||||||
config_set_bool(conf, "video_vsync", settings->video.vsync);
|
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",
|
config_set_path(conf, "assets_directory",
|
||||||
*settings->assets_directory ?
|
*settings->assets_directory ?
|
||||||
settings->assets_directory : "default");
|
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",
|
config_set_path(conf, "playlist_directory",
|
||||||
*settings->playlist_directory ?
|
*settings->playlist_directory ?
|
||||||
settings->playlist_directory : "default");
|
settings->playlist_directory : "default");
|
||||||
|
|
|
@ -111,6 +111,7 @@ typedef struct settings
|
||||||
bool pause_libretro;
|
bool pause_libretro;
|
||||||
bool timedate_enable;
|
bool timedate_enable;
|
||||||
bool core_enable;
|
bool core_enable;
|
||||||
|
bool dynamic_wallpaper_enable;
|
||||||
bool throttle;
|
bool throttle;
|
||||||
char wallpaper[PATH_MAX_LENGTH];
|
char wallpaper[PATH_MAX_LENGTH];
|
||||||
|
|
||||||
|
@ -311,6 +312,7 @@ typedef struct settings
|
||||||
|
|
||||||
char core_assets_directory[PATH_MAX_LENGTH];
|
char core_assets_directory[PATH_MAX_LENGTH];
|
||||||
char 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];
|
char menu_config_directory[PATH_MAX_LENGTH];
|
||||||
#if defined(HAVE_MENU)
|
#if defined(HAVE_MENU)
|
||||||
char menu_content_directory[PATH_MAX_LENGTH];
|
char menu_content_directory[PATH_MAX_LENGTH];
|
||||||
|
|
|
@ -696,10 +696,30 @@ static void xmb_list_switch_new(xmb_handle_t *xmb,
|
||||||
unsigned i;
|
unsigned i;
|
||||||
size_t end = 0;
|
size_t end = 0;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
menu_handle_t *menu = menu_driver_get_ptr();
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
if (!menu)
|
if (!menu)
|
||||||
return;
|
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);
|
end = file_list_get_size(list);
|
||||||
|
|
||||||
for (i = 0; i < end; i++)
|
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"
|
"menu interfaces try to look for loadable \n"
|
||||||
"assets, etc.");
|
"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"))
|
else if (!strcmp(label, "slowmotion_ratio"))
|
||||||
{
|
{
|
||||||
snprintf(s, len,
|
snprintf(s, len,
|
||||||
|
@ -5536,6 +5545,18 @@ static bool setting_append_list_menu_options(
|
||||||
menu_settings_list_current_add_values(list, list_info, "png");
|
menu_settings_list_current_add_values(list, list_info, "png");
|
||||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_EMPTY);
|
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(
|
CONFIG_BOOL(
|
||||||
settings->menu.pause_libretro,
|
settings->menu.pause_libretro,
|
||||||
"menu_pause_libretro",
|
"menu_pause_libretro",
|
||||||
|
@ -6274,6 +6295,21 @@ static bool setting_append_list_directory_options(
|
||||||
list_info,
|
list_info,
|
||||||
SD_FLAG_ALLOW_EMPTY | SD_FLAG_PATH_DIR | SD_FLAG_BROWSER_ACTION);
|
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(
|
CONFIG_DIR(
|
||||||
settings->menu_content_directory,
|
settings->menu_content_directory,
|
||||||
"rgui_browser_directory",
|
"rgui_browser_directory",
|
||||||
|
|
|
@ -89,6 +89,10 @@
|
||||||
# loadable assets, etc.
|
# loadable assets, etc.
|
||||||
# assets_directory =
|
# 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.
|
# Sets start directory for menu config browser.
|
||||||
# rgui_config_directory =
|
# rgui_config_directory =
|
||||||
|
|
||||||
|
@ -615,6 +619,9 @@
|
||||||
# Path to a .png image to set as menu wallpaper.
|
# Path to a .png image to set as menu wallpaper.
|
||||||
# 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
|
# Wrap-around toe beginning and/or end if boundary of list reached horizontally
|
||||||
# menu_navigation_wraparound_horizontal_enable = false
|
# menu_navigation_wraparound_horizontal_enable = false
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue