void States_FreezeCurrentSlot() { // FIXME : Use of the IsSavingOrLoading flag is mostly a hack until we implement a // complete thread to manage queuing savestate tasks, and zipping states to disk. --air if (!SysHasValidState()) { Console.WriteLn("Save state: Aborting (VM is not active)."); return; } if (wxGetApp().HasPendingSaves() || IsSavingOrLoading.exchange(true)) { Console.WriteLn("Load or save action is already pending."); return; } Sstates_updateLoadBackupMenuItem(true); GSchangeSaveState(StatesC, SaveStateBase::GetFilename(StatesC).ToUTF8()); StateCopy_SaveToSlot(StatesC); // Hack: Update the saveslot saying it's filled *right now* because it's still writing the file and we don't have a timestamp. saveslot_cache[StatesC].empty = false; saveslot_cache[StatesC].updated = wxDateTime::Now(); saveslot_cache[StatesC].crc = ElfCRC; GetSysExecutorThread().PostIdleEvent(SysExecEvent_ClearSavingLoadingFlag()); }
static void OnSlotChanged() { Console.Warning( " > Selected savestate slot %d", StatesC); if( GSchangeSaveState != NULL ) GSchangeSaveState(StatesC, SaveStateBase::GetFilename(StatesC).mb_str()); Sstates_updateLoadBackupMenuItem(); }
static void OnSlotChanged() { OSDlog( Color_StrongGreen, true, " > Selected savestate slot %d", StatesC ); if( GSchangeSaveState != NULL ) GSchangeSaveState(StatesC, SaveStateBase::GetFilename(StatesC).mb_str()); Sstates_updateLoadBackupMenuItem(); }
void _States_DefrostCurrentSlot( bool isFromBackup ) { if( !SysHasValidState() ) { Console.WriteLn( "Load state: Aborting (VM is not active)." ); return; } if( IsSavingOrLoading.exchange(true) ) { Console.WriteLn( "Load or save action is already pending." ); return; } GSchangeSaveState( StatesC, SaveStateBase::GetFilename( StatesC ).ToUTF8() ); StateCopy_LoadFromSlot( StatesC, isFromBackup ); GetSysExecutorThread().PostIdleEvent( SysExecEvent_ClearSavingLoadingFlag() ); Sstates_updateLoadBackupMenuItem(); }
void States_FreezeCurrentSlot() { // FIXME : Use of the IsSavingOrLoading flag is mostly a hack until we implement a // complete thread to manage queuing savestate tasks, and zipping states to disk. --air if( !SysHasValidState() ) { Console.WriteLn( "Save state: Aborting (VM is not active)." ); return; } if( wxGetApp().HasPendingSaves() || IsSavingOrLoading.exchange(true) ) { Console.WriteLn( "Load or save action is already pending." ); return; } Sstates_updateLoadBackupMenuItem( true ); GSchangeSaveState( StatesC, SaveStateBase::GetFilename( StatesC ).ToUTF8() ); StateCopy_SaveToSlot( StatesC ); GetSysExecutorThread().PostIdleEvent( SysExecEvent_ClearSavingLoadingFlag() ); }