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
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)
{
return &g_extern;
@ -349,6 +327,29 @@ bool rarch_main_ctl(enum rarch_main_ctl_state state, void *data)
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:
{
bool *ptr = (bool*)data;
@ -566,10 +567,7 @@ static bool do_state_checks(driver_t *driver, settings_t *settings,
check_pause(driver, settings,
cmd->pause_pressed, cmd->frameadvance_pressed);
if (!do_pause_state_checks(
cmd->frameadvance_pressed,
cmd->fullscreen_toggle,
cmd->rewind_pressed))
if (!rarch_main_ctl(RARCH_MAIN_CTL_CHECK_PAUSE_STATE, &cmd))
return false;
check_fast_forward_button(driver,

View File

@ -51,7 +51,8 @@ enum rarch_main_ctl_state
/* Checks if movie is being recorded. */
RARCH_MAIN_CTL_CHECK_MOVIE_RECORD,
/* 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