mirror of
https://github.com/libretro/RetroArch
synced 2025-04-09 21:45:45 +00:00
massive subsystem cleanup & use the proper data in each instance
This commit is contained in:
parent
cad5ae287f
commit
45228d0307
@ -521,15 +521,23 @@ static int action_bind_sublabel_subsystem_add(
|
|||||||
char *s, size_t len)
|
char *s, size_t len)
|
||||||
{
|
{
|
||||||
rarch_system_info_t *system = runloop_get_system_info();
|
rarch_system_info_t *system = runloop_get_system_info();
|
||||||
const struct retro_subsystem_info *subsystem = (system && subsystem_current_count > 0) ?
|
const struct retro_subsystem_info *subsystem;
|
||||||
subsystem_data + (type - MENU_SETTINGS_SUBSYSTEM_ADD) : NULL;
|
|
||||||
|
|
||||||
/* To-Do: localization & sublabels for pre-init case */
|
/* Core fully loaded, use the subsystem data */
|
||||||
if (subsystem_current_count > 0 && content_get_subsystem_rom_id() < subsystem->num_roms)
|
if (system->subsystem.data)
|
||||||
snprintf(s, len, " Current Content: %s",
|
subsystem = system->subsystem.data + (type - MENU_SETTINGS_SUBSYSTEM_ADD);
|
||||||
content_get_subsystem() == type - MENU_SETTINGS_SUBSYSTEM_ADD
|
/* Core not loaded completely, use the data we peeked on load core */
|
||||||
? subsystem->roms[content_get_subsystem_rom_id()].desc
|
else
|
||||||
: subsystem->roms[0].desc);
|
subsystem = subsystem_data + (type - MENU_SETTINGS_SUBSYSTEM_ADD);
|
||||||
|
|
||||||
|
if (subsystem && subsystem_current_count > 0)
|
||||||
|
{
|
||||||
|
if (content_get_subsystem_rom_id() < subsystem->num_roms)
|
||||||
|
snprintf(s, len, " Current Content: %s",
|
||||||
|
content_get_subsystem() == type - MENU_SETTINGS_SUBSYSTEM_ADD
|
||||||
|
? subsystem->roms[content_get_subsystem_rom_id()].desc
|
||||||
|
: subsystem->roms[0].desc);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -502,6 +502,7 @@ static int ozone_list_push(void *data, void *userdata,
|
|||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
core_info_list_t *list = NULL;
|
core_info_list_t *list = NULL;
|
||||||
menu_handle_t *menu = (menu_handle_t*)data;
|
menu_handle_t *menu = (menu_handle_t*)data;
|
||||||
|
const struct retro_subsystem_info* subsystem;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
@ -596,56 +597,14 @@ static int ozone_list_push(void *data, void *userdata,
|
|||||||
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
||||||
menu_displaylist_setting(&entry);
|
menu_displaylist_setting(&entry);
|
||||||
|
|
||||||
if (subsystem_current_count > 0)
|
/* Core fully loaded, use the subsystem data */
|
||||||
{
|
if (system->subsystem.data)
|
||||||
const struct retro_subsystem_info* subsystem = subsystem_data;
|
subsystem = system->subsystem.data;
|
||||||
for (i = 0; i < subsystem_current_count; i++, subsystem++)
|
/* Core not loaded completely, use the data we peeked on load core */
|
||||||
{
|
else
|
||||||
char s[PATH_MAX_LENGTH];
|
subsystem = subsystem_data;
|
||||||
if (content_get_subsystem() == i)
|
|
||||||
{
|
menu_subsystem_populate(subsystem, info);
|
||||||
if (content_get_subsystem_rom_id() < subsystem->num_roms)
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Load %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Start %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_LOAD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_LOAD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_LOAD, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Load %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
||||||
|
@ -5453,6 +5453,7 @@ static int xmb_list_push(void *data, void *userdata,
|
|||||||
unsigned i = 0;
|
unsigned i = 0;
|
||||||
core_info_list_t *list = NULL;
|
core_info_list_t *list = NULL;
|
||||||
menu_handle_t *menu = (menu_handle_t*)data;
|
menu_handle_t *menu = (menu_handle_t*)data;
|
||||||
|
const struct retro_subsystem_info* subsystem;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
@ -5548,56 +5549,14 @@ static int xmb_list_push(void *data, void *userdata,
|
|||||||
|
|
||||||
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
entry.enum_idx = MENU_ENUM_LABEL_LOAD_CONTENT_LIST;
|
||||||
menu_displaylist_setting(&entry);
|
menu_displaylist_setting(&entry);
|
||||||
if (subsystem_current_count > 0)
|
/* Core fully loaded, use the subsystem data */
|
||||||
{
|
if (system->subsystem.data)
|
||||||
const struct retro_subsystem_info* subsystem = subsystem_data;
|
subsystem = system->subsystem.data;
|
||||||
for (i = 0; i < subsystem_current_count; i++, subsystem++)
|
/* Core not loaded completely, use the data we peeked on load core */
|
||||||
{
|
else
|
||||||
char s[PATH_MAX_LENGTH];
|
subsystem = subsystem_data;
|
||||||
if (content_get_subsystem() == i)
|
|
||||||
{
|
menu_subsystem_populate(subsystem, info);
|
||||||
if (content_get_subsystem_rom_id() < subsystem->num_roms)
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Load %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Start %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_LOAD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_LOAD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_LOAD, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
snprintf(s, sizeof(s),
|
|
||||||
"Load %s %s",
|
|
||||||
subsystem->desc,
|
|
||||||
i == content_get_subsystem()
|
|
||||||
? "\u2605" : " ");
|
|
||||||
menu_entries_append_enum(info->list,
|
|
||||||
s,
|
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
|
||||||
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
|
||||||
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST;
|
||||||
|
@ -2654,3 +2654,57 @@ void hex32_to_rgba_normalized(uint32_t hex, float* rgba, float alpha)
|
|||||||
rgba[2] = rgba[6] = rgba[10] = rgba[14] = ((hex >> 0 ) & 0xFF) * (1.0f / 255.0f); /* b */
|
rgba[2] = rgba[6] = rgba[10] = rgba[14] = ((hex >> 0 ) & 0xFF) * (1.0f / 255.0f); /* b */
|
||||||
rgba[3] = rgba[7] = rgba[11] = rgba[15] = alpha;
|
rgba[3] = rgba[7] = rgba[11] = rgba[15] = alpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, menu_displaylist_info_t *info)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
if (subsystem && subsystem_current_count > 0)
|
||||||
|
{
|
||||||
|
for (i = 0; i < subsystem_current_count; i++, subsystem++)
|
||||||
|
{
|
||||||
|
char s[PATH_MAX_LENGTH];
|
||||||
|
if (content_get_subsystem() == i)
|
||||||
|
{
|
||||||
|
if (content_get_subsystem_rom_id() < subsystem->num_roms)
|
||||||
|
{
|
||||||
|
snprintf(s, sizeof(s),
|
||||||
|
"Load %s %s",
|
||||||
|
subsystem->desc,
|
||||||
|
i == content_get_subsystem()
|
||||||
|
? "\u2605" : " ");
|
||||||
|
menu_entries_append_enum(info->list,
|
||||||
|
s,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
||||||
|
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
||||||
|
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(s, sizeof(s),
|
||||||
|
"Start %s %s",
|
||||||
|
subsystem->desc,
|
||||||
|
i == content_get_subsystem()
|
||||||
|
? "\u2605" : " ");
|
||||||
|
menu_entries_append_enum(info->list,
|
||||||
|
s,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_LOAD),
|
||||||
|
MENU_ENUM_LABEL_SUBSYSTEM_LOAD,
|
||||||
|
MENU_SETTINGS_SUBSYSTEM_LOAD, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(s, sizeof(s),
|
||||||
|
"Load %s %s",
|
||||||
|
subsystem->desc,
|
||||||
|
i == content_get_subsystem()
|
||||||
|
? "\u2605" : " ");
|
||||||
|
menu_entries_append_enum(info->list,
|
||||||
|
s,
|
||||||
|
msg_hash_to_str(MENU_ENUM_LABEL_SUBSYSTEM_ADD),
|
||||||
|
MENU_ENUM_LABEL_SUBSYSTEM_ADD,
|
||||||
|
MENU_SETTINGS_SUBSYSTEM_ADD + i, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -844,6 +844,8 @@ void menu_driver_destroy(void);
|
|||||||
|
|
||||||
void hex32_to_rgba_normalized(uint32_t hex, float* rgba, float alpha);
|
void hex32_to_rgba_normalized(uint32_t hex, float* rgba, float alpha);
|
||||||
|
|
||||||
|
void menu_subsystem_populate(const struct retro_subsystem_info* subsystem, menu_displaylist_info_t *info);
|
||||||
|
|
||||||
extern uintptr_t menu_display_white_texture;
|
extern uintptr_t menu_display_white_texture;
|
||||||
|
|
||||||
extern menu_display_ctx_driver_t menu_display_ctx_gl;
|
extern menu_display_ctx_driver_t menu_display_ctx_gl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user