Add RARCH_CMD_DRIVERS_DEINIT/RARCH_CMD_DRIVERS_INIT

This commit is contained in:
twinaphex 2014-10-03 12:40:41 +02:00
parent 2897e2f1fd
commit e7fed15250
2 changed files with 15 additions and 5 deletions

View File

@ -151,6 +151,8 @@ enum basic_event
RARCH_CMD_BSV_MOVIE_DEINIT, RARCH_CMD_BSV_MOVIE_DEINIT,
RARCH_CMD_COMMAND_INIT, RARCH_CMD_COMMAND_INIT,
RARCH_CMD_COMMAND_DEINIT, RARCH_CMD_COMMAND_DEINIT,
RARCH_CMD_DRIVERS_DEINIT,
RARCH_CMD_DRIVERS_INIT,
}; };
enum action_state enum action_state

View File

@ -2353,12 +2353,12 @@ static void main_clear_state(bool inited)
memset(&g_settings, 0, sizeof(g_settings)); memset(&g_settings, 0, sizeof(g_settings));
if (inited) if (inited)
uninit_drivers(); rarch_main_command(RARCH_CMD_DRIVERS_DEINIT);
main_clear_state_extern(); main_clear_state_extern();
if (inited) if (inited)
init_drivers(); rarch_main_command(RARCH_CMD_DRIVERS_INIT);
init_state(); init_state();
@ -2460,7 +2460,9 @@ static void deinit_core(void)
{ {
pretro_unload_game(); pretro_unload_game();
pretro_deinit(); pretro_deinit();
uninit_drivers();
rarch_main_command(RARCH_CMD_DRIVERS_DEINIT);
uninit_libretro_sym(); uninit_libretro_sym();
} }
@ -2528,8 +2530,8 @@ int rarch_main_init(int argc, char *argv[])
retro_init_libretro_cbs(&driver.retro_ctx); retro_init_libretro_cbs(&driver.retro_ctx);
init_system_av_info(); init_system_av_info();
init_drivers();
rarch_main_command(RARCH_CMD_DRIVERS_INIT);
rarch_main_command(RARCH_CMD_COMMAND_INIT); rarch_main_command(RARCH_CMD_COMMAND_INIT);
rarch_main_command(RARCH_CMD_REWIND_INIT); rarch_main_command(RARCH_CMD_REWIND_INIT);
rarch_main_command(RARCH_CMD_CONTROLLERS_INIT); rarch_main_command(RARCH_CMD_CONTROLLERS_INIT);
@ -3035,10 +3037,16 @@ void rarch_main_command(unsigned cmd)
g_settings.input.overlay_opacity); g_settings.input.overlay_opacity);
#endif #endif
break; break;
case RARCH_CMD_RESET_CONTEXT: case RARCH_CMD_DRIVERS_DEINIT:
uninit_drivers(); uninit_drivers();
break;
case RARCH_CMD_DRIVERS_INIT:
init_drivers(); init_drivers();
break; break;
case RARCH_CMD_RESET_CONTEXT:
rarch_main_command(RARCH_CMD_DRIVERS_DEINIT);
rarch_main_command(RARCH_CMD_DRIVERS_INIT);
break;
case RARCH_CMD_QUIT_RETROARCH: case RARCH_CMD_QUIT_RETROARCH:
rarch_main_set_state(RARCH_ACTION_STATE_FORCE_QUIT); rarch_main_set_state(RARCH_ACTION_STATE_FORCE_QUIT);
break; break;