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