static void menu_content_push_to_history_playlist(void) { struct retro_system_info *system = NULL; settings_t *settings = config_get_ptr(); char *fullpath = NULL; if (!settings->history_list_enable) return; runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath); if (*fullpath) { char tmp[PATH_MAX_LENGTH]; char str[PATH_MAX_LENGTH]; fill_pathname_base(tmp, fullpath, sizeof(tmp)); snprintf(str, sizeof(str), "INFO - Loading %s ...", tmp); menu_display_msg_queue_push(str, 1, 1, false); } menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET, &system); content_playlist_push(g_defaults.history, fullpath, NULL, settings->libretro, system->library_name, NULL, NULL); content_playlist_write_file(g_defaults.history); }
/** * menu_load_content: * * Loads content into currently selected core. * Will also optionally push the content entry to the history playlist. * * Returns: true (1) if successful, otherwise false (0). **/ bool menu_load_content(enum rarch_core_type type) { bool msg_force = true; char *fullpath = NULL; runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath); /* redraw menu frame */ menu_display_ctl(MENU_DISPLAY_CTL_SET_MSG_FORCE, &msg_force); menu_iterate_render(); if (!(main_load_content(0, NULL, NULL, menu_environment_get))) { char name[PATH_MAX_LENGTH] = {0}; char msg[PATH_MAX_LENGTH] = {0}; fill_pathname_base(name, fullpath, sizeof(name)); snprintf(msg, sizeof(msg), "Failed to load %s.\n", name); menu_display_msg_queue_push(msg, 1, 90, false); return false; } menu_shader_manager_init(menu_driver_get_ptr()); event_command(EVENT_CMD_HISTORY_INIT); if (*fullpath || menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL)) menu_push_to_history_playlist(); event_command(EVENT_CMD_VIDEO_SET_ASPECT_RATIO); event_command(EVENT_CMD_RESUME); return true; }
bool menu_content_load(void) { bool msg_force = true; char *fullpath = NULL; runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath); /* redraw menu frame */ menu_display_ctl(MENU_DISPLAY_CTL_SET_MSG_FORCE, &msg_force); menu_driver_ctl(RARCH_MENU_CTL_RENDER, NULL); if (!(main_load_content(0, NULL, NULL, menu_content_environment_get))) { char name[PATH_MAX_LENGTH]; char msg[PATH_MAX_LENGTH]; fill_pathname_base(name, fullpath, sizeof(name)); snprintf(msg, sizeof(msg), "Failed to load %s.\n", name); menu_display_msg_queue_push(msg, 1, 90, false); return false; } menu_driver_ctl(RARCH_MENU_CTL_SHADER_MANAGER_INIT, NULL); event_cmd_ctl(EVENT_CMD_HISTORY_INIT, NULL); if (*fullpath || menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL)) menu_content_push_to_history_playlist(); event_cmd_ctl(EVENT_CMD_VIDEO_SET_ASPECT_RATIO, NULL); event_cmd_ctl(EVENT_CMD_RESUME, NULL); return true; }
static void menu_push_to_history_playlist(void) { settings_t *settings = config_get_ptr(); char *fullpath = NULL; if (!settings->history_list_enable) return; runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath); if (*fullpath) { char tmp[PATH_MAX_LENGTH]; char str[PATH_MAX_LENGTH]; fill_pathname_base(tmp, fullpath, sizeof(tmp)); snprintf(str, sizeof(str), "INFO - Loading %s ...", tmp); menu_display_msg_queue_push(str, 1, 1, false); } content_playlist_push(g_defaults.history, fullpath, NULL, settings->libretro, g_system_menu.library_name, NULL, NULL); }