]>
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 | ||
27 | diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp | |
28 | index e4f0276..861d25b 100644 | |
29 | --- a/pv/view/decodetrace.cpp | |
30 | +++ b/pv/view/decodetrace.cpp | |
31 | @@ -373,7 +373,7 @@ void DecodeTrace::draw_instant(const pv::data::decode::Annotation &a, QPainter & | |
32 | { | |
33 | const QString text = a.annotations().empty() ? | |
34 | QString() : a.annotations().back(); | |
35 | - const double w = min(p.boundingRect(QRectF(), 0, text).width(), | |
36 | + const double w = min((double)p.boundingRect(QRectF(), 0, text).width(), | |
37 | 0.0) + h; | |
38 | const QRectF rect(x - w / 2, y - h / 2, w, h); | |
39 | ||
bdf42f4b MC |
40 | diff --git a/main.cpp b/main.cpp |
41 | index 2c6a59e..79627db 100644 | |
42 | --- a/main.cpp 2014-04-26 23:40:24.253187700 +0200 | |
43 | +++ b/main.cpp 2014-04-27 00:38:55.378353311 +0200 | |
44 | @@ -20,6 +20,9 @@ | |
45 | ||
46 | #ifdef ENABLE_DECODE | |
47 | #include <libsigrokdecode/libsigrokdecode.h> /* First, so we avoid a _POSIX_C_SOURCE warning. */ | |
48 | +#ifdef ANDROID | |
49 | +#include <jni.h> | |
50 | +#endif | |
51 | #endif | |
52 | ||
53 | #include <stdint.h> | |
54 | @@ -45,6 +48,47 @@ | |
55 | Q_IMPORT_PLUGIN(qsvg) | |
56 | #endif | |
57 | ||
58 | +#if defined(ENABLE_DECODE) && defined(ANDROID) | |
59 | +jint JNI_OnLoad(JavaVM *vm, void *reserved) | |
60 | +{ | |
61 | + JNIEnv* env; | |
62 | + | |
63 | + (void)reserved; | |
64 | + | |
65 | + if (vm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) { | |
66 | + return -1; | |
67 | + } | |
68 | + | |
69 | + jclass envc = env->FindClass("org/sigrok/androidutils/Environment"); | |
70 | + jmethodID getEnv = env->GetStaticMethodID(envc, "getEnvironment", | |
71 | + "()[Ljava/lang/String;"); | |
72 | + jobjectArray envs = | |
73 | + (jobjectArray)env->CallStaticObjectMethod(envc, getEnv); | |
74 | + jsize i, envn = env->GetArrayLength(envs); | |
75 | + for (i=0; i<envn; i+=2) { | |
76 | + jstring key = (jstring)env->GetObjectArrayElement(envs, i); | |
77 | + jstring value = (jstring)env->GetObjectArrayElement(envs, i+1); | |
78 | + const char *utfkey = env->GetStringUTFChars(key, 0); | |
79 | + const char *utfvalue = env->GetStringUTFChars(value, 0); | |
80 | + setenv(utfkey, utfvalue, 1); | |
81 | + env->ReleaseStringUTFChars(value, utfvalue); | |
82 | + env->ReleaseStringUTFChars(key, utfkey); | |
83 | + env->DeleteLocalRef(value); | |
84 | + env->DeleteLocalRef(key); | |
85 | + } | |
86 | + env->DeleteLocalRef(envs); | |
87 | + env->DeleteLocalRef(envc); | |
88 | + | |
89 | + return JNI_VERSION_1_6; | |
90 | +} | |
91 | + | |
92 | +void JNI_OnUnload(JavaVM *vm, void *reserved) | |
93 | +{ | |
94 | + (void)vm; | |
95 | + (void)reserved; | |
96 | +} | |
97 | +#endif | |
98 | + | |
99 | void usage() | |
100 | { | |
101 | fprintf(stdout, |