adding runtime Android logging in Debug
authorAndrey Pavlenko <no@email>
Tue, 12 Jul 2011 13:13:02 +0000 (13:13 +0000)
committerAndrey Pavlenko <no@email>
Tue, 12 Jul 2011 13:13:02 +0000 (13:13 +0000)
modules/java/gen_java.py

index b085dc5..41f517c 100644 (file)
@@ -318,11 +318,12 @@ class JavaWrapperGenerator(object):
 //\r
 \r
 #include <jni.h>\r
-/*\r
+\r
+#ifdef DEBUG\r
 #include <android/log.h>\r
 #define MODULE_LOG_TAG "OpenCV.%s"\r
 #define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, MODULE_LOG_TAG, __VA_ARGS__))\r
-*/\r
+#endif // DEBUG\r
 \r
 """ % module)\r
         self.cpp_code.write( "\n".join(['#include "opencv2/%s/%s"' % (module, os.path.basename(f)) \\r
@@ -503,14 +504,14 @@ class JavaWrapperGenerator(object):
             # jni_func(..) { return cv_func(..); }\r
             ret = "return "\r
             ext = ""\r
-            default = "return 0"\r
+            default = "return 0;"\r
             if fi.ctype == "void":\r
                 ret = ""\r
                 default = ""\r
             elif fi.ctype == "string":\r
                 ret = "return env->NewStringUTF"\r
                 ext = ".c_str()"\r
-                default = 'return env->NewStringUTF("")'\r
+                default = 'return env->NewStringUTF("");'\r
             elif fi.ctype in self.classes: # wrapped class:\r
                 ret = "return (jlong) new " + self.classes[fi.ctype].jname\r
 \r
@@ -541,20 +542,26 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_$fname
   ($args)\r
 {\r
     try {\r
-        //LOGD("$module::$fname()");\r
+#ifdef DEBUG\r
+        LOGD("$module::$fname()");\r
+#endif // DEBUG\r
         $j2cv\r
         $ret( $cvname( $cvargs )$ext );\r
     } catch(cv::Exception e) {\r
-        //LOGD("$module::$fname() catched cv::Exception: %s", e.what());\r
+#ifdef DEBUG\r
+        LOGD("$module::$fname() catched cv::Exception: %s", e.what());\r
+#endif // DEBUG\r
         jclass je = env->FindClass("org/opencv/CvException");\r
         if(!je) je = env->FindClass("java/lang/Exception");\r
         env->ThrowNew(je, e.what());\r
-        $default;\r
+        $default\r
     } catch (...) {\r
-        //LOGD("$module::$fname() catched ...");\r
+#ifdef DEBUG\r
+        LOGD("$module::$fname() catched unknown exception (...)");\r
+#endif // DEBUG\r
         jclass je = env->FindClass("java/lang/Exception");\r
         env->ThrowNew(je, "Unknown exception in JNI code {$module::$fname()}");\r
-        $default;\r
+        $default\r
     }\r
 }\r
 \r
@@ -564,7 +571,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_$fname
         module = self.module, \\r
         fname = fi.jni_name + ["",suffix][isoverload], \\r
         args = ", ".join(["%s %s" % (type_dict[a.ctype].get("jni_type"), a.name) for a in jni_args]), \\r
-        j2cv = "\n    ".join([a for a in j2cvargs]), \\r
+        j2cv = "\n        ".join([a for a in j2cvargs]), \\r
         ret = ret, \\r
         cvname = cvname, \\r
         cvargs = ", ".join([a for a in cvargs]), \\r
@@ -601,8 +608,8 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_$fname
             if name == "Mat":\r
                 continue\r
             self.java_code.write( "\n\n" + indent + "// C++: class %s" % (ci.cname) + "\n" )\r
+            self.java_code.write( indent + "//javadoc: " + name + "\n" ) #java doc comment\r
             self.java_code.write( indent + "public static class %s {\n\n" % (ci.jname) )\r
-\r
             # self\r
             self.java_code.write( indent_m + "protected final long nativeObj;\n" )\r
             self.java_code.write( indent_m + "protected %s(long addr) { nativeObj = addr; }\n\n" \\r
@@ -689,5 +696,3 @@ if __name__ == "__main__":
     generator = JavaWrapperGenerator()\r
     generator.gen(srcfiles, module, dstdir)\r
 \r
-\r
-\r