mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 06:44:27 +00:00
Add RARCH_MAIN_CTL_CHECK_PAUSE
This commit is contained in:
parent
fd4ce8659c
commit
bae9abb525
50
runloop.c
50
runloop.c
@ -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,
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user