mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 06:44:27 +00:00
(Load Content -> Collection) Already loaded core will appear in
supported cores list as 'top core'/'current core'.
This commit is contained in:
parent
12cb854d4a
commit
d57083197e
@ -349,6 +349,8 @@ MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_DETECTED,
|
|||||||
"file_browser_core_detected")
|
"file_browser_core_detected")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION,
|
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION,
|
||||||
"file_browser_core_select_from_collection")
|
"file_browser_core_select_from_collection")
|
||||||
|
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE,
|
||||||
|
"file_browser_core_select_from_collection_current_core")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY,
|
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY,
|
||||||
"file_browser_directory")
|
"file_browser_directory")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_IMAGE,
|
MSG_HASH(MENU_ENUM_LABEL_FILE_BROWSER_IMAGE,
|
||||||
|
@ -1889,6 +1889,47 @@ static int action_ok_core_deferred_set(const char *path,
|
|||||||
return menu_cbs_exit();
|
return menu_cbs_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int action_ok_core_deferred_set_current_core(const char *path,
|
||||||
|
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||||
|
{
|
||||||
|
size_t selection;
|
||||||
|
char core_display_name[PATH_MAX_LENGTH];
|
||||||
|
const char *entry_path = NULL;
|
||||||
|
const char *entry_label = NULL;
|
||||||
|
const char *entry_crc32 = NULL;
|
||||||
|
const char *db_name = NULL;
|
||||||
|
playlist_t *playlist = NULL;
|
||||||
|
|
||||||
|
core_display_name[0] = '\0';
|
||||||
|
|
||||||
|
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
|
||||||
|
return menu_cbs_exit();
|
||||||
|
|
||||||
|
menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist);
|
||||||
|
|
||||||
|
retro_assert(playlist != NULL);
|
||||||
|
|
||||||
|
core_info_get_name(path, core_display_name, sizeof(core_display_name));
|
||||||
|
|
||||||
|
idx = rdb_entry_start_game_selection_ptr;
|
||||||
|
|
||||||
|
playlist_get_index(playlist, idx,
|
||||||
|
&entry_path, &entry_label, NULL, NULL, &entry_crc32, &db_name);
|
||||||
|
|
||||||
|
playlist_update(playlist, idx,
|
||||||
|
entry_path, entry_label,
|
||||||
|
path , core_display_name,
|
||||||
|
entry_crc32,
|
||||||
|
db_name);
|
||||||
|
|
||||||
|
playlist_write_file(playlist);
|
||||||
|
|
||||||
|
menu_entries_pop_stack(&selection, 0, 1);
|
||||||
|
menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_SELECTION, &selection);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int action_ok_deferred_list_stub(const char *path,
|
static int action_ok_deferred_list_stub(const char *path,
|
||||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||||
{
|
{
|
||||||
@ -3643,6 +3684,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
|
|||||||
case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION:
|
case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION:
|
||||||
BIND_ACTION_OK(cbs, action_ok_core_deferred_set);
|
BIND_ACTION_OK(cbs, action_ok_core_deferred_set);
|
||||||
break;
|
break;
|
||||||
|
case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE:
|
||||||
|
BIND_ACTION_OK(cbs, action_ok_core_deferred_set_current_core);
|
||||||
|
break;
|
||||||
case MENU_ENUM_LABEL_START_CORE:
|
case MENU_ENUM_LABEL_START_CORE:
|
||||||
BIND_ACTION_OK(cbs, action_ok_start_core);
|
BIND_ACTION_OK(cbs, action_ok_start_core);
|
||||||
break;
|
break;
|
||||||
|
@ -77,7 +77,9 @@
|
|||||||
#include "../tasks/tasks_internal.h"
|
#include "../tasks/tasks_internal.h"
|
||||||
|
|
||||||
static char new_path_entry[4096] = {0};
|
static char new_path_entry[4096] = {0};
|
||||||
|
static char new_lbl_entry[4096] = {0};
|
||||||
static char new_entry[4096] = {0};
|
static char new_entry[4096] = {0};
|
||||||
|
enum menu_displaylist_ctl_state new_type = 0;
|
||||||
|
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
static void print_buf_lines(file_list_t *list, char *buf,
|
static void print_buf_lines(file_list_t *list, char *buf,
|
||||||
@ -3869,12 +3871,14 @@ static bool menu_displaylist_push_list_process(menu_displaylist_info_t *info)
|
|||||||
{
|
{
|
||||||
menu_entries_prepend(info->list,
|
menu_entries_prepend(info->list,
|
||||||
new_path_entry,
|
new_path_entry,
|
||||||
new_entry,
|
new_lbl_entry,
|
||||||
MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE,
|
new_type,
|
||||||
FILE_TYPE_CORE, 0, 0);
|
FILE_TYPE_CORE, 0, 0);
|
||||||
menu_entries_set_alt_at_offset(info->list, 0,
|
menu_entries_set_alt_at_offset(info->list, 0,
|
||||||
new_entry);
|
new_entry);
|
||||||
|
|
||||||
|
new_type = 0;
|
||||||
|
new_lbl_entry[0] = '\0';
|
||||||
new_path_entry[0] = '\0';
|
new_path_entry[0] = '\0';
|
||||||
new_entry[0] = '\0';
|
new_entry[0] = '\0';
|
||||||
}
|
}
|
||||||
@ -5938,11 +5942,20 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
|||||||
for (i = 0; i < cores_names_size; i++)
|
for (i = 0; i < cores_names_size; i++)
|
||||||
{
|
{
|
||||||
if ( !path_is_empty(RARCH_PATH_CORE) &&
|
if ( !path_is_empty(RARCH_PATH_CORE) &&
|
||||||
string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE))
|
string_is_equal(cores_paths->elems[i].data, path_get(RARCH_PATH_CORE)))
|
||||||
&& type != DISPLAYLIST_CORES_COLLECTION_SUPPORTED)
|
|
||||||
{
|
{
|
||||||
strlcpy(new_path_entry, cores_paths->elems[i].data, sizeof(new_path_entry));
|
strlcpy(new_path_entry, cores_paths->elems[i].data, sizeof(new_path_entry));
|
||||||
snprintf(new_entry, sizeof(new_entry), "Current core (%s)", cores_names->elems[i].data);
|
snprintf(new_entry, sizeof(new_entry), "Current core (%s)", cores_names->elems[i].data);
|
||||||
|
if (type == DISPLAYLIST_CORES_COLLECTION_SUPPORTED)
|
||||||
|
{
|
||||||
|
new_lbl_entry[0] = '\0';
|
||||||
|
new_type = MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strlcpy(new_lbl_entry, cores_paths->elems[i].data, sizeof(new_lbl_entry));
|
||||||
|
new_type = MENU_ENUM_LABEL_DETECT_CORE_LIST_OK_CURRENT_CORE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -674,6 +674,7 @@ enum msg_hash_enums
|
|||||||
MENU_ENUM_LABEL_FILE_BROWSER_FONT,
|
MENU_ENUM_LABEL_FILE_BROWSER_FONT,
|
||||||
MENU_ENUM_LABEL_FILE_BROWSER_RDB,
|
MENU_ENUM_LABEL_FILE_BROWSER_RDB,
|
||||||
MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION,
|
MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION,
|
||||||
|
MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION_CURRENT_CORE,
|
||||||
MENU_ENUM_LABEL_FILE_BROWSER_CORE_DETECTED,
|
MENU_ENUM_LABEL_FILE_BROWSER_CORE_DETECTED,
|
||||||
MENU_ENUM_LABEL_FILE_BROWSER_IMAGE,
|
MENU_ENUM_LABEL_FILE_BROWSER_IMAGE,
|
||||||
MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER,
|
MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user