1 #include <clpeak.h>
2 #include <jni_entry.h>
3
4 #define PRINT_CALLBACK "print_callback_from_c"
5
Java_kr_clpeak_jni_1connect_launchClpeak(JNIEnv * _jniEnv,jobject _jObject,jint argc,jobjectArray _argv)6 jint JNICALL Java_kr_clpeak_jni_1connect_launchClpeak(JNIEnv *_jniEnv,
7 jobject _jObject, jint argc, jobjectArray _argv)
8 {
9 char **argv;
10 clPeak clObj;
11
12 argv = (char **)malloc(sizeof(char *) * argc);
13
14 // Convert jobjectArray to string array
15 for (int i = 0; i < argc; i++)
16 {
17 jstring strObj = (jstring)_jniEnv->GetObjectArrayElement(_argv, i);
18 argv[i] = (char *)_jniEnv->GetStringUTFChars(strObj, 0);
19 }
20 clObj.parseArgs(argc, argv);
21
22 if (argv)
23 {
24 free(argv);
25 }
26
27 clObj.log->jEnv = _jniEnv;
28 clObj.log->jObj = &(_jObject);
29 clObj.log->printCallback = _jniEnv->GetMethodID(_jniEnv->GetObjectClass(_jObject),
30 PRINT_CALLBACK, "(Ljava/lang/String;)V");
31
32 return clObj.runAll();
33 }
34
Java_kr_clpeak_MainActivity_setenv(JNIEnv * jniEnv,jobject _jObj,jstring key,jstring value)35 void Java_kr_clpeak_MainActivity_setenv(JNIEnv *jniEnv,
36 jobject _jObj, jstring key, jstring value)
37 {
38 setenv((char *)jniEnv->GetStringUTFChars(key, 0),
39 (char *)jniEnv->GetStringUTFChars(value, 0), 1);
40 }
41