void AndroidEngine::loadState(Dictionary &dictionary) { JNIEnv *env; gJavaVM->GetEnv((void**)&env, JNI_VERSION_1_6); gJavaVM->AttachCurrentThread(&env, NULL); try { jmethodID jsettingKeys = env->GetStaticMethodID(gJGameUtil, "loadSettingKeys", "()[Ljava/lang/String;"); jmethodID jsettingVals = env->GetStaticMethodID(gJGameUtil, "loadSettingValues", "()[Ljava/lang/String;"); jobjectArray jKeys = (jobjectArray) env->CallStaticObjectMethod(gJGameUtil, jsettingKeys); jobjectArray jVals = (jobjectArray) env->CallStaticObjectMethod(gJGameUtil, jsettingVals); int N1 = env->GetArrayLength(jKeys); int N2 = env->GetArrayLength(jVals); int N = N1 <= N2 ? N1 : N2; for(jsize i = 0; i < N; ++i ) { jstring js1 = (jstring) env->GetObjectArrayElement(jKeys, i); jstring js2 = (jstring) env->GetObjectArrayElement(jVals, i); dictionary[GetJStringContent(env, js1)] = GetJStringContent(env, js2); } } catch(...) { } gJavaVM->DetachCurrentThread(); }
void Java_com_ruin_psp_PSP_saveSaveState (JNIEnv *env, jclass clazz, jstring filename) { std::string str; GetJStringContent(env,filename,str); SaveState::Save(str, [](bool status, const std::string &message, void *) { if(!message.empty()) { puts(message.c_str()); } }); }
/* * Class: com_prouast_heartbeat_RPPG * Method: _load * Signature: (JLcom/prouast/heartbeat/RPPG/RPPGListener;IIIDIDDIILjava/lang/String;Ljava/lang/String;ZZ)V */ JNIEXPORT void JNICALL Java_com_prouast_heartbeat_RPPG__1load (JNIEnv *jenv, jclass, jlong self, jobject jlistener, jint jalgorithm, jint jwidth, jint jheight, jdouble jtimeBase, jint jdownsample, jdouble jsamplingFrequency, jdouble jrescanFrequency, jint jminSignalSize, jint jmaxSignalSize, jstring jlogPath, jstring jclassifierPath, jboolean jlog, jboolean jgui) { LOGD("Java_com_prouast_heartbeat_RPPG__1load enter"); bool log = jlog; bool gui = jgui; std::string logPath, classifierPath; try { GetJStringContent(jenv, jlogPath, logPath); GetJStringContent(jenv, jclassifierPath, classifierPath); ((RPPG *)self)->load(jlistener, jenv, jalgorithm, jwidth, jheight, jtimeBase, jdownsample, jsamplingFrequency, jrescanFrequency, jminSignalSize, jmaxSignalSize, logPath, classifierPath, log, gui); } catch (...) { jclass je = jenv->FindClass("java/lang/Exception"); jenv->ThrowNew(je, "Unknown exception in JNI code."); } LOGD("Java_com_prouast_heartbeat_RPPG__1load exit"); }