]>
Commit | Line | Data |
---|---|---|
aef0361e MC |
1 | diff --git a/CMakeLists.txt b/CMakeLists.txt |
2 | index 11767a6..b8eed96 100644 | |
3 | --- a/CMakeLists.txt | |
4 | +++ b/CMakeLists.txt | |
5 | @@ -317,12 +317,21 @@ if(WIN32) | |
6 | list(APPEND PULSEVIEW_LINK_LIBS "-lqsvg") | |
7 | endif() | |
8 | ||
9 | +if(ANDROID) | |
10 | +add_library(${PROJECT_NAME} SHARED | |
11 | + ${pulseview_SOURCES} | |
12 | + ${pulseview_HEADERS_MOC} | |
13 | + ${pulseview_FORMS_HEADERS} | |
14 | + ${pulseview_RESOURCES_RCC} | |
15 | +) | |
16 | +else() | |
17 | add_executable(${PROJECT_NAME} | |
18 | ${pulseview_SOURCES} | |
19 | ${pulseview_HEADERS_MOC} | |
20 | ${pulseview_FORMS_HEADERS} | |
21 | ${pulseview_RESOURCES_RCC} | |
22 | ) | |
23 | +endif() | |
24 | ||
25 | target_link_libraries(${PROJECT_NAME} ${PULSEVIEW_LINK_LIBS}) | |
26 | ||
bdf42f4b MC |
27 | diff --git a/main.cpp b/main.cpp |
28 | index 2c6a59e..79627db 100644 | |
29 | --- a/main.cpp 2014-04-26 23:40:24.253187700 +0200 | |
30 | +++ b/main.cpp 2014-04-27 00:38:55.378353311 +0200 | |
31 | @@ -20,6 +20,9 @@ | |
32 | ||
33 | #ifdef ENABLE_DECODE | |
34 | #include <libsigrokdecode/libsigrokdecode.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */ | |
35 | +#ifdef ANDROID | |
36 | +#include <jni.h> | |
37 | +#endif | |
38 | #endif | |
39 | ||
40 | #include <stdint.h> | |
41 | @@ -45,6 +48,47 @@ | |
42 | Q_IMPORT_PLUGIN(qsvg) | |
43 | #endif | |
44 | ||
45 | +#if defined(ENABLE_DECODE) && defined(ANDROID) | |
46 | +jint JNI_OnLoad(JavaVM *vm, void *reserved) | |
47 | +{ | |
48 | + JNIEnv* env; | |
49 | + | |
50 | + (void)reserved; | |
51 | + | |
52 | + if (vm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) { | |
53 | + return -1; | |
54 | + } | |
55 | + | |
56 | + jclass envc = env->FindClass("org/sigrok/androidutils/Environment"); | |
57 | + jmethodID getEnv = env->GetStaticMethodID(envc, "getEnvironment", | |
58 | + "()[Ljava/lang/String;"); | |
59 | + jobjectArray envs = | |
60 | + (jobjectArray)env->CallStaticObjectMethod(envc, getEnv); | |
61 | + jsize i, envn = env->GetArrayLength(envs); | |
62 | + for (i=0; i<envn; i+=2) { | |
63 | + jstring key = (jstring)env->GetObjectArrayElement(envs, i); | |
64 | + jstring value = (jstring)env->GetObjectArrayElement(envs, i+1); | |
65 | + const char *utfkey = env->GetStringUTFChars(key, 0); | |
66 | + const char *utfvalue = env->GetStringUTFChars(value, 0); | |
67 | + setenv(utfkey, utfvalue, 1); | |
68 | + env->ReleaseStringUTFChars(value, utfvalue); | |
69 | + env->ReleaseStringUTFChars(key, utfkey); | |
70 | + env->DeleteLocalRef(value); | |
71 | + env->DeleteLocalRef(key); | |
72 | + } | |
73 | + env->DeleteLocalRef(envs); | |
74 | + env->DeleteLocalRef(envc); | |
75 | + | |
76 | + return JNI_VERSION_1_6; | |
77 | +} | |
78 | + | |
79 | +void JNI_OnUnload(JavaVM *vm, void *reserved) | |
80 | +{ | |
81 | + (void)vm; | |
82 | + (void)reserved; | |
83 | +} | |
84 | +#endif | |
85 | + | |
86 | void usage() | |
87 | { | |
88 | fprintf(stdout, |