4 #include <android/log.h>
10 jobject *android_activity;
11 struct callback_list *android_activity_cbl;
15 android_find_class_global(char *name, jclass *ret)
17 *ret=(*jnienv)->FindClass(jnienv, name);
19 dbg(0,"Failed to get Class %s\n",name);
22 (*jnienv)->NewGlobalRef(jnienv, *ret);
27 android_find_method(jclass class, char *name, char *args, jmethodID *ret)
29 *ret = (*jnienv)->GetMethodID(jnienv, class, name, args);
31 dbg(0,"Failed to get Method %s with signature %s\n",name,args);
38 android_find_static_method(jclass class, char *name, char *args, jmethodID *ret)
40 *ret = (*jnienv)->GetStaticMethodID(jnienv, class, name, args);
42 dbg(0,"Failed to get static Method %s with signature %s\n",name,args);
48 JNIEXPORT void JNICALL
49 Java_org_navitproject_navit_Navit_NavitMain( JNIEnv* env, jobject thiz, jobject activity, jobject lang)
51 char *strings[]={"/data/data/org.navitproject.navit/bin/navit",NULL};
53 __android_log_print(ANDROID_LOG_ERROR,"test","called");
54 android_activity_cbl=callback_list_new();
56 android_activity=activity;
57 (*jnienv)->NewGlobalRef(jnienv, activity);
58 langstr=(*env)->GetStringUTFChars(env, lang, NULL);
59 dbg(0,"enter env=%p thiz=%p activity=%p lang=%s\n",env,thiz,activity,langstr);
60 setenv("LANG",langstr,1);
61 (*env)->ReleaseStringUTFChars(env, lang, langstr);
62 main_real(1, strings);
65 JNIEXPORT void JNICALL
66 Java_org_navitproject_navit_Navit_NavitActivity( JNIEnv* env, jobject thiz, int param)
68 dbg(0,"enter %d\n",param);
69 callback_list_call_1(android_activity_cbl, param);
72 JNIEXPORT void JNICALL
73 Java_org_navitproject_navit_NavitGraphics_SizeChangedCallback( JNIEnv* env, jobject thiz, int id, int w, int h)
75 dbg(0,"enter %p %d %d\n",(struct callback *)id,w,h);
77 callback_call_2((struct callback *)id,w,h);
80 JNIEXPORT void JNICALL
81 Java_org_navitproject_navit_NavitGraphics_ButtonCallback( JNIEnv* env, jobject thiz, int id, int pressed, int button, int x, int y)
83 dbg(1,"enter %p %d %d\n",(struct callback *)id,pressed,button);
85 callback_call_4((struct callback *)id,pressed,button,x,y);
88 JNIEXPORT void JNICALL
89 Java_org_navitproject_navit_NavitGraphics_MotionCallback( JNIEnv* env, jobject thiz, int id, int x, int y)
91 dbg(1,"enter %p %d %d\n",(struct callback *)id,x,y);
93 callback_call_2((struct callback *)id,x,y);
96 JNIEXPORT void JNICALL
97 Java_org_navitproject_navit_NavitGraphics_KeypressCallback( JNIEnv* env, jobject thiz, int id, jobject str)
100 dbg(0,"enter %p %p\n",(struct callback *)id,str);
101 s=(*env)->GetStringUTFChars(env, str, NULL);
104 callback_call_1((struct callback *)id,s);
105 (*env)->ReleaseStringUTFChars(env, str, s);
108 JNIEXPORT void JNICALL
109 Java_org_navitproject_navit_NavitTimeout_TimeoutCallback( JNIEnv* env, jobject thiz, int delete, int id)
111 dbg(1,"enter %p %d %p\n",thiz, delete, (void *)id);
112 callback_call_0((struct callback *)id);
114 (*jnienv)->DeleteGlobalRef(jnienv, thiz);
117 JNIEXPORT void JNICALL
118 Java_org_navitproject_navit_NavitVehicle_VehicleCallback( JNIEnv * env, jobject thiz, int id, jobject location)
120 callback_call_1((struct callback *)id, (void *)location);
123 JNIEXPORT void JNICALL
124 Java_org_navitproject_navit_NavitIdle_IdleCallback( JNIEnv* env, jobject thiz, int id)
126 dbg(1,"enter %p %p\n",thiz, (void *)id);
127 callback_call_0((struct callback *)id);
130 JNIEXPORT void JNICALL
131 Java_org_navitproject_navit_NavitWatch_poll( JNIEnv* env, jobject thiz, int fd, int cond)
135 dbg(1,"%p poll called for %d %d\n",env, fd, cond);
136 switch ((enum event_watch_cond)cond) {
137 case event_watch_cond_read:
140 case event_watch_cond_write:
143 case event_watch_cond_except:
153 JNIEXPORT void JNICALL
154 Java_org_navitproject_navit_NavitWatch_WatchCallback( JNIEnv* env, jobject thiz, int id)
156 dbg(1,"enter %p %p\n",thiz, (void *)id);
157 callback_call_0((struct callback *)id);
161 JNIEXPORT void JNICALL
162 Java_org_navitproject_navit_NavitSensors_SensorCallback( JNIEnv* env, jobject thiz, int id, int sensor, float x, float y, float z)
164 dbg(1,"enter %p %p %f %f %f\n",thiz, (void *)id,x,y,z);
165 callback_call_4((struct callback *)id, sensor, &x, &y, &z);