Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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");
}