extern "C" JNIEXPORT void JNICALL Java_com_virtualapplications_play_NativeInterop_loadState(JNIEnv* env, jobject obj, jint slot) { assert(g_virtualMachine != nullptr); if(g_virtualMachine == nullptr) return; auto stateFilePath = GenerateStatePath(slot); if(g_virtualMachine->LoadState(stateFilePath.string().c_str()) != 0) { jclass exceptionClass = env->FindClass("java/lang/Exception"); env->ThrowNew(exceptionClass, "LoadState failed."); return; } }
extern "C" JNIEXPORT void JNICALL Java_com_virtualapplications_play_NativeInterop_saveState(JNIEnv* env, jobject obj, jint slot) { assert(g_virtualMachine != nullptr); if(g_virtualMachine == nullptr) return; Framework::PathUtils::EnsurePathExists(GetStateDirectoryPath()); auto stateFilePath = GenerateStatePath(slot); if(g_virtualMachine->SaveState(stateFilePath.string().c_str()) != 0) { jclass exceptionClass = env->FindClass("java/lang/Exception"); env->ThrowNew(exceptionClass, "SaveState failed."); return; } }
void CMainWindow::LoadState() { if(m_virtualMachine.m_os->GetELF() == nullptr) return; if(m_virtualMachine.LoadState(GenerateStatePath().string().c_str()) == 0) { PrintStatusTextA("Loaded state from slot %i.", m_stateSlot); } else { PrintStatusTextA("Error loading state from slot %i.", m_stateSlot); } }
void CMainWindow::SaveState() { if(m_virtualMachine.m_os->GetELF() == nullptr) return; Framework::PathUtils::EnsurePathExists(GetStateDirectoryPath()); if(m_virtualMachine.SaveState(GenerateStatePath().string().c_str()) == 0) { PrintStatusTextA("Saved state to slot %i.", m_stateSlot); } else { PrintStatusTextA("Error saving state to slot %i.", m_stateSlot); } }