1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-08 12:15:49 +00:00

Move retroarch.h dependencies out of core_info.c

This commit is contained in:
twinaphex 2018-04-10 04:00:01 +02:00
parent 00cc4ca7aa
commit 3016edce0a
4 changed files with 27 additions and 9 deletions

View File

@ -27,7 +27,6 @@
#include "config.h"
#endif
#include "retroarch.h"
#include "verbosity.h"
#include "config.def.h"
@ -515,7 +514,8 @@ static core_info_t *core_info_find_internal(
static bool core_info_list_update_missing_firmware_internal(
core_info_list_t *core_info_list,
const char *core,
const char *systemdir)
const char *systemdir,
bool *set_missing_bios)
{
size_t i;
core_info_t *info = NULL;
@ -532,7 +532,6 @@ static bool core_info_list_update_missing_firmware_internal(
path = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
path[0] = '\0';
rarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
for (i = 0; i < info->firmware_count; i++)
{
@ -544,7 +543,7 @@ static bool core_info_list_update_missing_firmware_internal(
info->firmware[i].missing = !filestream_exists(path);
if (info->firmware[i].missing && !info->firmware[i].optional)
{
rarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
*set_missing_bios = true;
RARCH_WARN("Firmware missing: %s\n", info->firmware[i].path);
}
}
@ -648,13 +647,15 @@ bool core_info_get_list(core_info_list_t **core)
return true;
}
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info)
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios)
{
if (!info)
return false;
return core_info_list_update_missing_firmware_internal(
core_info_curr_list,
info->path, info->directory.system);
info->path, info->directory.system,
set_missing_bios);
}
bool core_info_load(core_info_ctx_find_t *info)

View File

@ -113,7 +113,8 @@ bool core_info_init_list(const char *path_info, const char *dir_cores);
bool core_info_get_list(core_info_list_t **core);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios);
bool core_info_find(core_info_ctx_find_t *info, const char *name);

View File

@ -285,12 +285,21 @@ static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info)
if (core_info->firmware_count > 0)
{
core_info_ctx_firmware_t firmware_info;
bool update_missing_firmware = false;
bool set_missing_firmware = false;
settings_t *settings = config_get_ptr();
firmware_info.path = core_info->path;
firmware_info.directory.system = settings->paths.directory_system;
if (core_info_list_update_missing_firmware(&firmware_info))
rarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
update_missing_firmware = core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
if (set_missing_firmware)
rarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
if (update_missing_firmware)
{
fill_pathname_noext(tmp,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE),

View File

@ -1009,6 +1009,7 @@ static bool firmware_update_status(
content_information_ctx_t *content_ctx)
{
core_info_ctx_firmware_t firmware_info;
bool set_missing_firmware = false;
core_info_t *core_info = NULL;
size_t s_size = PATH_MAX_LENGTH * sizeof(char);
char *s = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
@ -1032,7 +1033,13 @@ static bool firmware_update_status(
RARCH_LOG("Updating firmware status for: %s on %s\n",
core_info->path,
firmware_info.directory.system);
core_info_list_update_missing_firmware(&firmware_info);
rarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
if (set_missing_firmware)
rarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
if(
content_ctx->bios_is_missing &&