Add RARCH_CMD_RUMBLE_STOP

This commit is contained in:
twinaphex 2014-10-03 19:16:33 +02:00
parent b7d47f3df9
commit 4cccfe9c4b
2 changed files with 27 additions and 25 deletions

View File

@ -158,6 +158,7 @@ enum basic_event
RARCH_CMD_LOG_FILE_DEINIT,
RARCH_CMD_DISK_EJECT_TOGGLE,
RARCH_CMD_DISK_NEXT,
RARCH_CMD_RUMBLE_STOP,
};
enum action_state

View File

@ -2559,36 +2559,27 @@ void rarch_main_set_state(unsigned cmd)
switch (cmd)
{
case RARCH_ACTION_STATE_MENU_RUNNING:
{
int i;
/* Menu should always run with vsync on. */
rarch_main_command(RARCH_CMD_VIDEO_SET_BLOCKING_STATE);
/* Stop all rumbling before entering the menu. */
rarch_main_command(RARCH_CMD_RUMBLE_STOP);
/* Menu should always run with vsync on. */
rarch_main_command(RARCH_CMD_VIDEO_SET_BLOCKING_STATE);
/* Stop all rumbling before entering the menu. */
for (i = 0; i < MAX_PLAYERS; i++)
{
driver_set_rumble_state(i, RETRO_RUMBLE_STRONG, 0);
driver_set_rumble_state(i, RETRO_RUMBLE_WEAK, 0);
}
if (g_settings.menu.pause_libretro)
rarch_main_command(RARCH_CMD_AUDIO_STOP);
if (g_settings.menu.pause_libretro)
rarch_main_command(RARCH_CMD_AUDIO_STOP);
#ifdef HAVE_MENU
if (driver.menu)
{
/* Override keyboard callback to redirect to menu instead.
* We'll use this later for something ...
* FIXME: This should probably be moved to menu_common somehow. */
g_extern.frontend_key_event = g_extern.system.key_event;
g_extern.system.key_event = menu_key_event;
if (driver.menu)
{
/* Override keyboard callback to redirect to menu instead.
* We'll use this later for something ...
* FIXME: This should probably be moved to menu_common somehow. */
g_extern.frontend_key_event = g_extern.system.key_event;
g_extern.system.key_event = menu_key_event;
driver.menu->need_refresh = true;
}
#endif
g_extern.system.frame_time_last = 0;
driver.menu->need_refresh = true;
}
#endif
g_extern.system.frame_time_last = 0;
g_extern.is_menu = true;
break;
case RARCH_ACTION_STATE_LOAD_CONTENT:
@ -3179,6 +3170,16 @@ void rarch_main_command(unsigned cmd)
check_disk_next(control);
}
break;
case RARCH_CMD_RUMBLE_STOP:
{
int i;
for (i = 0; i < MAX_PLAYERS; i++)
{
driver_set_rumble_state(i, RETRO_RUMBLE_STRONG, 0);
driver_set_rumble_state(i, RETRO_RUMBLE_WEAK, 0);
}
}
break;
}
}