X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-util.git;a=blobdiff_plain;f=cross-compile%2Fandroid%2Fpulseview-cpp.patch;h=14057048f9db9d3aceb37dc7b7ebf7f4c662fe0f;hp=496a3dd280c2e35ee315d05490a4533d0a556282;hb=bdf42f4b4dc9c46b1f8c9852694b43b5e9d52f7f;hpb=aef0361e598870a8e2a16ff568efbae3e1ad20b9 diff --git a/cross-compile/android/pulseview-cpp.patch b/cross-compile/android/pulseview-cpp.patch index 496a3dd..1405704 100644 --- a/cross-compile/android/pulseview-cpp.patch +++ b/cross-compile/android/pulseview-cpp.patch @@ -37,3 +37,65 @@ index e4f0276..861d25b 100644 0.0) + h; const QRectF rect(x - w / 2, y - h / 2, w, h); +diff --git a/main.cpp b/main.cpp +index 2c6a59e..79627db 100644 +--- a/main.cpp 2014-04-26 23:40:24.253187700 +0200 ++++ b/main.cpp 2014-04-27 00:38:55.378353311 +0200 +@@ -20,6 +20,9 @@ + + #ifdef ENABLE_DECODE + #include /* First, so we avoid a _POSIX_C_SOURCE warning. */ ++#ifdef ANDROID ++#include ++#endif + #endif + + #include +@@ -45,6 +48,47 @@ + Q_IMPORT_PLUGIN(qsvg) + #endif + ++#if defined(ENABLE_DECODE) && defined(ANDROID) ++jint JNI_OnLoad(JavaVM *vm, void *reserved) ++{ ++ JNIEnv* env; ++ ++ (void)reserved; ++ ++ if (vm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) { ++ return -1; ++ } ++ ++ jclass envc = env->FindClass("org/sigrok/androidutils/Environment"); ++ jmethodID getEnv = env->GetStaticMethodID(envc, "getEnvironment", ++ "()[Ljava/lang/String;"); ++ jobjectArray envs = ++ (jobjectArray)env->CallStaticObjectMethod(envc, getEnv); ++ jsize i, envn = env->GetArrayLength(envs); ++ for (i=0; iGetObjectArrayElement(envs, i); ++ jstring value = (jstring)env->GetObjectArrayElement(envs, i+1); ++ const char *utfkey = env->GetStringUTFChars(key, 0); ++ const char *utfvalue = env->GetStringUTFChars(value, 0); ++ setenv(utfkey, utfvalue, 1); ++ env->ReleaseStringUTFChars(value, utfvalue); ++ env->ReleaseStringUTFChars(key, utfkey); ++ env->DeleteLocalRef(value); ++ env->DeleteLocalRef(key); ++ } ++ env->DeleteLocalRef(envs); ++ env->DeleteLocalRef(envc); ++ ++ return JNI_VERSION_1_6; ++} ++ ++void JNI_OnUnload(JavaVM *vm, void *reserved) ++{ ++ (void)vm; ++ (void)reserved; ++} ++#endif ++ + void usage() + { + fprintf(stdout,