//\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
# 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
($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
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
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
generator = JavaWrapperGenerator()\r
generator.gen(srcfiles, module, dstdir)\r
\r
-\r
-\r