From 24107229fcb612d2a9ce6026e15e7c86a3af4f19 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 14 Jul 2017 14:49:41 -0400 Subject: [PATCH 1/2] Remove horizontal slide animation for XMB --- menu/drivers/xmb.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 22c7a88f4e..1a99b9fe68 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -610,7 +610,7 @@ static void xmb_draw_icon( static void xmb_draw_thumbnail( menu_display_frame_info_t menu_disp_info, xmb_handle_t *xmb, float *color, - unsigned width, unsigned height, + unsigned width, unsigned height, float x, float y, float w, float h, uintptr_t texture) { @@ -826,7 +826,7 @@ static void xmb_render_messagebox_internal( { const char *msg = list->elems[i].data; int len = (int)utf8len(msg); - + if (len > longest) { longest = len; @@ -1636,7 +1636,8 @@ static void xmb_list_switch(xmb_handle_t *xmb) xmb_list_switch_old(xmb, xmb->selection_buf_old, dir, xmb->selection_ptr_old); - xmb_list_switch_new(xmb, selection_buf, dir, selection); + // TODO: Add toggle for settings. + //xmb_list_switch_new(xmb, selection_buf, dir, selection); xmb->categories.active.idx_old = (unsigned)xmb->categories.selection_ptr; if (!string_is_equal(xmb_thumbnails_ident(), @@ -3811,8 +3812,9 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action if (!xmb) return; - xmb_list_deep_copy(selection_buf, xmb->selection_buf_old); - xmb_list_deep_copy(menu_stack, xmb->menu_stack_old); + // TODO: Add toggle for settings. + //xmb_list_deep_copy(selection_buf, xmb->selection_buf_old); + //xmb_list_deep_copy(menu_stack, xmb->menu_stack_old); xmb->selection_ptr_old = selection; list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) From 7d71746b218874ad4a262dfacc192a6827dd3fcb Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Fri, 14 Jul 2017 15:11:27 -0400 Subject: [PATCH 2/2] Add Horizontal Animation configuration --- configuration.c | 71 +++++++++++++++---------------- configuration.h | 1 + intl/msg_hash_eo.h | 2 + intl/msg_hash_lbl.h | 2 + intl/msg_hash_us.h | 2 + menu/drivers/xmb.c | 18 +++++--- menu/menu_displaylist.c | 17 ++++---- menu/menu_setting.c | 92 ++++++++++++++++++++++++----------------- msg_hash.h | 1 + 9 files changed, 121 insertions(+), 85 deletions(-) diff --git a/configuration.c b/configuration.c index 1704386fbb..2669396dc5 100644 --- a/configuration.c +++ b/configuration.c @@ -52,7 +52,7 @@ /* All config related settings go here. */ struct config_bool_setting -{ +{ const char *ident; bool *ptr; bool def_enable; @@ -61,7 +61,7 @@ struct config_bool_setting }; struct config_int_setting -{ +{ const char *ident; int *ptr; bool def_enable; @@ -70,7 +70,7 @@ struct config_int_setting }; struct config_uint_setting -{ +{ const char *ident; unsigned *ptr; bool def_enable; @@ -79,7 +79,7 @@ struct config_uint_setting }; struct config_float_setting -{ +{ const char *ident; float *ptr; bool def_enable; @@ -88,7 +88,7 @@ struct config_float_setting }; struct config_array_setting -{ +{ const char *ident; char *ptr; bool def_enable; @@ -97,7 +97,7 @@ struct config_array_setting }; struct config_path_setting -{ +{ const char *ident; char *ptr; bool def_enable; @@ -485,7 +485,7 @@ static enum menu_driver_enum MENU_DEFAULT_DRIVER = MENU_NULL; tmp[count].def = default_setting; \ tmp[count].handle = handle_setting; \ count++; \ -} +} #define SETTING_BOOL(key, configval, default_enable, default_setting, handle_setting) \ GENERAL_SETTING(key, configval, default_enable, default_setting, struct config_bool_setting, handle_setting) @@ -1014,7 +1014,7 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, SETTING_PATH("cheat_database_path", settings->paths.path_cheat_database, false, NULL, true); #ifdef HAVE_MENU - SETTING_PATH("menu_wallpaper", + SETTING_PATH("menu_wallpaper", settings->paths.path_menu_wallpaper, false, NULL, true); #endif SETTING_PATH("content_history_path", @@ -1033,7 +1033,7 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, settings->paths.path_font, false, NULL, true); SETTING_PATH("cursor_directory", settings->paths.directory_cursor, false, NULL, true); - SETTING_PATH("content_history_dir", + SETTING_PATH("content_history_dir", settings->paths.directory_content_history, false, NULL, true); SETTING_PATH("screenshot_directory", settings->paths.directory_screenshot, true, NULL, true); @@ -1063,7 +1063,7 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, settings->paths.directory_autoconfig, false, NULL, true); SETTING_PATH("audio_filter_dir", settings->paths.directory_audio_filter, true, NULL, true); - SETTING_PATH("savefile_directory", + SETTING_PATH("savefile_directory", dir_get_ptr(RARCH_DIR_SAVEFILE), true, NULL, false); SETTING_PATH("savestate_directory", dir_get_ptr(RARCH_DIR_SAVESTATE), true, NULL, false); @@ -1078,11 +1078,11 @@ static struct config_path_setting *populate_settings_path(settings_t *settings, settings->paths.directory_overlay, true, NULL, true); #endif #ifndef HAVE_DYNAMIC - SETTING_PATH("libretro_path", + SETTING_PATH("libretro_path", path_get_ptr(RARCH_PATH_CORE), false, NULL, false); #endif SETTING_PATH( - "screenshot_directory", + "screenshot_directory", settings->paths.directory_screenshot, true, NULL, false); if (global) @@ -1180,6 +1180,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, #endif SETTING_BOOL("menu_throttle_framerate", &settings->bools.menu_throttle_framerate, true, true, false); SETTING_BOOL("menu_linear_filter", &settings->bools.menu_linear_filter, true, true, false); + SETTING_BOOL("menu_horizontal_animation", &settings->bools.menu_horizontal_animation, true, true, false); SETTING_BOOL("dpi_override_enable", &settings->bools.menu_dpi_override_enable, true, menu_dpi_override_enable, false); SETTING_BOOL("menu_pause_libretro", &settings->bools.menu_pause_libretro, true, true, false); SETTING_BOOL("menu_mouse_enable", &settings->bools.menu_mouse_enable, true, def_mouse_enable, false); @@ -1204,14 +1205,14 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings, SETTING_BOOL("xmb_show_netplay", &settings->bools.menu_xmb_show_netplay, true, xmb_show_netplay, false); #endif SETTING_BOOL("xmb_show_history", &settings->bools.menu_xmb_show_history, true, xmb_show_history, false); -#ifdef HAVE_LIBRETRODB +#ifdef HAVE_LIBRETRODB SETTING_BOOL("xmb_show_add", &settings->bools.menu_xmb_show_add, true, xmb_show_add, false); #endif #endif SETTING_BOOL("filter_by_current_core", &settings->bools.filter_by_current_core, false, false /* TODO */, false); SETTING_BOOL("rgui_show_start_screen", &settings->bools.menu_show_start_screen, false, false /* TODO */, false); SETTING_BOOL("menu_navigation_wraparound_enable", &settings->bools.menu_navigation_wraparound_enable, true, true, false); - SETTING_BOOL("menu_navigation_browser_filter_supported_extensions_enable", + SETTING_BOOL("menu_navigation_browser_filter_supported_extensions_enable", &settings->bools.menu_navigation_browser_filter_supported_extensions_enable, true, true, false); SETTING_BOOL("menu_show_advanced_settings", &settings->bools.menu_show_advanced_settings, true, show_advanced_settings, false); #endif @@ -1923,7 +1924,7 @@ static config_file_t *open_default_config_file(void) RARCH_WARN("Created new config file in: \"%s\".\n", conf_path); } #elif !defined(RARCH_CONSOLE) - bool has_application_data = + bool has_application_data = fill_pathname_application_data(application_data, sizeof(application_data)); @@ -2099,7 +2100,7 @@ static bool check_shader_compatibility(enum file_path_enum enum_idx) return true; } - if (string_is_equal_fast(settings->arrays.video_driver, "gl", 2) || + if (string_is_equal_fast(settings->arrays.video_driver, "gl", 2) || string_is_equal_fast(settings->arrays.video_driver, "d3d", 3) ) { @@ -2170,7 +2171,7 @@ static void config_get_hex_base(config_file_t *conf, * Loads a config file and reads all the values into memory. * */ -static bool config_load_file(const char *path, bool set_defaults, +static bool config_load_file(const char *path, bool set_defaults, settings_t *settings) { unsigned i; @@ -2706,10 +2707,10 @@ end: * This function only has an effect if a game-specific or core-specific * configuration file exists at respective locations. * - * core-specific: $CONFIG_DIR/$CORE_NAME/$CORE_NAME.cfg + * core-specific: $CONFIG_DIR/$CORE_NAME/$CORE_NAME.cfg * fallback: $CURRENT_CFG_LOCATION/$CORE_NAME/$CORE_NAME.cfg * - * game-specific: $CONFIG_DIR/$CORE_NAME/$ROM_NAME.cfg + * game-specific: $CONFIG_DIR/$CORE_NAME/$ROM_NAME.cfg * fallback: $CURRENT_CFG_LOCATION/$CORE_NAME/$GAME_NAME.cfg * * Returns: false if there was an error or no action was performed. @@ -2805,7 +2806,7 @@ bool config_load_override(void) /* Re-load the configuration with any overrides that might have been found */ buf[0] = '\0'; - /* Store the libretro_path we're using since it will be + /* Store the libretro_path we're using since it will be * overwritten by the override when reloading. */ strlcpy(buf, path_get(RARCH_PATH_CORE), sizeof(buf)); @@ -3252,7 +3253,7 @@ static void save_keybinds_user(config_file_t *conf, unsigned user) */ void config_load(void) { - /* Flush out some states that could have been + /* Flush out some states that could have been * set by core environment variables */ core_unset_input_descriptors(); @@ -3442,7 +3443,7 @@ bool config_save_file(const char *path) #ifdef HAVE_MENU config_set_path(conf, "xmb_font", - !string_is_empty(settings->paths.path_menu_xmb_font) + !string_is_empty(settings->paths.path_menu_xmb_font) ? settings->paths.path_menu_xmb_font : ""); #endif @@ -3633,7 +3634,7 @@ bool config_save_overrides(int override_type) fill_pathname_application_special(config_directory, sizeof(config_directory), APPLICATION_SPECIAL_DIRECTORY_CONFIG); - fill_pathname_join(override_directory, config_directory, core_name, + fill_pathname_join(override_directory, config_directory, core_name, sizeof(override_directory)); if(!path_file_exists(override_directory)) @@ -3690,9 +3691,9 @@ bool config_save_overrides(int override_type) { if ((*bool_settings[i].ptr) != (*bool_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%d\n", + RARCH_LOG(" original: %s=%d\n", bool_settings[i].ident, (*bool_settings[i].ptr)); - RARCH_LOG(" override: %s=%d\n", + RARCH_LOG(" override: %s=%d\n", bool_overrides[i].ident, (*bool_overrides[i].ptr)); config_set_bool(conf, bool_overrides[i].ident, (*bool_overrides[i].ptr)); @@ -3702,9 +3703,9 @@ bool config_save_overrides(int override_type) { if ((*int_settings[i].ptr) != (*int_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%d\n", + RARCH_LOG(" original: %s=%d\n", int_settings[i].ident, (*int_settings[i].ptr)); - RARCH_LOG(" override: %s=%d\n", + RARCH_LOG(" override: %s=%d\n", int_overrides[i].ident, (*int_overrides[i].ptr)); config_set_int(conf, int_overrides[i].ident, (*int_overrides[i].ptr)); @@ -3714,9 +3715,9 @@ bool config_save_overrides(int override_type) { if ((*uint_settings[i].ptr) != (*uint_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%d\n", + RARCH_LOG(" original: %s=%d\n", uint_settings[i].ident, (*uint_settings[i].ptr)); - RARCH_LOG(" override: %s=%d\n", + RARCH_LOG(" override: %s=%d\n", uint_overrides[i].ident, (*uint_overrides[i].ptr)); config_set_int(conf, uint_overrides[i].ident, (*uint_overrides[i].ptr)); @@ -3726,9 +3727,9 @@ bool config_save_overrides(int override_type) { if ((*float_settings[i].ptr) != (*float_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%f\n", + RARCH_LOG(" original: %s=%f\n", float_settings[i].ident, *float_settings[i].ptr); - RARCH_LOG(" override: %s=%f\n", + RARCH_LOG(" override: %s=%f\n", float_overrides[i].ident, *float_overrides[i].ptr); config_set_float(conf, float_overrides[i].ident, *float_overrides[i].ptr); @@ -3739,9 +3740,9 @@ bool config_save_overrides(int override_type) { if (!string_is_equal(array_settings[i].ptr, array_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%s\n", + RARCH_LOG(" original: %s=%s\n", array_settings[i].ident, array_settings[i].ptr); - RARCH_LOG(" override: %s=%s\n", + RARCH_LOG(" override: %s=%s\n", array_overrides[i].ident, array_overrides[i].ptr); config_set_string(conf, array_overrides[i].ident, array_overrides[i].ptr); @@ -3752,9 +3753,9 @@ bool config_save_overrides(int override_type) { if (!string_is_equal(path_settings[i].ptr, path_overrides[i].ptr)) { - RARCH_LOG(" original: %s=%s\n", + RARCH_LOG(" original: %s=%s\n", path_settings[i].ident, path_settings[i].ptr); - RARCH_LOG(" override: %s=%s\n", + RARCH_LOG(" override: %s=%s\n", path_overrides[i].ident, path_overrides[i].ptr); config_set_path(conf, path_overrides[i].ident, path_overrides[i].ptr); diff --git a/configuration.h b/configuration.h index 8d20c8daaf..da3af60ba3 100644 --- a/configuration.h +++ b/configuration.h @@ -119,6 +119,7 @@ typedef struct settings bool menu_show_advanced_settings; bool menu_throttle_framerate; bool menu_linear_filter; + bool menu_horizontal_animation; bool menu_show_online_updater; bool menu_show_core_updater; bool menu_xmb_shadows_enable; diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h index 4fce47a371..ec290710c3 100644 --- a/intl/msg_hash_eo.h +++ b/intl/msg_hash_eo.h @@ -860,6 +860,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS, "Menu File Browser") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_LINEAR_FILTER, "Menu Linear Filter") +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION, + "Horizontal Animation") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SETTINGS, "Menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER, diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index 4838976479..4820ff6883 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -579,6 +579,8 @@ MSG_HASH(MENU_ENUM_LABEL_MENU_FILE_BROWSER_SETTINGS, "menu_file_browser_settings") MSG_HASH(MENU_ENUM_LABEL_MENU_LINEAR_FILTER, "menu_linear_filter") +MSG_HASH(MENU_ENUM_LABEL_MENU_HORIZONTAL_ANIMATION, + "menu_horizontal_animation") MSG_HASH(MENU_ENUM_LABEL_MENU_SETTINGS, "menu_settings") MSG_HASH(MENU_ENUM_LABEL_MENU_WALLPAPER, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 40e9c47eca..fb31a4cf16 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -953,6 +953,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS, "Settings") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_LINEAR_FILTER, "Menu Linear Filter") +MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION, + "Horizontal Animation") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SETTINGS, "Menu") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER, diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 1a99b9fe68..6bc8bef283 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1612,6 +1612,7 @@ static void xmb_list_switch(xmb_handle_t *xmb) int dir = -1; file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); size_t selection = menu_navigation_get_selection(); + settings_t *settings = config_get_ptr(); if (xmb->categories.selection_ptr > xmb->categories.selection_ptr_old) dir = 1; @@ -1636,8 +1637,11 @@ static void xmb_list_switch(xmb_handle_t *xmb) xmb_list_switch_old(xmb, xmb->selection_buf_old, dir, xmb->selection_ptr_old); - // TODO: Add toggle for settings. - //xmb_list_switch_new(xmb, selection_buf, dir, selection); + + // Check if we are to have horizontal animations. + if (settings->bools.menu_horizontal_animation) { + xmb_list_switch_new(xmb, selection_buf, dir, selection); + } xmb->categories.active.idx_old = (unsigned)xmb->categories.selection_ptr; if (!string_is_equal(xmb_thumbnails_ident(), @@ -3808,13 +3812,17 @@ static void xmb_list_cache(void *data, enum menu_list_type type, unsigned action file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); size_t selection = menu_navigation_get_selection(); + settings_t *settings = config_get_ptr(); if (!xmb) return; - // TODO: Add toggle for settings. - //xmb_list_deep_copy(selection_buf, xmb->selection_buf_old); - //xmb_list_deep_copy(menu_stack, xmb->menu_stack_old); + // Check whether to enable the horizontal animation. + if (settings->bools.menu_horizontal_animation) { + xmb_list_deep_copy(selection_buf, xmb->selection_buf_old); + xmb_list_deep_copy(menu_stack, xmb->menu_stack_old); + } + xmb->selection_ptr_old = selection; list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index abf2006c1c..3bae315569 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -297,7 +297,7 @@ static void print_buf_lines(file_list_t *list, char *buf, sizeof(core_path)); if ( - path_file_exists(core_path) + path_file_exists(core_path) && core_info_get_display_name( core_path, display_name, sizeof(display_name))) menu_entries_set_alt_at_offset(list, j, display_name); @@ -1843,7 +1843,7 @@ static int menu_displaylist_parse_database_entry(menu_displaylist_info_t *info) strlcpy(thumbnail_content, db_info_entry->name, sizeof(thumbnail_content)); if (!string_is_empty(thumbnail_content)) - menu_driver_set_thumbnail_content(thumbnail_content, sizeof(thumbnail_content)); + menu_driver_set_thumbnail_content(thumbnail_content, sizeof(thumbnail_content)); menu_driver_ctl(RARCH_MENU_CTL_UPDATE_THUMBNAIL_PATH, NULL); menu_driver_ctl(RARCH_MENU_CTL_UPDATE_THUMBNAIL_IMAGE, NULL); @@ -2945,7 +2945,7 @@ static int menu_displaylist_parse_horizontal_content_actions( else { const char *ext = NULL; - + if (!string_is_empty(entry_path)) ext = path_get_extension(entry_path); @@ -2963,8 +2963,8 @@ static int menu_displaylist_parse_horizontal_content_actions( msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RUN), msg_hash_to_str(MENU_ENUM_LABEL_RUN), MENU_ENUM_LABEL_RUN, FILE_TYPE_PLAYLIST_ENTRY, 0, idx); - - if (settings->bools.playlist_entry_remove) + + if (settings->bools.playlist_entry_remove) menu_entries_append_enum(info->list, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY), msg_hash_to_str(MENU_ENUM_LABEL_DELETE_ENTRY), @@ -4033,7 +4033,7 @@ bool menu_displaylist_process(menu_displaylist_info_t *info) MENU_SETTING_ACTION, 0, 0); } #endif - + if (info->push_builtin_cores) { #if defined(HAVE_VIDEO_PROCESSOR) @@ -4747,7 +4747,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) PARSE_ONLY_UINT, false); ret = menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_PLAYLIST_ENTRY_REMOVE, - PARSE_ONLY_BOOL, false); + PARSE_ONLY_BOOL, false); menu_displaylist_parse_playlist_associations(info); info->need_push = true; @@ -5048,6 +5048,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MENU_LINEAR_FILTER, PARSE_ONLY_BOOL, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_MENU_HORIZONTAL_ANIMATION, + PARSE_ONLY_BOOL, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND, PARSE_ONLY_BOOL, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index cff3ea5c4f..80a5b6ba92 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -140,10 +140,10 @@ static void setting_get_string_representation_uint_custom_viewport_width(void *d rarch_setting_t *setting = (rarch_setting_t*)data; if (!setting) return; - + av_info = video_viewport_get_system_av_info(); geom = (struct retro_game_geometry*)&av_info->geometry; - + if (*setting->value.target.unsigned_integer%geom->base_width == 0) snprintf(s, len, "%u (%ux)", *setting->value.target.unsigned_integer, @@ -161,10 +161,10 @@ static void setting_get_string_representation_uint_custom_viewport_height(void * rarch_setting_t *setting = (rarch_setting_t*)data; if (!setting) return; - + av_info = video_viewport_get_system_av_info(); geom = (struct retro_game_geometry*)&av_info->geometry; - + if (*setting->value.target.unsigned_integer%geom->base_height == 0) snprintf(s, len, "%u (%ux)", *setting->value.target.unsigned_integer, @@ -764,7 +764,7 @@ int menu_action_handle_setting(rarch_setting_t *setting, return -1; } -static rarch_setting_t *menu_setting_find_internal(rarch_setting_t *setting, +static rarch_setting_t *menu_setting_find_internal(rarch_setting_t *setting, const char *label) { uint32_t needle = msg_hash_calculate(label); @@ -794,7 +794,7 @@ static rarch_setting_t *menu_setting_find_internal(rarch_setting_t *setting, return NULL; } -static rarch_setting_t *menu_setting_find_internal_enum(rarch_setting_t *setting, +static rarch_setting_t *menu_setting_find_internal_enum(rarch_setting_t *setting, enum msg_hash_enums enum_idx) { rarch_setting_t **list = &setting; @@ -1051,7 +1051,7 @@ static int setting_action_start_libretro_device_type(void *data) if (system) { - /* Only push RETRO_DEVICE_ANALOG as default if we use an + /* Only push RETRO_DEVICE_ANALOG as default if we use an * older core which doesn't use SET_CONTROLLER_INFO. */ if (!system->ports.size) devices[types++] = RETRO_DEVICE_ANALOG; @@ -1155,7 +1155,7 @@ static int setting_action_left_libretro_device_type( if (system) { - /* Only push RETRO_DEVICE_ANALOG as default if we use an + /* Only push RETRO_DEVICE_ANALOG as default if we use an * older core which doesn't use SET_CONTROLLER_INFO. */ if (!system->ports.size) devices[types++] = RETRO_DEVICE_ANALOG; @@ -1220,7 +1220,7 @@ static int setting_action_right_libretro_device_type( if (system) { - /* Only push RETRO_DEVICE_ANALOG as default if we use an + /* Only push RETRO_DEVICE_ANALOG as default if we use an * older core which doesn't use SET_CONTROLLER_INFO. */ if (!system->ports.size) devices[types++] = RETRO_DEVICE_ANALOG; @@ -1391,7 +1391,7 @@ static int setting_action_ok_bind_defaults(void *data, bool wraparound) return -1; target = &input_config_binds[setting->index_offset][0]; - def_binds = (setting->index_offset) ? + def_binds = (setting->index_offset) ? retro_keybinds_rest : retro_keybinds_1; lim.min = MENU_SETTINGS_BIND_BEGIN; @@ -1506,7 +1506,7 @@ static void get_string_representation_bind_device(void * data, char *s, * Get associated label of a setting. **/ void menu_setting_get_label(void *data, char *s, - size_t len, unsigned *w, unsigned type, + size_t len, unsigned *w, unsigned type, const char *menu_label, const char *label, unsigned idx) { rarch_setting_t *setting = NULL; @@ -1636,7 +1636,7 @@ void general_write_handler(void *data) file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); info.list = menu_stack; - info.type = 0; + info.type = 0; info.directory_ptr = 0; strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_HELP), sizeof(info.label)); @@ -1697,14 +1697,14 @@ void general_write_handler(void *data) settings->uints.input_joypad_map[4] = *setting->value.target.integer; break; case MENU_ENUM_LABEL_LOG_VERBOSITY: - if (setting - && setting->value.target.boolean + if (setting + && setting->value.target.boolean && *setting->value.target.boolean) verbosity_enable(); else verbosity_disable(); - if (setting + if (setting && setting->value.target.boolean && *setting->value.target.boolean) retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_VERBOSITY, NULL); @@ -1752,7 +1752,7 @@ void general_write_handler(void *data) { #if defined(__CELLOS_LV2__) && (CELL_SDK_VERSION > 0x340000) cellSysutilEnableBgmPlayback(); -#endif +#endif } else { @@ -2032,7 +2032,7 @@ static bool setting_append_list_input_player_options( (*list)[list_info->index - 1].action_right = &setting_action_right_libretro_device_type; (*list)[list_info->index - 1].action_select = &setting_action_right_libretro_device_type; (*list)[list_info->index - 1].action_start = &setting_action_start_libretro_device_type; - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_libretro_device; menu_settings_list_current_add_enum_idx(list, list_info, (enum msg_hash_enums)(MENU_ENUM_LABEL_INPUT_LIBRETRO_DEVICE + user)); @@ -2053,7 +2053,7 @@ static bool setting_append_list_input_player_options( (*list)[list_info->index - 1].action_right = &setting_action_right_analog_dpad_mode; (*list)[list_info->index - 1].action_select = &setting_action_right_analog_dpad_mode; (*list)[list_info->index - 1].action_start = &setting_action_start_analog_dpad_mode; - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_analog_dpad_mode; menu_settings_list_current_add_enum_idx(list, list_info, (enum msg_hash_enums)(MENU_ENUM_LABEL_INPUT_PLAYER_ANALOG_DPAD_MODE + user)); @@ -2147,7 +2147,7 @@ static bool setting_append_list_input_player_options( ) { if (system->input_desc_btn[user][i]) - strlcat(label, + strlcat(label, system->input_desc_btn[user][i], sizeof(label)); else @@ -3017,7 +3017,7 @@ static bool setting_append_list( general_write_handler, general_read_handler); menu_settings_list_current_add_range(list, list_info, 0, 3, 1.0, true, true); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_libretro_log_level; settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED); @@ -3132,7 +3132,7 @@ static bool setting_append_list( menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_AUTOSAVE_INIT); menu_settings_list_current_add_range(list, list_info, 0, 0, 1, true, false); settings_data_list_current_add_flags(list, list_info, SD_FLAG_CMD_APPLY_AUTO); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_autosave_interval; #endif @@ -3259,7 +3259,7 @@ static bool setting_append_list( general_read_handler); menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT); menu_settings_list_current_add_range(list, list_info, 0, 1, 1, true, false); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_video_monitor_index; if (video_driver_has_windowed()) @@ -3357,7 +3357,7 @@ static bool setting_append_list( (*list)[list_info->index - 1].action_start = &setting_action_start_video_refresh_rate_auto; (*list)[list_info->index - 1].action_ok = &setting_action_ok_video_refresh_rate_auto; (*list)[list_info->index - 1].action_select = &setting_action_ok_video_refresh_rate_auto; - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_st_float_video_refresh_rate_auto; settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); @@ -3407,7 +3407,7 @@ static bool setting_append_list( true, true); settings_data_list_current_add_flags(list, list_info, SD_FLAG_CMD_APPLY_AUTO); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_aspect_ratio_index; CONFIG_FLOAT( @@ -3636,7 +3636,7 @@ static bool setting_append_list( general_write_handler, general_read_handler); menu_settings_list_current_add_range(list, list_info, 0, 3, 1, true, true); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_video_rotation; settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED); @@ -3981,7 +3981,7 @@ static bool setting_append_list( &settings->uints.audio_latency, MENU_ENUM_LABEL_AUDIO_LATENCY, MENU_ENUM_LABEL_VALUE_AUDIO_LATENCY, - g_defaults.settings.out_latency ? + g_defaults.settings.out_latency ? g_defaults.settings.out_latency : out_latency, &group_info, &subgroup_info, @@ -4656,7 +4656,7 @@ static bool setting_append_list( &retro_keybinds_1[i], &group_info, &subgroup_info, parent_group); (*list)[list_info->index - 1].bind_type = i + MENU_SETTINGS_BIND_BEGIN; - menu_settings_list_current_add_enum_idx(list, list_info, + menu_settings_list_current_add_enum_idx(list, list_info, (enum msg_hash_enums)(MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN + i)); } @@ -5052,6 +5052,22 @@ static bool setting_append_list( SD_FLAG_ADVANCED ); + CONFIG_BOOL( + list, list_info, + &settings->bools.menu_horizontal_animation, + MENU_ENUM_LABEL_MENU_HORIZONTAL_ANIMATION, + MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION, + true, + MENU_ENUM_LABEL_VALUE_OFF, + MENU_ENUM_LABEL_VALUE_ON, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler, + SD_FLAG_ADVANCED + ); + #ifdef RARCH_MOBILE /* We don't want mobile users being able to switch this off. */ (*list)[list_info->index - 1].action_left = NULL; @@ -5413,7 +5429,7 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE); settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); -#endif +#endif } #endif @@ -5801,7 +5817,7 @@ static bool setting_append_list( menu_settings_list_current_add_range(list, list_info, 0, 0, 1.0, true, false); END_SUB_GROUP(list, list_info, parent_group); - + START_SUB_GROUP(list, list_info, "Playlist", &group_info, &subgroup_info, parent_group); CONFIG_BOOL( @@ -5818,9 +5834,9 @@ static bool setting_append_list( general_write_handler, general_read_handler, SD_FLAG_NONE); - + END_SUB_GROUP(list, list_info, parent_group); - + END_GROUP(list, list_info, parent_group); break; case SETTINGS_LIST_CHEEVOS: @@ -5913,7 +5929,7 @@ static bool setting_append_list( sizeof(settings->paths.network_buildbot_url), MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL, MENU_ENUM_LABEL_VALUE_CORE_UPDATER_BUILDBOT_URL, - buildbot_server_url, + buildbot_server_url, &group_info, &subgroup_info, parent_group, @@ -5927,7 +5943,7 @@ static bool setting_append_list( sizeof(settings->paths.network_buildbot_assets_url), MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL, MENU_ENUM_LABEL_VALUE_BUILDBOT_ASSETS_URL, - buildbot_assets_server_url, + buildbot_assets_server_url, &group_info, &subgroup_info, parent_group, @@ -6445,7 +6461,7 @@ static bool setting_append_list( true, true); menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_REFRESH); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_uint_user_language; #endif @@ -6510,7 +6526,7 @@ static bool setting_append_list( parent_group, general_write_handler, general_read_handler); - (*list)[list_info->index - 1].get_string_representation = + (*list)[list_info->index - 1].get_string_representation = &setting_get_string_representation_cheevos_password; settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_INPUT); #endif @@ -6548,7 +6564,7 @@ static bool setting_append_list( sizeof(settings->paths.directory_core_assets), MENU_ENUM_LABEL_CORE_ASSETS_DIRECTORY, MENU_ENUM_LABEL_VALUE_CORE_ASSETS_DIRECTORY, - g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], + g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, &group_info, &subgroup_info, @@ -6592,7 +6608,7 @@ static bool setting_append_list( sizeof(settings->paths.directory_thumbnails), MENU_ENUM_LABEL_THUMBNAILS_DIRECTORY, MENU_ENUM_LABEL_VALUE_THUMBNAILS_DIRECTORY, - g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], + g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT, &group_info, &subgroup_info, @@ -7002,7 +7018,7 @@ static rarch_setting_t *menu_setting_new_internal(rarch_setting_info_t *list_inf { unsigned i; rarch_setting_t* resized_list = NULL; - enum settings_list_type list_types[] = + enum settings_list_type list_types[] = { SETTINGS_LIST_MAIN_MENU, SETTINGS_LIST_DRIVERS, diff --git a/msg_hash.h b/msg_hash.h index 95a1d7dea7..16d392fc21 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -664,6 +664,7 @@ enum msg_hash_enums MENU_LABEL(MOUSE_ENABLE), MENU_LABEL(POINTER_ENABLE), MENU_LABEL(MENU_LINEAR_FILTER), + MENU_LABEL(MENU_HORIZONTAL_ANIMATION), MENU_LABEL(NAVIGATION_WRAPAROUND), MENU_LABEL(SHOW_ADVANCED_SETTINGS), MENU_LABEL(THREADED_DATA_RUNLOOP_ENABLE),