Don't use menu_driver_get_ptr outside of menu/ files at all

This commit is contained in:
twinaphex 2015-12-07 16:11:53 +01:00
parent c1c0870328
commit 6664bf2522
4 changed files with 26 additions and 20 deletions

View File

@ -981,10 +981,9 @@ bool event_command(enum event_command cmd)
event_command(EVENT_CMD_LOAD_CORE_DEINIT);
{
#ifdef HAVE_MENU
menu_handle_t *menu = menu_driver_get_ptr();
if (menu)
event_update_system_info(&g_system_menu,
&menu->load_no_content);
bool *ptr = NULL;
if (menu_driver_ctl(RARCH_MENU_CTL_LOAD_NO_CONTENT_GET, &ptr))
event_update_system_info(&g_system_menu, ptr);
#endif
}
break;

View File

@ -657,7 +657,7 @@ static int generic_action_ok(const char *path,
#if defined(HAVE_DYNAMIC)
/* No content needed for this core, load core immediately. */
if (menu->load_no_content && settings->core.set_supports_no_game_enable)
if (menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL) && settings->core.set_supports_no_game_enable)
{
runloop_ctl(RUNLOOP_CTL_CLEAR_CONTENT_PATH, NULL);
ret = menu_common_load_content(NULL, NULL, false, CORE_TYPE_PLAIN);

View File

@ -366,17 +366,16 @@ static void menu_environment_get(int *argc, char *argv[],
void *args, void *params_data)
{
struct rarch_main_wrap *wrap_args = (struct rarch_main_wrap*)params_data;
char *fullpath = NULL;
global_t *global = global_get_ptr();
settings_t *settings = config_get_ptr();
menu_handle_t *menu = menu_driver_get_ptr();
char *fullpath = NULL;
if (!wrap_args)
return;
runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath);
wrap_args->no_content = menu->load_no_content;
wrap_args->no_content = menu_driver_ctl(RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT, NULL);
if (!global->has_set.verbosity)
wrap_args->verbose = *retro_main_verbosity();
@ -430,7 +429,6 @@ static void menu_push_to_history_playlist(void)
bool menu_load_content(enum rarch_core_type type)
{
bool msg_force = true;
menu_handle_t *menu = menu_driver_get_ptr();
char *fullpath = NULL;
runloop_ctl(RUNLOOP_CTL_GET_CONTENT_PATH, &fullpath);
@ -450,11 +448,11 @@ bool menu_load_content(enum rarch_core_type type)
return false;
}
menu_shader_manager_init(menu);
menu_shader_manager_init(menu_driver_get_ptr());
event_command(EVENT_CMD_HISTORY_INIT);
if (*fullpath || (menu && menu->load_no_content))
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);
@ -629,14 +627,15 @@ error:
bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
{
static bool menu_driver_load_no_content = false;
static bool menu_driver_alive = false;
static bool menu_driver_data_own = false;
const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr();
menu_handle_t *menu = menu_driver_get_ptr();
switch (state)
{
case RARCH_MENU_CTL_DESTROY:
menu_driver_load_no_content = false;
menu_driver_alive = false;
menu_driver_data_own = false;
menu_driver_ctx = NULL;
@ -681,13 +680,22 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
menu_free(menu_driver_data);
menu_driver_data = NULL;
break;
case RARCH_MENU_CTL_LOAD_NO_CONTENT_GET:
{
bool **ptr = (bool**)data;
if (!ptr)
return false;
*ptr = (bool*)&menu_driver_load_no_content;
return true;
}
break;
case RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT:
return menu->load_no_content;
return menu_driver_load_no_content;
case RARCH_MENU_CTL_SET_LOAD_NO_CONTENT:
menu->load_no_content = true;
menu_driver_load_no_content = true;
break;
case RARCH_MENU_CTL_UNSET_LOAD_NO_CONTENT:
menu->load_no_content = false;
menu_driver_load_no_content = false;
break;
default:
case RARCH_MENU_CTL_NONE:

View File

@ -107,6 +107,7 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_SET_OWN_DRIVER,
RARCH_MENU_CTL_UNSET_OWN_DRIVER,
RARCH_MENU_CTL_OWNS_DRIVER,
RARCH_MENU_CTL_LOAD_NO_CONTENT_GET,
RARCH_MENU_CTL_HAS_LOAD_NO_CONTENT,
RARCH_MENU_CTL_SET_LOAD_NO_CONTENT,
RARCH_MENU_CTL_UNSET_LOAD_NO_CONTENT
@ -237,8 +238,6 @@ typedef struct
char msg[PATH_MAX_LENGTH];
} menu_state;
bool load_no_content;
/* Menu shader */
char default_glslp[PATH_MAX_LENGTH];
char default_cgp[PATH_MAX_LENGTH];