Create RARCH_CMD_PAUSE_TOGGLE

This commit is contained in:
twinaphex 2014-10-08 16:12:00 +02:00
parent 35cda4b78b
commit b3309d2132
3 changed files with 23 additions and 18 deletions

View File

@ -134,6 +134,7 @@ enum basic_event
RARCH_CMD_RESTART_RETROARCH,
RARCH_CMD_QUIT_RETROARCH,
RARCH_CMD_RESUME,
RARCH_CMD_PAUSE_TOGGLE,
RARCH_CMD_MENU_SAVE_CONFIG,
RARCH_CMD_MENU_PAUSE_LIBRETRO,
RARCH_CMD_SHADERS_APPLY_CHANGES,

View File

@ -2313,7 +2313,7 @@ bool rarch_main_command(unsigned cmd)
"Audio muted." : "Audio unmuted.";
if (!driver.audio_data || !driver.audio_active)
return;
return false;
g_extern.audio_data.mute = !g_extern.audio_data.mute;
@ -2493,6 +2493,21 @@ bool rarch_main_command(unsigned cmd)
menu_shader_manager_apply_changes();
#endif
break;
case RARCH_CMD_PAUSE_TOGGLE:
if (g_extern.is_paused)
{
RARCH_LOG("Paused.\n");
rarch_main_command(RARCH_CMD_AUDIO_STOP);
if (g_settings.video.black_frame_insertion)
rarch_render_cached_frame();
}
else
{
RARCH_LOG("Unpaused.\n");
rarch_main_command(RARCH_CMD_AUDIO_START);
}
break;
case RARCH_CMD_MENU_PAUSE_LIBRETRO:
if (g_extern.is_menu)
{

View File

@ -66,7 +66,7 @@ static void check_netplay_flip(bool pressed, bool fullscreen_toggle_pressed)
}
#endif
static void check_pause(bool pressed, bool frameadvance_pressed)
static bool check_pause(bool pressed, bool frameadvance_pressed)
{
static bool old_focus = true;
bool focus = true;
@ -88,21 +88,9 @@ static void check_pause(bool pressed, bool frameadvance_pressed)
old_focus = focus;
if (g_extern.is_paused == old_is_paused)
return;
if (g_extern.is_paused)
{
RARCH_LOG("Paused.\n");
rarch_main_command(RARCH_CMD_AUDIO_STOP);
if (g_settings.video.black_frame_insertion)
rarch_render_cached_frame();
}
else
{
RARCH_LOG("Unpaused.\n");
rarch_main_command(RARCH_CMD_AUDIO_START);
}
return false;
return true;
}
/* Rewind buttons works like FRAMEREWIND when paused.
@ -426,7 +414,8 @@ static int do_state_checks(
return 0;
}
#endif
check_pause_func(trigger_input);
if (check_pause_func(trigger_input))
rarch_main_command(RARCH_CMD_PAUSE_TOGGLE);
if (g_extern.is_paused)
{