Start creating more CORE_CTL_ callbacks

This commit is contained in:
twinaphex 2016-01-27 03:35:52 +01:00
parent 489b578bf8
commit adcff5b6ec
3 changed files with 25 additions and 6 deletions

View File

@ -393,8 +393,8 @@ static void event_deinit_core(bool reinit)
#endif
event_deinit_core_interfaces();
core.retro_unload_game();
core.retro_deinit();
core_ctl(CORE_CTL_RETRO_UNLOAD_GAME, NULL);
core_ctl(CORE_CTL_RETRO_DEINIT, NULL);
if (reinit)
event_cmd_ctl(EVENT_CMD_DRIVERS_DEINIT, NULL);
@ -591,7 +591,7 @@ static bool event_init_core(void)
rarch_ctl(RARCH_CTL_SET_PATHS_REDIRECT, NULL);
rarch_ctl(RARCH_CTL_VERIFY_API_VERSION, NULL);
core.retro_init();
core_ctl(CORE_CTL_RETRO_INIT, NULL);
global->sram.use = rarch_ctl(RARCH_CTL_IS_PLAIN_CORE, NULL)
&& !content_ctl(CONTENT_CTL_DOES_NOT_NEED_CONTENT, NULL);
@ -1046,8 +1046,7 @@ bool event_cmd_ctl(enum event_command cmd, void *data)
#ifdef HAVE_CHEEVOS
cheevos_set_cheats();
#endif
core.retro_reset();
core_ctl(CORE_CTL_RETRO_RESET, NULL);
break;
case EVENT_CMD_SAVE_STATE:
if (settings->savestate_auto_index)

View File

@ -171,6 +171,18 @@ bool core_ctl(enum core_ctl_state state, void *data)
{
switch (state)
{
case CORE_CTL_RETRO_RESET:
core.retro_reset();
break;
case CORE_CTL_RETRO_INIT:
core.retro_init();
break;
case CORE_CTL_RETRO_DEINIT:
core.retro_deinit();
break;
case CORE_CTL_RETRO_UNLOAD_GAME:
core.retro_unload_game();
break;
case CORE_CTL_RETRO_RUN:
switch (core.poll_type)
{

View File

@ -50,7 +50,15 @@ enum core_ctl_state
CORE_CTL_SET_CBS_REWIND,
/* Runs the core for one frame. */
CORE_CTL_RETRO_RUN
CORE_CTL_RETRO_RUN,
CORE_CTL_RETRO_INIT,
CORE_CTL_RETRO_DEINIT,
CORE_CTL_RETRO_UNLOAD_GAME,
CORE_CTL_RETRO_RESET
};
typedef struct retro_callbacks