%pragma(java) jniclassimports=%{
/**
* @mainpage API Reference
- *
+ *
* Introduction
* ------------
- *
+ *
* The sigrok-java API provides an object-oriented Java interface to the
* functionality in libsigrok. It is built on top of the libsigrokcxx C++ API.
- *
+ *
* Getting started
* ---------------
- *
+ *
* Usage of the sigrok-java API needs to begin with a call to Context.create().
* This will create the global libsigrok context and returns a Context object.
* Methods on this object provide access to the hardware drivers, input and
* output formats supported by the library, as well as means of creating other
* objects such as sessions and triggers.
- *
+ *
* Error handling
* --------------
- *
+ *
* When any libsigrok C API call returns an error, an Error exception is raised,
* which provides access to the error code and description.
*/
"java.util.Map<JKey, JValue>"
%typemap(javain,
+/* SWIG 4.0.0 changed the std::map wrappers in an incompatible way. */
+#if SWIG_VERSION >= 0x040000
+ pre=" $javaclassname temp$javainput = new $javaclassname();
+ for (java.util.Map.Entry<JKey, JValue> entry : $javainput.entrySet())
+ temp$javainput.put(entry.getKey(), entry.getValue());",
+ pgcppname="temp$javainput")
+#else
pre=" $javaclassname temp$javainput = new $javaclassname();
for (java.util.Map.Entry<JKey, JValue> entry : $javainput.entrySet())
temp$javainput.set(entry.getKey(), entry.getValue());",
pgcppname="temp$javainput")
+#endif
std::map< CKey, CValue > "$javaclassname.getCPtr(temp$javainput)"
%typemap(javaout) std::map< CKey, CValue > {
%typemap(in, numinputs=0) JNIEnv * %{
$1 = jenv;
-%}
+%}
/* Thread safe JNIEnv handling */