Replace more driver->frontend instances

This commit is contained in:
twinaphex 2015-12-05 08:36:16 +01:00
parent 5ed7c3abed
commit f16fc89b1b
3 changed files with 39 additions and 11 deletions

View File

@ -267,15 +267,7 @@ int rarch_main(int argc, char *argv[], void *data)
driver = driver_get_ptr();
if (driver)
driver->frontend_ctx = (frontend_ctx_driver_t*)frontend_ctx_init_first();
if (!driver || !driver->frontend_ctx)
RARCH_WARN("Frontend context could not be initialized.\n");
if (driver->frontend_ctx && driver->frontend_ctx->init)
driver->frontend_ctx->init(args);
frontend_driver_init_first(args);
rarch_main_new();
#ifdef HAVE_THREADS
@ -283,10 +275,10 @@ int rarch_main(int argc, char *argv[], void *data)
global->async_jobs = async_job_new();
#endif
if (driver->frontend_ctx)
if (frontend_driver_is_inited())
{
if (!(ret = (main_load_content(argc, argv, args,
driver->frontend_ctx->environment_get))))
frontend_driver_environment_get_ptr()))))
return ret;
}

View File

@ -19,6 +19,7 @@
#include "frontend_driver.h"
#ifndef IS_SALAMANDER
#include "../driver.h"
#include "../verbosity.h"
#endif
#ifdef HAVE_CONFIG_H
@ -146,4 +147,33 @@ void frontend_driver_process_args(int *argc, char *argv[])
return;
frontend->process_args(argc, argv);
}
bool frontend_driver_is_inited(void)
{
driver_t *driver = driver_get_ptr();
if (!driver->frontend_ctx)
return false;
return true;
}
void frontend_driver_init_first(void *args)
{
driver_t *driver = driver_get_ptr();
if (driver)
driver->frontend_ctx = (frontend_ctx_driver_t*)frontend_ctx_init_first();
if (!driver || !driver->frontend_ctx)
RARCH_WARN("Frontend context could not be initialized.\n");
if (driver->frontend_ctx && driver->frontend_ctx->init)
driver->frontend_ctx->init(args);
}
environment_get_t frontend_driver_environment_get_ptr(void)
{
driver_t *driver = driver_get_ptr();
if (!driver || !driver->frontend_ctx)
return NULL;
return driver->frontend_ctx->environment_get;
}
#endif

View File

@ -118,6 +118,12 @@ void frontend_driver_set_fork(bool a, bool b);
void frontend_driver_process_args(int *argc, char *argv[]);
bool frontend_driver_is_inited(void);
void frontend_driver_init_first(void *args);
environment_get_t frontend_driver_environment_get_ptr(void);
#ifdef __cplusplus
}
#endif