(PS3/XDK) Better way to toggle frame advance

This commit is contained in:
twinaphex 2012-12-15 02:13:58 +01:00
parent 0261d934f2
commit 04674fbba7
5 changed files with 16 additions and 21 deletions

View File

@ -815,7 +815,10 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
break;
case MENU_ITEM_FRAME_ADVANCE:
if (g_extern.console.emulator_initialized)
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
rarch_settings_change(S_FRAME_ADVANCE);
}
break;
case MENU_ITEM_SCREENSHOT_MODE:
if (g_extern.console.rmenu.state.msg_info.enable)

View File

@ -2036,6 +2036,7 @@ static void ingame_menu(menu *current_menu, uint64_t input)
case MENU_ITEM_FRAME_ADVANCE:
if((input & (1ULL << RMENU_DEVICE_NAV_B)) || (input & (1ULL << RMENU_DEVICE_NAV_R2)) || (input & (1ULL << RMENU_DEVICE_NAV_L2)))
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
rarch_settings_change(S_FRAME_ADVANCE);
g_extern.console.rmenu.ingame_menu.idx = MENU_ITEM_FRAME_ADVANCE;
}

View File

@ -460,19 +460,7 @@ static bool ps3_input_key_pressed(void *data, int key)
if(g_extern.lifecycle_state & (1ULL << key))
return true;
switch (key)
{
case RARCH_FRAMEADVANCE:
if(g_extern.console.screen.state.frame_advance.enable)
{
g_extern.console.rmenu.state.rmenu.enable = true;
g_extern.console.rmenu.state.ingame_menu.enable = true;
g_extern.console.rmenu.mode = MODE_MENU;
}
return false;
default:
return false;
}
}
static void ps3_set_default_keybind_lut(unsigned device, unsigned port)

View File

@ -2821,6 +2821,17 @@ bool rarch_main_iterate(void)
}
#endif
#ifdef HAVE_RMENU
if (input_key_pressed_func(RARCH_FRAMEADVANCE))
{
g_extern.lifecycle_state &= ~(1ULL << RARCH_FRAMEADVANCE);
g_extern.console.rmenu.state.rmenu.enable = true;
g_extern.console.rmenu.state.ingame_menu.enable = true;
g_extern.console.rmenu.mode = MODE_MENU;
return false;
}
#endif
return true;
}

View File

@ -344,14 +344,6 @@ static bool xdk_input_key_pressed(void *data, int key)
return ((state[0] & XINPUT1_GAMEPAD_RSTICK_RIGHT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER));
case RARCH_STATE_SLOT_MINUS:
return ((state[0] & XINPUT1_GAMEPAD_RSTICK_LEFT_MASK) && (state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER));
case RARCH_FRAMEADVANCE:
if(g_extern.console.screen.state.frame_advance.enable)
{
g_extern.console.rmenu.state.rmenu.enable = true;
g_extern.console.rmenu.mode = MODE_MENU;
g_extern.console.rmenu.state.ingame_menu.enable = true;
}
return false;
case RARCH_REWIND:
return ((state[0] & XINPUT1_GAMEPAD_RSTICK_UP_MASK) && !(state[0] & XINPUT1_GAMEPAD_RIGHT_TRIGGER));
default: