Add RARCH_MAIN_CTL_CHECK_PAUSE

This commit is contained in:
twinaphex 2015-09-26 15:16:28 +02:00
parent fd4ce8659c
commit bae9abb525
2 changed files with 26 additions and 27 deletions

View File

@ -315,28 +315,6 @@ static void do_state_check_menu_toggle(settings_t *settings, global_t *global)
} }
#endif #endif
static bool do_pause_state_checks(
bool frameadvance_pressed,
bool fullscreen_toggle_pressed,
bool rewind_pressed)
{
bool check_is_oneshot = frameadvance_pressed || rewind_pressed;
if (!main_is_paused)
return true;
if (fullscreen_toggle_pressed)
{
event_command(EVENT_CMD_FULLSCREEN_TOGGLE);
video_driver_cached_frame();
}
if (!check_is_oneshot)
return false;
return true;
}
global_t *global_get_ptr(void) global_t *global_get_ptr(void)
{ {
return &g_extern; return &g_extern;
@ -349,6 +327,29 @@ bool rarch_main_ctl(enum rarch_main_ctl_state state, void *data)
switch (state) switch (state)
{ {
case RARCH_MAIN_CTL_CHECK_PAUSE_STATE:
{
bool check_is_oneshot;
event_cmd_state_t *cmd = (event_cmd_state_t*)data;
if (!cmd)
return false;
check_is_oneshot = cmd->frameadvance_pressed || cmd->rewind_pressed;
if (!main_is_paused)
return true;
if (cmd->fullscreen_toggle)
{
event_command(EVENT_CMD_FULLSCREEN_TOGGLE);
video_driver_cached_frame();
}
if (!check_is_oneshot)
return false;
}
return true;
case RARCH_MAIN_CTL_CHECK_SLOWMOTION: case RARCH_MAIN_CTL_CHECK_SLOWMOTION:
{ {
bool *ptr = (bool*)data; bool *ptr = (bool*)data;
@ -566,10 +567,7 @@ static bool do_state_checks(driver_t *driver, settings_t *settings,
check_pause(driver, settings, check_pause(driver, settings,
cmd->pause_pressed, cmd->frameadvance_pressed); cmd->pause_pressed, cmd->frameadvance_pressed);
if (!do_pause_state_checks( if (!rarch_main_ctl(RARCH_MAIN_CTL_CHECK_PAUSE_STATE, &cmd))
cmd->frameadvance_pressed,
cmd->fullscreen_toggle,
cmd->rewind_pressed))
return false; return false;
check_fast_forward_button(driver, check_fast_forward_button(driver,

View File

@ -51,7 +51,8 @@ enum rarch_main_ctl_state
/* Checks if movie is being recorded. */ /* Checks if movie is being recorded. */
RARCH_MAIN_CTL_CHECK_MOVIE_RECORD, RARCH_MAIN_CTL_CHECK_MOVIE_RECORD,
/* Checks if slowmotion toggle/hold was being pressed and/or held. */ /* Checks if slowmotion toggle/hold was being pressed and/or held. */
RARCH_MAIN_CTL_CHECK_SLOWMOTION RARCH_MAIN_CTL_CHECK_SLOWMOTION,
RARCH_MAIN_CTL_CHECK_PAUSE_STATE
}; };
typedef struct rarch_resolution typedef struct rarch_resolution