@@ -38,6 +38,7 @@ JavaVM * jvm = NULL;
3838jobject trackObj_ms = NULL ;
3939HINSTANCE hLib;
4040jmethodID processData = NULL ;
41+ int dllAvailable = 0 ;
4142
4243
4344extern " C"
@@ -222,11 +223,12 @@ int start_TrackIR() {
222223 result = (*stopCursor)();
223224 printf (" C++: TrackIR Brigde Calling NP_StartDataTransmission\n " );
224225 result = (*startDataTransmission)();
225-
226+ dllAvailable = 1 ;
226227 return (1 );
227228}
228229
229230int stop_TrackIR () {
231+ if (!dllAvailable) return (0 );
230232 printf (" Calling NP_StopDataTransmission\n " );
231233 int result = (*stopDataTransmission)();
232234 printf (" Calling NP_StartCursor\n " );
@@ -269,6 +271,7 @@ JNIEXPORT jint JNICALL Java_eu_asterics_component_sensor_trackir_jni_Bridge_getU
269271(JNIEnv* env, jobject obj)
270272{
271273
274+ if (!dllAvailable) return (0 );
272275 memset (&pTrackIRData, 0 , sizeof (TRACKIRDATA));
273276 (*getData)(&pTrackIRData);
274277 // printf("C++: send test callback\n");
@@ -280,6 +283,7 @@ JNIEXPORT jint JNICALL Java_eu_asterics_component_sensor_trackir_jni_Bridge_getU
280283JNIEXPORT jint JNICALL Java_eu_asterics_component_sensor_trackir_jni_Bridge_centerCoordinates
281284(JNIEnv* env, jobject obj)
282285{
286+ if (!dllAvailable) return (0 );
283287 (*reCenter)();
284288 return (jint)0 ;
285289}
0 commit comments