1*b2055c35SXin Li /* ----------------------------------------------------------------------------
2*b2055c35SXin Li * This file was automatically generated by SWIG (http://www.swig.org).
3*b2055c35SXin Li * Version 2.0.4
4*b2055c35SXin Li *
5*b2055c35SXin Li * This file is not intended to be easily readable and contains a number of
6*b2055c35SXin Li * coding conventions designed to improve portability and efficiency. Do not make
7*b2055c35SXin Li * changes to this file unless you know what you are doing--modify the SWIG
8*b2055c35SXin Li * interface file instead.
9*b2055c35SXin Li * ----------------------------------------------------------------------------- */
10*b2055c35SXin Li
11*b2055c35SXin Li #define SWIGJAVA
12*b2055c35SXin Li
13*b2055c35SXin Li /* -----------------------------------------------------------------------------
14*b2055c35SXin Li * This section contains generic SWIG labels for method/variable
15*b2055c35SXin Li * declarations/attributes, and other compiler dependent labels.
16*b2055c35SXin Li * ----------------------------------------------------------------------------- */
17*b2055c35SXin Li
18*b2055c35SXin Li /* template workaround for compilers that cannot correctly implement the C++ standard */
19*b2055c35SXin Li #ifndef SWIGTEMPLATEDISAMBIGUATOR
20*b2055c35SXin Li # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
21*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR template
22*b2055c35SXin Li # elif defined(__HP_aCC)
23*b2055c35SXin Li /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
24*b2055c35SXin Li /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
25*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR template
26*b2055c35SXin Li # else
27*b2055c35SXin Li # define SWIGTEMPLATEDISAMBIGUATOR
28*b2055c35SXin Li # endif
29*b2055c35SXin Li #endif
30*b2055c35SXin Li
31*b2055c35SXin Li /* inline attribute */
32*b2055c35SXin Li #ifndef SWIGINLINE
33*b2055c35SXin Li # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
34*b2055c35SXin Li # define SWIGINLINE inline
35*b2055c35SXin Li # else
36*b2055c35SXin Li # define SWIGINLINE
37*b2055c35SXin Li # endif
38*b2055c35SXin Li #endif
39*b2055c35SXin Li
40*b2055c35SXin Li /* attribute recognised by some compilers to avoid 'unused' warnings */
41*b2055c35SXin Li #ifndef SWIGUNUSED
42*b2055c35SXin Li # if defined(__GNUC__)
43*b2055c35SXin Li # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
44*b2055c35SXin Li # define SWIGUNUSED __attribute__ ((__unused__))
45*b2055c35SXin Li # else
46*b2055c35SXin Li # define SWIGUNUSED
47*b2055c35SXin Li # endif
48*b2055c35SXin Li # elif defined(__ICC)
49*b2055c35SXin Li # define SWIGUNUSED __attribute__ ((__unused__))
50*b2055c35SXin Li # else
51*b2055c35SXin Li # define SWIGUNUSED
52*b2055c35SXin Li # endif
53*b2055c35SXin Li #endif
54*b2055c35SXin Li
55*b2055c35SXin Li #ifndef SWIG_MSC_UNSUPPRESS_4505
56*b2055c35SXin Li # if defined(_MSC_VER)
57*b2055c35SXin Li # pragma warning(disable : 4505) /* unreferenced local function has been removed */
58*b2055c35SXin Li # endif
59*b2055c35SXin Li #endif
60*b2055c35SXin Li
61*b2055c35SXin Li #ifndef SWIGUNUSEDPARM
62*b2055c35SXin Li # ifdef __cplusplus
63*b2055c35SXin Li # define SWIGUNUSEDPARM(p)
64*b2055c35SXin Li # else
65*b2055c35SXin Li # define SWIGUNUSEDPARM(p) p SWIGUNUSED
66*b2055c35SXin Li # endif
67*b2055c35SXin Li #endif
68*b2055c35SXin Li
69*b2055c35SXin Li /* internal SWIG method */
70*b2055c35SXin Li #ifndef SWIGINTERN
71*b2055c35SXin Li # define SWIGINTERN static SWIGUNUSED
72*b2055c35SXin Li #endif
73*b2055c35SXin Li
74*b2055c35SXin Li /* internal inline SWIG method */
75*b2055c35SXin Li #ifndef SWIGINTERNINLINE
76*b2055c35SXin Li # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
77*b2055c35SXin Li #endif
78*b2055c35SXin Li
79*b2055c35SXin Li /* exporting methods */
80*b2055c35SXin Li #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
81*b2055c35SXin Li # ifndef GCC_HASCLASSVISIBILITY
82*b2055c35SXin Li # define GCC_HASCLASSVISIBILITY
83*b2055c35SXin Li # endif
84*b2055c35SXin Li #endif
85*b2055c35SXin Li
86*b2055c35SXin Li #ifndef SWIGEXPORT
87*b2055c35SXin Li # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
88*b2055c35SXin Li # if defined(STATIC_LINKED)
89*b2055c35SXin Li # define SWIGEXPORT
90*b2055c35SXin Li # else
91*b2055c35SXin Li # define SWIGEXPORT __declspec(dllexport)
92*b2055c35SXin Li # endif
93*b2055c35SXin Li # else
94*b2055c35SXin Li # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
95*b2055c35SXin Li # define SWIGEXPORT __attribute__ ((visibility("default")))
96*b2055c35SXin Li # else
97*b2055c35SXin Li # define SWIGEXPORT
98*b2055c35SXin Li # endif
99*b2055c35SXin Li # endif
100*b2055c35SXin Li #endif
101*b2055c35SXin Li
102*b2055c35SXin Li /* calling conventions for Windows */
103*b2055c35SXin Li #ifndef SWIGSTDCALL
104*b2055c35SXin Li # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
105*b2055c35SXin Li # define SWIGSTDCALL __stdcall
106*b2055c35SXin Li # else
107*b2055c35SXin Li # define SWIGSTDCALL
108*b2055c35SXin Li # endif
109*b2055c35SXin Li #endif
110*b2055c35SXin Li
111*b2055c35SXin Li /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
112*b2055c35SXin Li #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
113*b2055c35SXin Li # define _CRT_SECURE_NO_DEPRECATE
114*b2055c35SXin Li #endif
115*b2055c35SXin Li
116*b2055c35SXin Li /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
117*b2055c35SXin Li #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
118*b2055c35SXin Li # define _SCL_SECURE_NO_DEPRECATE
119*b2055c35SXin Li #endif
120*b2055c35SXin Li
121*b2055c35SXin Li
122*b2055c35SXin Li
123*b2055c35SXin Li /* Fix for jlong on some versions of gcc on Windows */
124*b2055c35SXin Li #if defined(__GNUC__) && !defined(__INTEL_COMPILER)
125*b2055c35SXin Li typedef long long __int64;
126*b2055c35SXin Li #endif
127*b2055c35SXin Li
128*b2055c35SXin Li /* Fix for jlong on 64-bit x86 Solaris */
129*b2055c35SXin Li #if defined(__x86_64)
130*b2055c35SXin Li # ifdef _LP64
131*b2055c35SXin Li # undef _LP64
132*b2055c35SXin Li # endif
133*b2055c35SXin Li #endif
134*b2055c35SXin Li
135*b2055c35SXin Li #include <jni.h>
136*b2055c35SXin Li #include <stdlib.h>
137*b2055c35SXin Li #include <string.h>
138*b2055c35SXin Li
139*b2055c35SXin Li
140*b2055c35SXin Li /* Support for throwing Java exceptions */
141*b2055c35SXin Li typedef enum {
142*b2055c35SXin Li SWIG_JavaOutOfMemoryError = 1,
143*b2055c35SXin Li SWIG_JavaIOException,
144*b2055c35SXin Li SWIG_JavaRuntimeException,
145*b2055c35SXin Li SWIG_JavaIndexOutOfBoundsException,
146*b2055c35SXin Li SWIG_JavaArithmeticException,
147*b2055c35SXin Li SWIG_JavaIllegalArgumentException,
148*b2055c35SXin Li SWIG_JavaNullPointerException,
149*b2055c35SXin Li SWIG_JavaDirectorPureVirtual,
150*b2055c35SXin Li SWIG_JavaUnknownError
151*b2055c35SXin Li } SWIG_JavaExceptionCodes;
152*b2055c35SXin Li
153*b2055c35SXin Li typedef struct {
154*b2055c35SXin Li SWIG_JavaExceptionCodes code;
155*b2055c35SXin Li const char *java_exception;
156*b2055c35SXin Li } SWIG_JavaExceptions_t;
157*b2055c35SXin Li
158*b2055c35SXin Li
SWIG_JavaThrowException(JNIEnv * jenv,SWIG_JavaExceptionCodes code,const char * msg)159*b2055c35SXin Li static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
160*b2055c35SXin Li jclass excep;
161*b2055c35SXin Li static const SWIG_JavaExceptions_t java_exceptions[] = {
162*b2055c35SXin Li { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
163*b2055c35SXin Li { SWIG_JavaIOException, "java/io/IOException" },
164*b2055c35SXin Li { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
165*b2055c35SXin Li { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
166*b2055c35SXin Li { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
167*b2055c35SXin Li { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
168*b2055c35SXin Li { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
169*b2055c35SXin Li { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
170*b2055c35SXin Li { SWIG_JavaUnknownError, "java/lang/UnknownError" },
171*b2055c35SXin Li { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" }
172*b2055c35SXin Li };
173*b2055c35SXin Li const SWIG_JavaExceptions_t *except_ptr = java_exceptions;
174*b2055c35SXin Li
175*b2055c35SXin Li while (except_ptr->code != code && except_ptr->code)
176*b2055c35SXin Li except_ptr++;
177*b2055c35SXin Li
178*b2055c35SXin Li (*jenv)->ExceptionClear(jenv);
179*b2055c35SXin Li excep = (*jenv)->FindClass(jenv, except_ptr->java_exception);
180*b2055c35SXin Li if (excep)
181*b2055c35SXin Li (*jenv)->ThrowNew(jenv, excep, msg);
182*b2055c35SXin Li }
183*b2055c35SXin Li
184*b2055c35SXin Li
185*b2055c35SXin Li /* Contract support */
186*b2055c35SXin Li
187*b2055c35SXin Li #define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else
188*b2055c35SXin Li
189*b2055c35SXin Li /* Errors in SWIG */
190*b2055c35SXin Li #define SWIG_UnknownError -1
191*b2055c35SXin Li #define SWIG_IOError -2
192*b2055c35SXin Li #define SWIG_RuntimeError -3
193*b2055c35SXin Li #define SWIG_IndexError -4
194*b2055c35SXin Li #define SWIG_TypeError -5
195*b2055c35SXin Li #define SWIG_DivisionByZero -6
196*b2055c35SXin Li #define SWIG_OverflowError -7
197*b2055c35SXin Li #define SWIG_SyntaxError -8
198*b2055c35SXin Li #define SWIG_ValueError -9
199*b2055c35SXin Li #define SWIG_SystemError -10
200*b2055c35SXin Li #define SWIG_AttributeError -11
201*b2055c35SXin Li #define SWIG_MemoryError -12
202*b2055c35SXin Li #define SWIG_NullReferenceError -13
203*b2055c35SXin Li
204*b2055c35SXin Li
205*b2055c35SXin Li
206*b2055c35SXin Li
SWIG_JavaException(JNIEnv * jenv,int code,const char * msg)207*b2055c35SXin Li SWIGINTERN void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) {
208*b2055c35SXin Li SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError;
209*b2055c35SXin Li switch(code) {
210*b2055c35SXin Li case SWIG_MemoryError:
211*b2055c35SXin Li exception_code = SWIG_JavaOutOfMemoryError;
212*b2055c35SXin Li break;
213*b2055c35SXin Li case SWIG_IOError:
214*b2055c35SXin Li exception_code = SWIG_JavaIOException;
215*b2055c35SXin Li break;
216*b2055c35SXin Li case SWIG_SystemError:
217*b2055c35SXin Li case SWIG_RuntimeError:
218*b2055c35SXin Li exception_code = SWIG_JavaRuntimeException;
219*b2055c35SXin Li break;
220*b2055c35SXin Li case SWIG_OverflowError:
221*b2055c35SXin Li case SWIG_IndexError:
222*b2055c35SXin Li exception_code = SWIG_JavaIndexOutOfBoundsException;
223*b2055c35SXin Li break;
224*b2055c35SXin Li case SWIG_DivisionByZero:
225*b2055c35SXin Li exception_code = SWIG_JavaArithmeticException;
226*b2055c35SXin Li break;
227*b2055c35SXin Li case SWIG_SyntaxError:
228*b2055c35SXin Li case SWIG_ValueError:
229*b2055c35SXin Li case SWIG_TypeError:
230*b2055c35SXin Li exception_code = SWIG_JavaIllegalArgumentException;
231*b2055c35SXin Li break;
232*b2055c35SXin Li case SWIG_UnknownError:
233*b2055c35SXin Li default:
234*b2055c35SXin Li exception_code = SWIG_JavaUnknownError;
235*b2055c35SXin Li break;
236*b2055c35SXin Li }
237*b2055c35SXin Li SWIG_JavaThrowException(jenv, exception_code, msg);
238*b2055c35SXin Li }
239*b2055c35SXin Li
240*b2055c35SXin Li
241*b2055c35SXin Li #if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS)
242*b2055c35SXin Li
243*b2055c35SXin Li
244*b2055c35SXin Li int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input);
245*b2055c35SXin Li void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input);
246*b2055c35SXin Li jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz);
247*b2055c35SXin Li
248*b2055c35SXin Li
249*b2055c35SXin Li int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input);
250*b2055c35SXin Li void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input);
251*b2055c35SXin Li jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz);
252*b2055c35SXin Li
253*b2055c35SXin Li
254*b2055c35SXin Li int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input);
255*b2055c35SXin Li void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input);
256*b2055c35SXin Li jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz);
257*b2055c35SXin Li
258*b2055c35SXin Li
259*b2055c35SXin Li int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input);
260*b2055c35SXin Li void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input);
261*b2055c35SXin Li jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz);
262*b2055c35SXin Li
263*b2055c35SXin Li
264*b2055c35SXin Li int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input);
265*b2055c35SXin Li void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input);
266*b2055c35SXin Li jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz);
267*b2055c35SXin Li
268*b2055c35SXin Li
269*b2055c35SXin Li int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input);
270*b2055c35SXin Li void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input);
271*b2055c35SXin Li jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz);
272*b2055c35SXin Li
273*b2055c35SXin Li
274*b2055c35SXin Li int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input);
275*b2055c35SXin Li void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input);
276*b2055c35SXin Li jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz);
277*b2055c35SXin Li
278*b2055c35SXin Li
279*b2055c35SXin Li int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input);
280*b2055c35SXin Li void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input);
281*b2055c35SXin Li jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz);
282*b2055c35SXin Li
283*b2055c35SXin Li
284*b2055c35SXin Li int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input);
285*b2055c35SXin Li void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input);
286*b2055c35SXin Li jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz);
287*b2055c35SXin Li
288*b2055c35SXin Li
289*b2055c35SXin Li int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input);
290*b2055c35SXin Li void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input);
291*b2055c35SXin Li jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz);
292*b2055c35SXin Li
293*b2055c35SXin Li
294*b2055c35SXin Li int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input);
295*b2055c35SXin Li void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input);
296*b2055c35SXin Li jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz);
297*b2055c35SXin Li
298*b2055c35SXin Li
299*b2055c35SXin Li #else
300*b2055c35SXin Li
301*b2055c35SXin Li
302*b2055c35SXin Li /* signed char[] support */
SWIG_JavaArrayInSchar(JNIEnv * jenv,jbyte ** jarr,signed char ** carr,jbyteArray input)303*b2055c35SXin Li int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) {
304*b2055c35SXin Li int i;
305*b2055c35SXin Li jsize sz;
306*b2055c35SXin Li if (!input) {
307*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
308*b2055c35SXin Li return 0;
309*b2055c35SXin Li }
310*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
311*b2055c35SXin Li *jarr = (*jenv)->GetByteArrayElements(jenv, input, 0);
312*b2055c35SXin Li if (!*jarr)
313*b2055c35SXin Li return 0;
314*b2055c35SXin Li *carr = (signed char*) calloc(sz, sizeof(signed char));
315*b2055c35SXin Li if (!*carr) {
316*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
317*b2055c35SXin Li return 0;
318*b2055c35SXin Li }
319*b2055c35SXin Li for (i=0; i<sz; i++)
320*b2055c35SXin Li (*carr)[i] = (signed char)(*jarr)[i];
321*b2055c35SXin Li return 1;
322*b2055c35SXin Li }
323*b2055c35SXin Li
SWIG_JavaArrayArgoutSchar(JNIEnv * jenv,jbyte * jarr,signed char * carr,jbyteArray input)324*b2055c35SXin Li void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input) {
325*b2055c35SXin Li int i;
326*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
327*b2055c35SXin Li for (i=0; i<sz; i++)
328*b2055c35SXin Li jarr[i] = (jbyte)carr[i];
329*b2055c35SXin Li (*jenv)->ReleaseByteArrayElements(jenv, input, jarr, 0);
330*b2055c35SXin Li }
331*b2055c35SXin Li
SWIG_JavaArrayOutSchar(JNIEnv * jenv,signed char * result,jsize sz)332*b2055c35SXin Li jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) {
333*b2055c35SXin Li jbyte *arr;
334*b2055c35SXin Li int i;
335*b2055c35SXin Li jbyteArray jresult = (*jenv)->NewByteArray(jenv, sz);
336*b2055c35SXin Li if (!jresult)
337*b2055c35SXin Li return NULL;
338*b2055c35SXin Li arr = (*jenv)->GetByteArrayElements(jenv, jresult, 0);
339*b2055c35SXin Li if (!arr)
340*b2055c35SXin Li return NULL;
341*b2055c35SXin Li for (i=0; i<sz; i++)
342*b2055c35SXin Li arr[i] = (jbyte)result[i];
343*b2055c35SXin Li (*jenv)->ReleaseByteArrayElements(jenv, jresult, arr, 0);
344*b2055c35SXin Li return jresult;
345*b2055c35SXin Li }
346*b2055c35SXin Li
347*b2055c35SXin Li
348*b2055c35SXin Li /* unsigned char[] support */
SWIG_JavaArrayInUchar(JNIEnv * jenv,jshort ** jarr,unsigned char ** carr,jshortArray input)349*b2055c35SXin Li int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) {
350*b2055c35SXin Li int i;
351*b2055c35SXin Li jsize sz;
352*b2055c35SXin Li if (!input) {
353*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
354*b2055c35SXin Li return 0;
355*b2055c35SXin Li }
356*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
357*b2055c35SXin Li *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0);
358*b2055c35SXin Li if (!*jarr)
359*b2055c35SXin Li return 0;
360*b2055c35SXin Li *carr = (unsigned char*) calloc(sz, sizeof(unsigned char));
361*b2055c35SXin Li if (!*carr) {
362*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
363*b2055c35SXin Li return 0;
364*b2055c35SXin Li }
365*b2055c35SXin Li for (i=0; i<sz; i++)
366*b2055c35SXin Li (*carr)[i] = (unsigned char)(*jarr)[i];
367*b2055c35SXin Li return 1;
368*b2055c35SXin Li }
369*b2055c35SXin Li
SWIG_JavaArrayArgoutUchar(JNIEnv * jenv,jshort * jarr,unsigned char * carr,jshortArray input)370*b2055c35SXin Li void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input) {
371*b2055c35SXin Li int i;
372*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
373*b2055c35SXin Li for (i=0; i<sz; i++)
374*b2055c35SXin Li jarr[i] = (jshort)carr[i];
375*b2055c35SXin Li (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0);
376*b2055c35SXin Li }
377*b2055c35SXin Li
SWIG_JavaArrayOutUchar(JNIEnv * jenv,unsigned char * result,jsize sz)378*b2055c35SXin Li jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) {
379*b2055c35SXin Li jshort *arr;
380*b2055c35SXin Li int i;
381*b2055c35SXin Li jshortArray jresult = (*jenv)->NewShortArray(jenv, sz);
382*b2055c35SXin Li if (!jresult)
383*b2055c35SXin Li return NULL;
384*b2055c35SXin Li arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0);
385*b2055c35SXin Li if (!arr)
386*b2055c35SXin Li return NULL;
387*b2055c35SXin Li for (i=0; i<sz; i++)
388*b2055c35SXin Li arr[i] = (jshort)result[i];
389*b2055c35SXin Li (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0);
390*b2055c35SXin Li return jresult;
391*b2055c35SXin Li }
392*b2055c35SXin Li
393*b2055c35SXin Li
394*b2055c35SXin Li /* short[] support */
SWIG_JavaArrayInShort(JNIEnv * jenv,jshort ** jarr,short ** carr,jshortArray input)395*b2055c35SXin Li int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) {
396*b2055c35SXin Li int i;
397*b2055c35SXin Li jsize sz;
398*b2055c35SXin Li if (!input) {
399*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
400*b2055c35SXin Li return 0;
401*b2055c35SXin Li }
402*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
403*b2055c35SXin Li *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0);
404*b2055c35SXin Li if (!*jarr)
405*b2055c35SXin Li return 0;
406*b2055c35SXin Li *carr = (short*) calloc(sz, sizeof(short));
407*b2055c35SXin Li if (!*carr) {
408*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
409*b2055c35SXin Li return 0;
410*b2055c35SXin Li }
411*b2055c35SXin Li for (i=0; i<sz; i++)
412*b2055c35SXin Li (*carr)[i] = (short)(*jarr)[i];
413*b2055c35SXin Li return 1;
414*b2055c35SXin Li }
415*b2055c35SXin Li
SWIG_JavaArrayArgoutShort(JNIEnv * jenv,jshort * jarr,short * carr,jshortArray input)416*b2055c35SXin Li void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input) {
417*b2055c35SXin Li int i;
418*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
419*b2055c35SXin Li for (i=0; i<sz; i++)
420*b2055c35SXin Li jarr[i] = (jshort)carr[i];
421*b2055c35SXin Li (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0);
422*b2055c35SXin Li }
423*b2055c35SXin Li
SWIG_JavaArrayOutShort(JNIEnv * jenv,short * result,jsize sz)424*b2055c35SXin Li jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) {
425*b2055c35SXin Li jshort *arr;
426*b2055c35SXin Li int i;
427*b2055c35SXin Li jshortArray jresult = (*jenv)->NewShortArray(jenv, sz);
428*b2055c35SXin Li if (!jresult)
429*b2055c35SXin Li return NULL;
430*b2055c35SXin Li arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0);
431*b2055c35SXin Li if (!arr)
432*b2055c35SXin Li return NULL;
433*b2055c35SXin Li for (i=0; i<sz; i++)
434*b2055c35SXin Li arr[i] = (jshort)result[i];
435*b2055c35SXin Li (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0);
436*b2055c35SXin Li return jresult;
437*b2055c35SXin Li }
438*b2055c35SXin Li
439*b2055c35SXin Li
440*b2055c35SXin Li /* unsigned short[] support */
SWIG_JavaArrayInUshort(JNIEnv * jenv,jint ** jarr,unsigned short ** carr,jintArray input)441*b2055c35SXin Li int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) {
442*b2055c35SXin Li int i;
443*b2055c35SXin Li jsize sz;
444*b2055c35SXin Li if (!input) {
445*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
446*b2055c35SXin Li return 0;
447*b2055c35SXin Li }
448*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
449*b2055c35SXin Li *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
450*b2055c35SXin Li if (!*jarr)
451*b2055c35SXin Li return 0;
452*b2055c35SXin Li *carr = (unsigned short*) calloc(sz, sizeof(unsigned short));
453*b2055c35SXin Li if (!*carr) {
454*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
455*b2055c35SXin Li return 0;
456*b2055c35SXin Li }
457*b2055c35SXin Li for (i=0; i<sz; i++)
458*b2055c35SXin Li (*carr)[i] = (unsigned short)(*jarr)[i];
459*b2055c35SXin Li return 1;
460*b2055c35SXin Li }
461*b2055c35SXin Li
SWIG_JavaArrayArgoutUshort(JNIEnv * jenv,jint * jarr,unsigned short * carr,jintArray input)462*b2055c35SXin Li void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input) {
463*b2055c35SXin Li int i;
464*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
465*b2055c35SXin Li for (i=0; i<sz; i++)
466*b2055c35SXin Li jarr[i] = (jint)carr[i];
467*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
468*b2055c35SXin Li }
469*b2055c35SXin Li
SWIG_JavaArrayOutUshort(JNIEnv * jenv,unsigned short * result,jsize sz)470*b2055c35SXin Li jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) {
471*b2055c35SXin Li jint *arr;
472*b2055c35SXin Li int i;
473*b2055c35SXin Li jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
474*b2055c35SXin Li if (!jresult)
475*b2055c35SXin Li return NULL;
476*b2055c35SXin Li arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
477*b2055c35SXin Li if (!arr)
478*b2055c35SXin Li return NULL;
479*b2055c35SXin Li for (i=0; i<sz; i++)
480*b2055c35SXin Li arr[i] = (jint)result[i];
481*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
482*b2055c35SXin Li return jresult;
483*b2055c35SXin Li }
484*b2055c35SXin Li
485*b2055c35SXin Li
486*b2055c35SXin Li /* int[] support */
SWIG_JavaArrayInInt(JNIEnv * jenv,jint ** jarr,int ** carr,jintArray input)487*b2055c35SXin Li int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) {
488*b2055c35SXin Li int i;
489*b2055c35SXin Li jsize sz;
490*b2055c35SXin Li if (!input) {
491*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
492*b2055c35SXin Li return 0;
493*b2055c35SXin Li }
494*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
495*b2055c35SXin Li *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
496*b2055c35SXin Li if (!*jarr)
497*b2055c35SXin Li return 0;
498*b2055c35SXin Li *carr = (int*) calloc(sz, sizeof(int));
499*b2055c35SXin Li if (!*carr) {
500*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
501*b2055c35SXin Li return 0;
502*b2055c35SXin Li }
503*b2055c35SXin Li for (i=0; i<sz; i++)
504*b2055c35SXin Li (*carr)[i] = (int)(*jarr)[i];
505*b2055c35SXin Li return 1;
506*b2055c35SXin Li }
507*b2055c35SXin Li
SWIG_JavaArrayArgoutInt(JNIEnv * jenv,jint * jarr,int * carr,jintArray input)508*b2055c35SXin Li void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input) {
509*b2055c35SXin Li int i;
510*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
511*b2055c35SXin Li for (i=0; i<sz; i++)
512*b2055c35SXin Li jarr[i] = (jint)carr[i];
513*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
514*b2055c35SXin Li }
515*b2055c35SXin Li
SWIG_JavaArrayOutInt(JNIEnv * jenv,int * result,jsize sz)516*b2055c35SXin Li jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) {
517*b2055c35SXin Li jint *arr;
518*b2055c35SXin Li int i;
519*b2055c35SXin Li jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
520*b2055c35SXin Li if (!jresult)
521*b2055c35SXin Li return NULL;
522*b2055c35SXin Li arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
523*b2055c35SXin Li if (!arr)
524*b2055c35SXin Li return NULL;
525*b2055c35SXin Li for (i=0; i<sz; i++)
526*b2055c35SXin Li arr[i] = (jint)result[i];
527*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
528*b2055c35SXin Li return jresult;
529*b2055c35SXin Li }
530*b2055c35SXin Li
531*b2055c35SXin Li
532*b2055c35SXin Li /* unsigned int[] support */
SWIG_JavaArrayInUint(JNIEnv * jenv,jlong ** jarr,unsigned int ** carr,jlongArray input)533*b2055c35SXin Li int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) {
534*b2055c35SXin Li int i;
535*b2055c35SXin Li jsize sz;
536*b2055c35SXin Li if (!input) {
537*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
538*b2055c35SXin Li return 0;
539*b2055c35SXin Li }
540*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
541*b2055c35SXin Li *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
542*b2055c35SXin Li if (!*jarr)
543*b2055c35SXin Li return 0;
544*b2055c35SXin Li *carr = (unsigned int*) calloc(sz, sizeof(unsigned int));
545*b2055c35SXin Li if (!*carr) {
546*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
547*b2055c35SXin Li return 0;
548*b2055c35SXin Li }
549*b2055c35SXin Li for (i=0; i<sz; i++)
550*b2055c35SXin Li (*carr)[i] = (unsigned int)(*jarr)[i];
551*b2055c35SXin Li return 1;
552*b2055c35SXin Li }
553*b2055c35SXin Li
SWIG_JavaArrayArgoutUint(JNIEnv * jenv,jlong * jarr,unsigned int * carr,jlongArray input)554*b2055c35SXin Li void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input) {
555*b2055c35SXin Li int i;
556*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
557*b2055c35SXin Li for (i=0; i<sz; i++)
558*b2055c35SXin Li jarr[i] = (jlong)carr[i];
559*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
560*b2055c35SXin Li }
561*b2055c35SXin Li
SWIG_JavaArrayOutUint(JNIEnv * jenv,unsigned int * result,jsize sz)562*b2055c35SXin Li jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) {
563*b2055c35SXin Li jlong *arr;
564*b2055c35SXin Li int i;
565*b2055c35SXin Li jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
566*b2055c35SXin Li if (!jresult)
567*b2055c35SXin Li return NULL;
568*b2055c35SXin Li arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
569*b2055c35SXin Li if (!arr)
570*b2055c35SXin Li return NULL;
571*b2055c35SXin Li for (i=0; i<sz; i++)
572*b2055c35SXin Li arr[i] = (jlong)result[i];
573*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
574*b2055c35SXin Li return jresult;
575*b2055c35SXin Li }
576*b2055c35SXin Li
577*b2055c35SXin Li
578*b2055c35SXin Li /* long[] support */
SWIG_JavaArrayInLong(JNIEnv * jenv,jint ** jarr,long ** carr,jintArray input)579*b2055c35SXin Li int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) {
580*b2055c35SXin Li int i;
581*b2055c35SXin Li jsize sz;
582*b2055c35SXin Li if (!input) {
583*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
584*b2055c35SXin Li return 0;
585*b2055c35SXin Li }
586*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
587*b2055c35SXin Li *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
588*b2055c35SXin Li if (!*jarr)
589*b2055c35SXin Li return 0;
590*b2055c35SXin Li *carr = (long*) calloc(sz, sizeof(long));
591*b2055c35SXin Li if (!*carr) {
592*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
593*b2055c35SXin Li return 0;
594*b2055c35SXin Li }
595*b2055c35SXin Li for (i=0; i<sz; i++)
596*b2055c35SXin Li (*carr)[i] = (long)(*jarr)[i];
597*b2055c35SXin Li return 1;
598*b2055c35SXin Li }
599*b2055c35SXin Li
SWIG_JavaArrayArgoutLong(JNIEnv * jenv,jint * jarr,long * carr,jintArray input)600*b2055c35SXin Li void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input) {
601*b2055c35SXin Li int i;
602*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
603*b2055c35SXin Li for (i=0; i<sz; i++)
604*b2055c35SXin Li jarr[i] = (jint)carr[i];
605*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
606*b2055c35SXin Li }
607*b2055c35SXin Li
SWIG_JavaArrayOutLong(JNIEnv * jenv,long * result,jsize sz)608*b2055c35SXin Li jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) {
609*b2055c35SXin Li jint *arr;
610*b2055c35SXin Li int i;
611*b2055c35SXin Li jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
612*b2055c35SXin Li if (!jresult)
613*b2055c35SXin Li return NULL;
614*b2055c35SXin Li arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
615*b2055c35SXin Li if (!arr)
616*b2055c35SXin Li return NULL;
617*b2055c35SXin Li for (i=0; i<sz; i++)
618*b2055c35SXin Li arr[i] = (jint)result[i];
619*b2055c35SXin Li (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
620*b2055c35SXin Li return jresult;
621*b2055c35SXin Li }
622*b2055c35SXin Li
623*b2055c35SXin Li
624*b2055c35SXin Li /* unsigned long[] support */
SWIG_JavaArrayInUlong(JNIEnv * jenv,jlong ** jarr,unsigned long ** carr,jlongArray input)625*b2055c35SXin Li int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) {
626*b2055c35SXin Li int i;
627*b2055c35SXin Li jsize sz;
628*b2055c35SXin Li if (!input) {
629*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
630*b2055c35SXin Li return 0;
631*b2055c35SXin Li }
632*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
633*b2055c35SXin Li *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
634*b2055c35SXin Li if (!*jarr)
635*b2055c35SXin Li return 0;
636*b2055c35SXin Li *carr = (unsigned long*) calloc(sz, sizeof(unsigned long));
637*b2055c35SXin Li if (!*carr) {
638*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
639*b2055c35SXin Li return 0;
640*b2055c35SXin Li }
641*b2055c35SXin Li for (i=0; i<sz; i++)
642*b2055c35SXin Li (*carr)[i] = (unsigned long)(*jarr)[i];
643*b2055c35SXin Li return 1;
644*b2055c35SXin Li }
645*b2055c35SXin Li
SWIG_JavaArrayArgoutUlong(JNIEnv * jenv,jlong * jarr,unsigned long * carr,jlongArray input)646*b2055c35SXin Li void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input) {
647*b2055c35SXin Li int i;
648*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
649*b2055c35SXin Li for (i=0; i<sz; i++)
650*b2055c35SXin Li jarr[i] = (jlong)carr[i];
651*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
652*b2055c35SXin Li }
653*b2055c35SXin Li
SWIG_JavaArrayOutUlong(JNIEnv * jenv,unsigned long * result,jsize sz)654*b2055c35SXin Li jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) {
655*b2055c35SXin Li jlong *arr;
656*b2055c35SXin Li int i;
657*b2055c35SXin Li jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
658*b2055c35SXin Li if (!jresult)
659*b2055c35SXin Li return NULL;
660*b2055c35SXin Li arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
661*b2055c35SXin Li if (!arr)
662*b2055c35SXin Li return NULL;
663*b2055c35SXin Li for (i=0; i<sz; i++)
664*b2055c35SXin Li arr[i] = (jlong)result[i];
665*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
666*b2055c35SXin Li return jresult;
667*b2055c35SXin Li }
668*b2055c35SXin Li
669*b2055c35SXin Li
670*b2055c35SXin Li /* jlong[] support */
SWIG_JavaArrayInLonglong(JNIEnv * jenv,jlong ** jarr,jlong ** carr,jlongArray input)671*b2055c35SXin Li int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) {
672*b2055c35SXin Li int i;
673*b2055c35SXin Li jsize sz;
674*b2055c35SXin Li if (!input) {
675*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
676*b2055c35SXin Li return 0;
677*b2055c35SXin Li }
678*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
679*b2055c35SXin Li *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
680*b2055c35SXin Li if (!*jarr)
681*b2055c35SXin Li return 0;
682*b2055c35SXin Li *carr = (jlong*) calloc(sz, sizeof(jlong));
683*b2055c35SXin Li if (!*carr) {
684*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
685*b2055c35SXin Li return 0;
686*b2055c35SXin Li }
687*b2055c35SXin Li for (i=0; i<sz; i++)
688*b2055c35SXin Li (*carr)[i] = (jlong)(*jarr)[i];
689*b2055c35SXin Li return 1;
690*b2055c35SXin Li }
691*b2055c35SXin Li
SWIG_JavaArrayArgoutLonglong(JNIEnv * jenv,jlong * jarr,jlong * carr,jlongArray input)692*b2055c35SXin Li void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input) {
693*b2055c35SXin Li int i;
694*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
695*b2055c35SXin Li for (i=0; i<sz; i++)
696*b2055c35SXin Li jarr[i] = (jlong)carr[i];
697*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
698*b2055c35SXin Li }
699*b2055c35SXin Li
SWIG_JavaArrayOutLonglong(JNIEnv * jenv,jlong * result,jsize sz)700*b2055c35SXin Li jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) {
701*b2055c35SXin Li jlong *arr;
702*b2055c35SXin Li int i;
703*b2055c35SXin Li jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
704*b2055c35SXin Li if (!jresult)
705*b2055c35SXin Li return NULL;
706*b2055c35SXin Li arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
707*b2055c35SXin Li if (!arr)
708*b2055c35SXin Li return NULL;
709*b2055c35SXin Li for (i=0; i<sz; i++)
710*b2055c35SXin Li arr[i] = (jlong)result[i];
711*b2055c35SXin Li (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
712*b2055c35SXin Li return jresult;
713*b2055c35SXin Li }
714*b2055c35SXin Li
715*b2055c35SXin Li
716*b2055c35SXin Li /* float[] support */
SWIG_JavaArrayInFloat(JNIEnv * jenv,jfloat ** jarr,float ** carr,jfloatArray input)717*b2055c35SXin Li int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) {
718*b2055c35SXin Li int i;
719*b2055c35SXin Li jsize sz;
720*b2055c35SXin Li if (!input) {
721*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
722*b2055c35SXin Li return 0;
723*b2055c35SXin Li }
724*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
725*b2055c35SXin Li *jarr = (*jenv)->GetFloatArrayElements(jenv, input, 0);
726*b2055c35SXin Li if (!*jarr)
727*b2055c35SXin Li return 0;
728*b2055c35SXin Li *carr = (float*) calloc(sz, sizeof(float));
729*b2055c35SXin Li if (!*carr) {
730*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
731*b2055c35SXin Li return 0;
732*b2055c35SXin Li }
733*b2055c35SXin Li for (i=0; i<sz; i++)
734*b2055c35SXin Li (*carr)[i] = (float)(*jarr)[i];
735*b2055c35SXin Li return 1;
736*b2055c35SXin Li }
737*b2055c35SXin Li
SWIG_JavaArrayArgoutFloat(JNIEnv * jenv,jfloat * jarr,float * carr,jfloatArray input)738*b2055c35SXin Li void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input) {
739*b2055c35SXin Li int i;
740*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
741*b2055c35SXin Li for (i=0; i<sz; i++)
742*b2055c35SXin Li jarr[i] = (jfloat)carr[i];
743*b2055c35SXin Li (*jenv)->ReleaseFloatArrayElements(jenv, input, jarr, 0);
744*b2055c35SXin Li }
745*b2055c35SXin Li
SWIG_JavaArrayOutFloat(JNIEnv * jenv,float * result,jsize sz)746*b2055c35SXin Li jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) {
747*b2055c35SXin Li jfloat *arr;
748*b2055c35SXin Li int i;
749*b2055c35SXin Li jfloatArray jresult = (*jenv)->NewFloatArray(jenv, sz);
750*b2055c35SXin Li if (!jresult)
751*b2055c35SXin Li return NULL;
752*b2055c35SXin Li arr = (*jenv)->GetFloatArrayElements(jenv, jresult, 0);
753*b2055c35SXin Li if (!arr)
754*b2055c35SXin Li return NULL;
755*b2055c35SXin Li for (i=0; i<sz; i++)
756*b2055c35SXin Li arr[i] = (jfloat)result[i];
757*b2055c35SXin Li (*jenv)->ReleaseFloatArrayElements(jenv, jresult, arr, 0);
758*b2055c35SXin Li return jresult;
759*b2055c35SXin Li }
760*b2055c35SXin Li
761*b2055c35SXin Li
762*b2055c35SXin Li /* double[] support */
SWIG_JavaArrayInDouble(JNIEnv * jenv,jdouble ** jarr,double ** carr,jdoubleArray input)763*b2055c35SXin Li int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) {
764*b2055c35SXin Li int i;
765*b2055c35SXin Li jsize sz;
766*b2055c35SXin Li if (!input) {
767*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
768*b2055c35SXin Li return 0;
769*b2055c35SXin Li }
770*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
771*b2055c35SXin Li *jarr = (*jenv)->GetDoubleArrayElements(jenv, input, 0);
772*b2055c35SXin Li if (!*jarr)
773*b2055c35SXin Li return 0;
774*b2055c35SXin Li *carr = (double*) calloc(sz, sizeof(double));
775*b2055c35SXin Li if (!*carr) {
776*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
777*b2055c35SXin Li return 0;
778*b2055c35SXin Li }
779*b2055c35SXin Li for (i=0; i<sz; i++)
780*b2055c35SXin Li (*carr)[i] = (double)(*jarr)[i];
781*b2055c35SXin Li return 1;
782*b2055c35SXin Li }
783*b2055c35SXin Li
SWIG_JavaArrayArgoutDouble(JNIEnv * jenv,jdouble * jarr,double * carr,jdoubleArray input)784*b2055c35SXin Li void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input) {
785*b2055c35SXin Li int i;
786*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
787*b2055c35SXin Li for (i=0; i<sz; i++)
788*b2055c35SXin Li jarr[i] = (jdouble)carr[i];
789*b2055c35SXin Li (*jenv)->ReleaseDoubleArrayElements(jenv, input, jarr, 0);
790*b2055c35SXin Li }
791*b2055c35SXin Li
SWIG_JavaArrayOutDouble(JNIEnv * jenv,double * result,jsize sz)792*b2055c35SXin Li jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) {
793*b2055c35SXin Li jdouble *arr;
794*b2055c35SXin Li int i;
795*b2055c35SXin Li jdoubleArray jresult = (*jenv)->NewDoubleArray(jenv, sz);
796*b2055c35SXin Li if (!jresult)
797*b2055c35SXin Li return NULL;
798*b2055c35SXin Li arr = (*jenv)->GetDoubleArrayElements(jenv, jresult, 0);
799*b2055c35SXin Li if (!arr)
800*b2055c35SXin Li return NULL;
801*b2055c35SXin Li for (i=0; i<sz; i++)
802*b2055c35SXin Li arr[i] = (jdouble)result[i];
803*b2055c35SXin Li (*jenv)->ReleaseDoubleArrayElements(jenv, jresult, arr, 0);
804*b2055c35SXin Li return jresult;
805*b2055c35SXin Li }
806*b2055c35SXin Li
807*b2055c35SXin Li
808*b2055c35SXin Li #endif
809*b2055c35SXin Li
810*b2055c35SXin Li
811*b2055c35SXin Li #include "webp/types.h"
812*b2055c35SXin Li
813*b2055c35SXin Li
814*b2055c35SXin Li int SWIG_JavaArrayInUint8 (JNIEnv *jenv, jbyte **jarr, uint8_t **carr, jbyteArray input);
815*b2055c35SXin Li void SWIG_JavaArrayArgoutUint8 (JNIEnv *jenv, jbyte *jarr, uint8_t *carr, jbyteArray input);
816*b2055c35SXin Li jbyteArray SWIG_JavaArrayOutUint8 (JNIEnv *jenv, uint8_t *result, jsize sz);
817*b2055c35SXin Li
818*b2055c35SXin Li
819*b2055c35SXin Li /* uint8_t[] support */
SWIG_JavaArrayInUint8(JNIEnv * jenv,jbyte ** jarr,uint8_t ** carr,jbyteArray input)820*b2055c35SXin Li int SWIG_JavaArrayInUint8 (JNIEnv *jenv, jbyte **jarr, uint8_t **carr, jbyteArray input) {
821*b2055c35SXin Li int i;
822*b2055c35SXin Li jsize sz;
823*b2055c35SXin Li if (!input) {
824*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
825*b2055c35SXin Li return 0;
826*b2055c35SXin Li }
827*b2055c35SXin Li sz = (*jenv)->GetArrayLength(jenv, input);
828*b2055c35SXin Li *jarr = (*jenv)->GetByteArrayElements(jenv, input, 0);
829*b2055c35SXin Li if (!*jarr)
830*b2055c35SXin Li return 0;
831*b2055c35SXin Li *carr = (uint8_t*) calloc(sz, sizeof(uint8_t));
832*b2055c35SXin Li if (!*carr) {
833*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
834*b2055c35SXin Li return 0;
835*b2055c35SXin Li }
836*b2055c35SXin Li for (i=0; i<sz; i++)
837*b2055c35SXin Li (*carr)[i] = (uint8_t)(*jarr)[i];
838*b2055c35SXin Li return 1;
839*b2055c35SXin Li }
840*b2055c35SXin Li
SWIG_JavaArrayArgoutUint8(JNIEnv * jenv,jbyte * jarr,uint8_t * carr,jbyteArray input)841*b2055c35SXin Li void SWIG_JavaArrayArgoutUint8 (JNIEnv *jenv, jbyte *jarr, uint8_t *carr, jbyteArray input) {
842*b2055c35SXin Li int i;
843*b2055c35SXin Li jsize sz = (*jenv)->GetArrayLength(jenv, input);
844*b2055c35SXin Li for (i=0; i<sz; i++)
845*b2055c35SXin Li jarr[i] = (jbyte)carr[i];
846*b2055c35SXin Li (*jenv)->ReleaseByteArrayElements(jenv, input, jarr, 0);
847*b2055c35SXin Li }
848*b2055c35SXin Li
SWIG_JavaArrayOutUint8(JNIEnv * jenv,uint8_t * result,jsize sz)849*b2055c35SXin Li jbyteArray SWIG_JavaArrayOutUint8 (JNIEnv *jenv, uint8_t *result, jsize sz) {
850*b2055c35SXin Li jbyte *arr;
851*b2055c35SXin Li int i;
852*b2055c35SXin Li jbyteArray jresult = (*jenv)->NewByteArray(jenv, sz);
853*b2055c35SXin Li if (!jresult)
854*b2055c35SXin Li return NULL;
855*b2055c35SXin Li arr = (*jenv)->GetByteArrayElements(jenv, jresult, 0);
856*b2055c35SXin Li if (!arr)
857*b2055c35SXin Li return NULL;
858*b2055c35SXin Li for (i=0; i<sz; i++)
859*b2055c35SXin Li arr[i] = (jbyte)result[i];
860*b2055c35SXin Li (*jenv)->ReleaseByteArrayElements(jenv, jresult, arr, 0);
861*b2055c35SXin Li return jresult;
862*b2055c35SXin Li }
863*b2055c35SXin Li
864*b2055c35SXin Li
865*b2055c35SXin Li #include "webp/decode.h"
866*b2055c35SXin Li #include "webp/encode.h"
867*b2055c35SXin Li
868*b2055c35SXin Li
869*b2055c35SXin Li #define FillMeInAsSizeCannotBeDeterminedAutomatically \
870*b2055c35SXin Li (result ? (jint)ReturnedBufferSize(__FUNCTION__, arg3, arg4) : 0)
871*b2055c35SXin Li
872*b2055c35SXin Li
ReturnedBufferSize(const char * function,int * width,int * height)873*b2055c35SXin Li static size_t ReturnedBufferSize(
874*b2055c35SXin Li const char* function, int* width, int* height) {
875*b2055c35SXin Li static const struct sizemap {
876*b2055c35SXin Li const char* function;
877*b2055c35SXin Li int size_multiplier;
878*b2055c35SXin Li } size_map[] = {
879*b2055c35SXin Li #ifdef SWIGJAVA
880*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeRGB", 3 },
881*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeRGBA", 4 },
882*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeARGB", 4 },
883*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeBGR", 3 },
884*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_WebPDecodeBGRA", 4 },
885*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB", 1 },
886*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR", 1 },
887*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA", 1 },
888*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA", 1 },
889*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB", 1 },
890*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR", 1 },
891*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA", 1 },
892*b2055c35SXin Li { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA", 1 },
893*b2055c35SXin Li #endif
894*b2055c35SXin Li #ifdef SWIGPYTHON
895*b2055c35SXin Li { "WebPDecodeRGB", 3 },
896*b2055c35SXin Li { "WebPDecodeRGBA", 4 },
897*b2055c35SXin Li { "WebPDecodeARGB", 4 },
898*b2055c35SXin Li { "WebPDecodeBGR", 3 },
899*b2055c35SXin Li { "WebPDecodeBGRA", 4 },
900*b2055c35SXin Li { "wrap_WebPEncodeRGB", 1 },
901*b2055c35SXin Li { "wrap_WebPEncodeBGR", 1 },
902*b2055c35SXin Li { "wrap_WebPEncodeRGBA", 1 },
903*b2055c35SXin Li { "wrap_WebPEncodeBGRA", 1 },
904*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGB", 1 },
905*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGR", 1 },
906*b2055c35SXin Li { "wrap_WebPEncodeLosslessRGBA", 1 },
907*b2055c35SXin Li { "wrap_WebPEncodeLosslessBGRA", 1 },
908*b2055c35SXin Li #endif
909*b2055c35SXin Li { NULL, 0 }
910*b2055c35SXin Li };
911*b2055c35SXin Li const struct sizemap* p;
912*b2055c35SXin Li size_t size = 0;
913*b2055c35SXin Li
914*b2055c35SXin Li for (p = size_map; p->function; ++p) {
915*b2055c35SXin Li if (!strcmp(function, p->function)) {
916*b2055c35SXin Li size = *width * *height * p->size_multiplier;
917*b2055c35SXin Li break;
918*b2055c35SXin Li }
919*b2055c35SXin Li }
920*b2055c35SXin Li
921*b2055c35SXin Li return size;
922*b2055c35SXin Li }
923*b2055c35SXin Li
924*b2055c35SXin Li
925*b2055c35SXin Li typedef size_t (*WebPEncodeFunction)(const uint8_t* rgb,
926*b2055c35SXin Li int width, int height, int stride,
927*b2055c35SXin Li float quality_factor, uint8_t** output);
928*b2055c35SXin Li typedef size_t (*WebPEncodeLosslessFunction)(const uint8_t* rgb,
929*b2055c35SXin Li int width, int height, int stride,
930*b2055c35SXin Li uint8_t** output);
931*b2055c35SXin Li
EncodeLossy(const uint8_t * rgb,int width,int height,int stride,float quality_factor,WebPEncodeFunction encfn,int * output_size,int * unused)932*b2055c35SXin Li static uint8_t* EncodeLossy(const uint8_t* rgb,
933*b2055c35SXin Li int width, int height, int stride,
934*b2055c35SXin Li float quality_factor,
935*b2055c35SXin Li WebPEncodeFunction encfn,
936*b2055c35SXin Li int* output_size, int* unused) {
937*b2055c35SXin Li uint8_t* output = NULL;
938*b2055c35SXin Li const size_t image_size =
939*b2055c35SXin Li encfn(rgb, width, height, stride, quality_factor, &output);
940*b2055c35SXin Li // the values of following two will be interpreted by ReturnedBufferSize()
941*b2055c35SXin Li // as 'width' and 'height' in the size calculation.
942*b2055c35SXin Li *output_size = image_size;
943*b2055c35SXin Li *unused = 1;
944*b2055c35SXin Li return image_size ? output : NULL;
945*b2055c35SXin Li }
946*b2055c35SXin Li
EncodeLossless(const uint8_t * rgb,int width,int height,int stride,WebPEncodeLosslessFunction encfn,int * output_size,int * unused)947*b2055c35SXin Li static uint8_t* EncodeLossless(const uint8_t* rgb,
948*b2055c35SXin Li int width, int height, int stride,
949*b2055c35SXin Li WebPEncodeLosslessFunction encfn,
950*b2055c35SXin Li int* output_size, int* unused) {
951*b2055c35SXin Li uint8_t* output = NULL;
952*b2055c35SXin Li const size_t image_size = encfn(rgb, width, height, stride, &output);
953*b2055c35SXin Li // the values of the following two will be interpreted by
954*b2055c35SXin Li // ReturnedBufferSize() as 'width' and 'height' in the size calculation.
955*b2055c35SXin Li *output_size = image_size;
956*b2055c35SXin Li *unused = 1;
957*b2055c35SXin Li return image_size ? output : NULL;
958*b2055c35SXin Li }
959*b2055c35SXin Li
960*b2055c35SXin Li
961*b2055c35SXin Li // Changes the return type of WebPEncode* to more closely match Decode*.
962*b2055c35SXin Li // This also makes it easier to wrap the output buffer in a native type rather
963*b2055c35SXin Li // than dealing with the return pointer.
964*b2055c35SXin Li // The additional parameters are to allow reuse of ReturnedBufferSize(),
965*b2055c35SXin Li // unused2 and output_size will be used in this case.
966*b2055c35SXin Li #define LOSSY_WRAPPER(FUNC) \
967*b2055c35SXin Li static uint8_t* wrap_##FUNC( \
968*b2055c35SXin Li const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
969*b2055c35SXin Li int width, int height, int stride, float quality_factor) { \
970*b2055c35SXin Li return EncodeLossy(rgb, width, height, stride, quality_factor, \
971*b2055c35SXin Li FUNC, output_size, unused2); \
972*b2055c35SXin Li } \
973*b2055c35SXin Li
974*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeRGB)
LOSSY_WRAPPER(WebPEncodeBGR)975*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeBGR)
976*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeRGBA)
977*b2055c35SXin Li LOSSY_WRAPPER(WebPEncodeBGRA)
978*b2055c35SXin Li
979*b2055c35SXin Li #undef LOSSY_WRAPPER
980*b2055c35SXin Li
981*b2055c35SXin Li #define LOSSLESS_WRAPPER(FUNC) \
982*b2055c35SXin Li static uint8_t* wrap_##FUNC( \
983*b2055c35SXin Li const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
984*b2055c35SXin Li int width, int height, int stride) { \
985*b2055c35SXin Li return EncodeLossless(rgb, width, height, stride, \
986*b2055c35SXin Li FUNC, output_size, unused2); \
987*b2055c35SXin Li } \
988*b2055c35SXin Li
989*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessRGB)
990*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessBGR)
991*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessRGBA)
992*b2055c35SXin Li LOSSLESS_WRAPPER(WebPEncodeLosslessBGRA)
993*b2055c35SXin Li
994*b2055c35SXin Li #undef LOSSLESS_WRAPPER
995*b2055c35SXin Li
996*b2055c35SXin Li
997*b2055c35SXin Li
998*b2055c35SXin Li /* Work around broken gcj jni.h */
999*b2055c35SXin Li #ifdef __GCJ_JNI_H__
1000*b2055c35SXin Li # undef JNIEXPORT
1001*b2055c35SXin Li # define JNIEXPORT
1002*b2055c35SXin Li # undef JNICALL
1003*b2055c35SXin Li # define JNICALL
1004*b2055c35SXin Li #endif
1005*b2055c35SXin Li
1006*b2055c35SXin Li
1007*b2055c35SXin Li #ifdef __cplusplus
1008*b2055c35SXin Li extern "C" {
1009*b2055c35SXin Li #endif
1010*b2055c35SXin Li
1011*b2055c35SXin Li SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetDecoderVersion(JNIEnv *jenv, jclass jcls) {
1012*b2055c35SXin Li jint jresult = 0 ;
1013*b2055c35SXin Li int result;
1014*b2055c35SXin Li
1015*b2055c35SXin Li (void)jenv;
1016*b2055c35SXin Li (void)jcls;
1017*b2055c35SXin Li result = (int)WebPGetDecoderVersion();
1018*b2055c35SXin Li jresult = (jint)result;
1019*b2055c35SXin Li return jresult;
1020*b2055c35SXin Li }
1021*b2055c35SXin Li
1022*b2055c35SXin Li
1023*b2055c35SXin Li SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetInfo(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1024*b2055c35SXin Li jint jresult = 0 ;
1025*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1026*b2055c35SXin Li size_t arg2 ;
1027*b2055c35SXin Li int *arg3 = (int *) 0 ;
1028*b2055c35SXin Li int *arg4 = (int *) 0 ;
1029*b2055c35SXin Li jbyte *jarr1 ;
1030*b2055c35SXin Li int temp3 ;
1031*b2055c35SXin Li int temp4 ;
1032*b2055c35SXin Li int result;
1033*b2055c35SXin Li
1034*b2055c35SXin Li (void)jenv;
1035*b2055c35SXin Li (void)jcls;
1036*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1037*b2055c35SXin Li arg2 = (size_t)jarg2;
1038*b2055c35SXin Li {
1039*b2055c35SXin Li if (!jarg3) {
1040*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1041*b2055c35SXin Li return 0;
1042*b2055c35SXin Li }
1043*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1044*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1045*b2055c35SXin Li return 0;
1046*b2055c35SXin Li }
1047*b2055c35SXin Li arg3 = &temp3;
1048*b2055c35SXin Li }
1049*b2055c35SXin Li {
1050*b2055c35SXin Li if (!jarg4) {
1051*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1052*b2055c35SXin Li return 0;
1053*b2055c35SXin Li }
1054*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1055*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1056*b2055c35SXin Li return 0;
1057*b2055c35SXin Li }
1058*b2055c35SXin Li arg4 = &temp4;
1059*b2055c35SXin Li }
1060*b2055c35SXin Li result = (int)WebPGetInfo((uint8_t const *)arg1,arg2,arg3,arg4);
1061*b2055c35SXin Li jresult = (jint)result;
1062*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1063*b2055c35SXin Li {
1064*b2055c35SXin Li jint jvalue = (jint)temp3;
1065*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1066*b2055c35SXin Li }
1067*b2055c35SXin Li {
1068*b2055c35SXin Li jint jvalue = (jint)temp4;
1069*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1070*b2055c35SXin Li }
1071*b2055c35SXin Li free(arg1);
1072*b2055c35SXin Li
1073*b2055c35SXin Li
1074*b2055c35SXin Li return jresult;
1075*b2055c35SXin Li }
1076*b2055c35SXin Li
1077*b2055c35SXin Li
1078*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1079*b2055c35SXin Li jbyteArray jresult = 0 ;
1080*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1081*b2055c35SXin Li size_t arg2 ;
1082*b2055c35SXin Li int *arg3 = (int *) 0 ;
1083*b2055c35SXin Li int *arg4 = (int *) 0 ;
1084*b2055c35SXin Li jbyte *jarr1 ;
1085*b2055c35SXin Li int temp3 ;
1086*b2055c35SXin Li int temp4 ;
1087*b2055c35SXin Li uint8_t *result = 0 ;
1088*b2055c35SXin Li
1089*b2055c35SXin Li (void)jenv;
1090*b2055c35SXin Li (void)jcls;
1091*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1092*b2055c35SXin Li arg2 = (size_t)jarg2;
1093*b2055c35SXin Li {
1094*b2055c35SXin Li if (!jarg3) {
1095*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1096*b2055c35SXin Li return 0;
1097*b2055c35SXin Li }
1098*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1099*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1100*b2055c35SXin Li return 0;
1101*b2055c35SXin Li }
1102*b2055c35SXin Li arg3 = &temp3;
1103*b2055c35SXin Li }
1104*b2055c35SXin Li {
1105*b2055c35SXin Li if (!jarg4) {
1106*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1107*b2055c35SXin Li return 0;
1108*b2055c35SXin Li }
1109*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1110*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1111*b2055c35SXin Li return 0;
1112*b2055c35SXin Li }
1113*b2055c35SXin Li arg4 = &temp4;
1114*b2055c35SXin Li }
1115*b2055c35SXin Li result = (uint8_t *)WebPDecodeRGB((uint8_t const *)arg1,arg2,arg3,arg4);
1116*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1117*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1118*b2055c35SXin Li {
1119*b2055c35SXin Li jint jvalue = (jint)temp3;
1120*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1121*b2055c35SXin Li }
1122*b2055c35SXin Li {
1123*b2055c35SXin Li jint jvalue = (jint)temp4;
1124*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1125*b2055c35SXin Li }
1126*b2055c35SXin Li free(arg1);
1127*b2055c35SXin Li
1128*b2055c35SXin Li
1129*b2055c35SXin Li free(result);
1130*b2055c35SXin Li return jresult;
1131*b2055c35SXin Li }
1132*b2055c35SXin Li
1133*b2055c35SXin Li
1134*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1135*b2055c35SXin Li jbyteArray jresult = 0 ;
1136*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1137*b2055c35SXin Li size_t arg2 ;
1138*b2055c35SXin Li int *arg3 = (int *) 0 ;
1139*b2055c35SXin Li int *arg4 = (int *) 0 ;
1140*b2055c35SXin Li jbyte *jarr1 ;
1141*b2055c35SXin Li int temp3 ;
1142*b2055c35SXin Li int temp4 ;
1143*b2055c35SXin Li uint8_t *result = 0 ;
1144*b2055c35SXin Li
1145*b2055c35SXin Li (void)jenv;
1146*b2055c35SXin Li (void)jcls;
1147*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1148*b2055c35SXin Li arg2 = (size_t)jarg2;
1149*b2055c35SXin Li {
1150*b2055c35SXin Li if (!jarg3) {
1151*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1152*b2055c35SXin Li return 0;
1153*b2055c35SXin Li }
1154*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1155*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1156*b2055c35SXin Li return 0;
1157*b2055c35SXin Li }
1158*b2055c35SXin Li arg3 = &temp3;
1159*b2055c35SXin Li }
1160*b2055c35SXin Li {
1161*b2055c35SXin Li if (!jarg4) {
1162*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1163*b2055c35SXin Li return 0;
1164*b2055c35SXin Li }
1165*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1166*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1167*b2055c35SXin Li return 0;
1168*b2055c35SXin Li }
1169*b2055c35SXin Li arg4 = &temp4;
1170*b2055c35SXin Li }
1171*b2055c35SXin Li result = (uint8_t *)WebPDecodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4);
1172*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1173*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1174*b2055c35SXin Li {
1175*b2055c35SXin Li jint jvalue = (jint)temp3;
1176*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1177*b2055c35SXin Li }
1178*b2055c35SXin Li {
1179*b2055c35SXin Li jint jvalue = (jint)temp4;
1180*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1181*b2055c35SXin Li }
1182*b2055c35SXin Li free(arg1);
1183*b2055c35SXin Li
1184*b2055c35SXin Li
1185*b2055c35SXin Li free(result);
1186*b2055c35SXin Li return jresult;
1187*b2055c35SXin Li }
1188*b2055c35SXin Li
1189*b2055c35SXin Li
1190*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeARGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1191*b2055c35SXin Li jbyteArray jresult = 0 ;
1192*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1193*b2055c35SXin Li size_t arg2 ;
1194*b2055c35SXin Li int *arg3 = (int *) 0 ;
1195*b2055c35SXin Li int *arg4 = (int *) 0 ;
1196*b2055c35SXin Li jbyte *jarr1 ;
1197*b2055c35SXin Li int temp3 ;
1198*b2055c35SXin Li int temp4 ;
1199*b2055c35SXin Li uint8_t *result = 0 ;
1200*b2055c35SXin Li
1201*b2055c35SXin Li (void)jenv;
1202*b2055c35SXin Li (void)jcls;
1203*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1204*b2055c35SXin Li arg2 = (size_t)jarg2;
1205*b2055c35SXin Li {
1206*b2055c35SXin Li if (!jarg3) {
1207*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1208*b2055c35SXin Li return 0;
1209*b2055c35SXin Li }
1210*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1211*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1212*b2055c35SXin Li return 0;
1213*b2055c35SXin Li }
1214*b2055c35SXin Li arg3 = &temp3;
1215*b2055c35SXin Li }
1216*b2055c35SXin Li {
1217*b2055c35SXin Li if (!jarg4) {
1218*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1219*b2055c35SXin Li return 0;
1220*b2055c35SXin Li }
1221*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1222*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1223*b2055c35SXin Li return 0;
1224*b2055c35SXin Li }
1225*b2055c35SXin Li arg4 = &temp4;
1226*b2055c35SXin Li }
1227*b2055c35SXin Li result = (uint8_t *)WebPDecodeARGB((uint8_t const *)arg1,arg2,arg3,arg4);
1228*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1229*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1230*b2055c35SXin Li {
1231*b2055c35SXin Li jint jvalue = (jint)temp3;
1232*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1233*b2055c35SXin Li }
1234*b2055c35SXin Li {
1235*b2055c35SXin Li jint jvalue = (jint)temp4;
1236*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1237*b2055c35SXin Li }
1238*b2055c35SXin Li free(arg1);
1239*b2055c35SXin Li
1240*b2055c35SXin Li
1241*b2055c35SXin Li free(result);
1242*b2055c35SXin Li return jresult;
1243*b2055c35SXin Li }
1244*b2055c35SXin Li
1245*b2055c35SXin Li
1246*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1247*b2055c35SXin Li jbyteArray jresult = 0 ;
1248*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1249*b2055c35SXin Li size_t arg2 ;
1250*b2055c35SXin Li int *arg3 = (int *) 0 ;
1251*b2055c35SXin Li int *arg4 = (int *) 0 ;
1252*b2055c35SXin Li jbyte *jarr1 ;
1253*b2055c35SXin Li int temp3 ;
1254*b2055c35SXin Li int temp4 ;
1255*b2055c35SXin Li uint8_t *result = 0 ;
1256*b2055c35SXin Li
1257*b2055c35SXin Li (void)jenv;
1258*b2055c35SXin Li (void)jcls;
1259*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1260*b2055c35SXin Li arg2 = (size_t)jarg2;
1261*b2055c35SXin Li {
1262*b2055c35SXin Li if (!jarg3) {
1263*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1264*b2055c35SXin Li return 0;
1265*b2055c35SXin Li }
1266*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1267*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1268*b2055c35SXin Li return 0;
1269*b2055c35SXin Li }
1270*b2055c35SXin Li arg3 = &temp3;
1271*b2055c35SXin Li }
1272*b2055c35SXin Li {
1273*b2055c35SXin Li if (!jarg4) {
1274*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1275*b2055c35SXin Li return 0;
1276*b2055c35SXin Li }
1277*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1278*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1279*b2055c35SXin Li return 0;
1280*b2055c35SXin Li }
1281*b2055c35SXin Li arg4 = &temp4;
1282*b2055c35SXin Li }
1283*b2055c35SXin Li result = (uint8_t *)WebPDecodeBGR((uint8_t const *)arg1,arg2,arg3,arg4);
1284*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1285*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1286*b2055c35SXin Li {
1287*b2055c35SXin Li jint jvalue = (jint)temp3;
1288*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1289*b2055c35SXin Li }
1290*b2055c35SXin Li {
1291*b2055c35SXin Li jint jvalue = (jint)temp4;
1292*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1293*b2055c35SXin Li }
1294*b2055c35SXin Li free(arg1);
1295*b2055c35SXin Li
1296*b2055c35SXin Li
1297*b2055c35SXin Li free(result);
1298*b2055c35SXin Li return jresult;
1299*b2055c35SXin Li }
1300*b2055c35SXin Li
1301*b2055c35SXin Li
1302*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1303*b2055c35SXin Li jbyteArray jresult = 0 ;
1304*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1305*b2055c35SXin Li size_t arg2 ;
1306*b2055c35SXin Li int *arg3 = (int *) 0 ;
1307*b2055c35SXin Li int *arg4 = (int *) 0 ;
1308*b2055c35SXin Li jbyte *jarr1 ;
1309*b2055c35SXin Li int temp3 ;
1310*b2055c35SXin Li int temp4 ;
1311*b2055c35SXin Li uint8_t *result = 0 ;
1312*b2055c35SXin Li
1313*b2055c35SXin Li (void)jenv;
1314*b2055c35SXin Li (void)jcls;
1315*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1316*b2055c35SXin Li arg2 = (size_t)jarg2;
1317*b2055c35SXin Li {
1318*b2055c35SXin Li if (!jarg3) {
1319*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1320*b2055c35SXin Li return 0;
1321*b2055c35SXin Li }
1322*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1323*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1324*b2055c35SXin Li return 0;
1325*b2055c35SXin Li }
1326*b2055c35SXin Li arg3 = &temp3;
1327*b2055c35SXin Li }
1328*b2055c35SXin Li {
1329*b2055c35SXin Li if (!jarg4) {
1330*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1331*b2055c35SXin Li return 0;
1332*b2055c35SXin Li }
1333*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1334*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1335*b2055c35SXin Li return 0;
1336*b2055c35SXin Li }
1337*b2055c35SXin Li arg4 = &temp4;
1338*b2055c35SXin Li }
1339*b2055c35SXin Li result = (uint8_t *)WebPDecodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4);
1340*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1341*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1342*b2055c35SXin Li {
1343*b2055c35SXin Li jint jvalue = (jint)temp3;
1344*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1345*b2055c35SXin Li }
1346*b2055c35SXin Li {
1347*b2055c35SXin Li jint jvalue = (jint)temp4;
1348*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1349*b2055c35SXin Li }
1350*b2055c35SXin Li free(arg1);
1351*b2055c35SXin Li
1352*b2055c35SXin Li
1353*b2055c35SXin Li free(result);
1354*b2055c35SXin Li return jresult;
1355*b2055c35SXin Li }
1356*b2055c35SXin Li
1357*b2055c35SXin Li
1358*b2055c35SXin Li SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetEncoderVersion(JNIEnv *jenv, jclass jcls) {
1359*b2055c35SXin Li jint jresult = 0 ;
1360*b2055c35SXin Li int result;
1361*b2055c35SXin Li
1362*b2055c35SXin Li (void)jenv;
1363*b2055c35SXin Li (void)jcls;
1364*b2055c35SXin Li result = (int)WebPGetEncoderVersion();
1365*b2055c35SXin Li jresult = (jint)result;
1366*b2055c35SXin Li return jresult;
1367*b2055c35SXin Li }
1368*b2055c35SXin Li
1369*b2055c35SXin Li
1370*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1371*b2055c35SXin Li jbyteArray jresult = 0 ;
1372*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1373*b2055c35SXin Li int *arg2 = (int *) 0 ;
1374*b2055c35SXin Li int *arg3 = (int *) 0 ;
1375*b2055c35SXin Li int *arg4 = (int *) 0 ;
1376*b2055c35SXin Li int arg5 ;
1377*b2055c35SXin Li int arg6 ;
1378*b2055c35SXin Li int arg7 ;
1379*b2055c35SXin Li float arg8 ;
1380*b2055c35SXin Li jbyte *jarr1 ;
1381*b2055c35SXin Li int temp4 ;
1382*b2055c35SXin Li uint8_t *result = 0 ;
1383*b2055c35SXin Li
1384*b2055c35SXin Li (void)jenv;
1385*b2055c35SXin Li (void)jcls;
1386*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1387*b2055c35SXin Li arg2 = (int *)&jarg2;
1388*b2055c35SXin Li arg3 = (int *)&jarg3;
1389*b2055c35SXin Li {
1390*b2055c35SXin Li if (!jarg4) {
1391*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1392*b2055c35SXin Li return 0;
1393*b2055c35SXin Li }
1394*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1395*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1396*b2055c35SXin Li return 0;
1397*b2055c35SXin Li }
1398*b2055c35SXin Li arg4 = &temp4;
1399*b2055c35SXin Li }
1400*b2055c35SXin Li arg5 = (int)jarg5;
1401*b2055c35SXin Li arg6 = (int)jarg6;
1402*b2055c35SXin Li arg7 = (int)jarg7;
1403*b2055c35SXin Li arg8 = (float)jarg8;
1404*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1405*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1406*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1407*b2055c35SXin Li {
1408*b2055c35SXin Li jint jvalue = (jint)temp4;
1409*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1410*b2055c35SXin Li }
1411*b2055c35SXin Li free(arg1);
1412*b2055c35SXin Li
1413*b2055c35SXin Li
1414*b2055c35SXin Li
1415*b2055c35SXin Li free(result);
1416*b2055c35SXin Li return jresult;
1417*b2055c35SXin Li }
1418*b2055c35SXin Li
1419*b2055c35SXin Li
1420*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1421*b2055c35SXin Li jbyteArray jresult = 0 ;
1422*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1423*b2055c35SXin Li int *arg2 = (int *) 0 ;
1424*b2055c35SXin Li int *arg3 = (int *) 0 ;
1425*b2055c35SXin Li int *arg4 = (int *) 0 ;
1426*b2055c35SXin Li int arg5 ;
1427*b2055c35SXin Li int arg6 ;
1428*b2055c35SXin Li int arg7 ;
1429*b2055c35SXin Li float arg8 ;
1430*b2055c35SXin Li jbyte *jarr1 ;
1431*b2055c35SXin Li int temp4 ;
1432*b2055c35SXin Li uint8_t *result = 0 ;
1433*b2055c35SXin Li
1434*b2055c35SXin Li (void)jenv;
1435*b2055c35SXin Li (void)jcls;
1436*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1437*b2055c35SXin Li arg2 = (int *)&jarg2;
1438*b2055c35SXin Li arg3 = (int *)&jarg3;
1439*b2055c35SXin Li {
1440*b2055c35SXin Li if (!jarg4) {
1441*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1442*b2055c35SXin Li return 0;
1443*b2055c35SXin Li }
1444*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1445*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1446*b2055c35SXin Li return 0;
1447*b2055c35SXin Li }
1448*b2055c35SXin Li arg4 = &temp4;
1449*b2055c35SXin Li }
1450*b2055c35SXin Li arg5 = (int)jarg5;
1451*b2055c35SXin Li arg6 = (int)jarg6;
1452*b2055c35SXin Li arg7 = (int)jarg7;
1453*b2055c35SXin Li arg8 = (float)jarg8;
1454*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1455*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1456*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1457*b2055c35SXin Li {
1458*b2055c35SXin Li jint jvalue = (jint)temp4;
1459*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1460*b2055c35SXin Li }
1461*b2055c35SXin Li free(arg1);
1462*b2055c35SXin Li
1463*b2055c35SXin Li
1464*b2055c35SXin Li
1465*b2055c35SXin Li free(result);
1466*b2055c35SXin Li return jresult;
1467*b2055c35SXin Li }
1468*b2055c35SXin Li
1469*b2055c35SXin Li
1470*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1471*b2055c35SXin Li jbyteArray jresult = 0 ;
1472*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1473*b2055c35SXin Li int *arg2 = (int *) 0 ;
1474*b2055c35SXin Li int *arg3 = (int *) 0 ;
1475*b2055c35SXin Li int *arg4 = (int *) 0 ;
1476*b2055c35SXin Li int arg5 ;
1477*b2055c35SXin Li int arg6 ;
1478*b2055c35SXin Li int arg7 ;
1479*b2055c35SXin Li float arg8 ;
1480*b2055c35SXin Li jbyte *jarr1 ;
1481*b2055c35SXin Li int temp4 ;
1482*b2055c35SXin Li uint8_t *result = 0 ;
1483*b2055c35SXin Li
1484*b2055c35SXin Li (void)jenv;
1485*b2055c35SXin Li (void)jcls;
1486*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1487*b2055c35SXin Li arg2 = (int *)&jarg2;
1488*b2055c35SXin Li arg3 = (int *)&jarg3;
1489*b2055c35SXin Li {
1490*b2055c35SXin Li if (!jarg4) {
1491*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1492*b2055c35SXin Li return 0;
1493*b2055c35SXin Li }
1494*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1495*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1496*b2055c35SXin Li return 0;
1497*b2055c35SXin Li }
1498*b2055c35SXin Li arg4 = &temp4;
1499*b2055c35SXin Li }
1500*b2055c35SXin Li arg5 = (int)jarg5;
1501*b2055c35SXin Li arg6 = (int)jarg6;
1502*b2055c35SXin Li arg7 = (int)jarg7;
1503*b2055c35SXin Li arg8 = (float)jarg8;
1504*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1505*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1506*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1507*b2055c35SXin Li {
1508*b2055c35SXin Li jint jvalue = (jint)temp4;
1509*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1510*b2055c35SXin Li }
1511*b2055c35SXin Li free(arg1);
1512*b2055c35SXin Li
1513*b2055c35SXin Li
1514*b2055c35SXin Li
1515*b2055c35SXin Li free(result);
1516*b2055c35SXin Li return jresult;
1517*b2055c35SXin Li }
1518*b2055c35SXin Li
1519*b2055c35SXin Li
1520*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1521*b2055c35SXin Li jbyteArray jresult = 0 ;
1522*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1523*b2055c35SXin Li int *arg2 = (int *) 0 ;
1524*b2055c35SXin Li int *arg3 = (int *) 0 ;
1525*b2055c35SXin Li int *arg4 = (int *) 0 ;
1526*b2055c35SXin Li int arg5 ;
1527*b2055c35SXin Li int arg6 ;
1528*b2055c35SXin Li int arg7 ;
1529*b2055c35SXin Li float arg8 ;
1530*b2055c35SXin Li jbyte *jarr1 ;
1531*b2055c35SXin Li int temp4 ;
1532*b2055c35SXin Li uint8_t *result = 0 ;
1533*b2055c35SXin Li
1534*b2055c35SXin Li (void)jenv;
1535*b2055c35SXin Li (void)jcls;
1536*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1537*b2055c35SXin Li arg2 = (int *)&jarg2;
1538*b2055c35SXin Li arg3 = (int *)&jarg3;
1539*b2055c35SXin Li {
1540*b2055c35SXin Li if (!jarg4) {
1541*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1542*b2055c35SXin Li return 0;
1543*b2055c35SXin Li }
1544*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1545*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1546*b2055c35SXin Li return 0;
1547*b2055c35SXin Li }
1548*b2055c35SXin Li arg4 = &temp4;
1549*b2055c35SXin Li }
1550*b2055c35SXin Li arg5 = (int)jarg5;
1551*b2055c35SXin Li arg6 = (int)jarg6;
1552*b2055c35SXin Li arg7 = (int)jarg7;
1553*b2055c35SXin Li arg8 = (float)jarg8;
1554*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1555*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1556*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1557*b2055c35SXin Li {
1558*b2055c35SXin Li jint jvalue = (jint)temp4;
1559*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1560*b2055c35SXin Li }
1561*b2055c35SXin Li free(arg1);
1562*b2055c35SXin Li
1563*b2055c35SXin Li
1564*b2055c35SXin Li
1565*b2055c35SXin Li free(result);
1566*b2055c35SXin Li return jresult;
1567*b2055c35SXin Li }
1568*b2055c35SXin Li
1569*b2055c35SXin Li
1570*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1571*b2055c35SXin Li jbyteArray jresult = 0 ;
1572*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1573*b2055c35SXin Li int *arg2 = (int *) 0 ;
1574*b2055c35SXin Li int *arg3 = (int *) 0 ;
1575*b2055c35SXin Li int *arg4 = (int *) 0 ;
1576*b2055c35SXin Li int arg5 ;
1577*b2055c35SXin Li int arg6 ;
1578*b2055c35SXin Li int arg7 ;
1579*b2055c35SXin Li jbyte *jarr1 ;
1580*b2055c35SXin Li int temp4 ;
1581*b2055c35SXin Li uint8_t *result = 0 ;
1582*b2055c35SXin Li
1583*b2055c35SXin Li (void)jenv;
1584*b2055c35SXin Li (void)jcls;
1585*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1586*b2055c35SXin Li arg2 = (int *)&jarg2;
1587*b2055c35SXin Li arg3 = (int *)&jarg3;
1588*b2055c35SXin Li {
1589*b2055c35SXin Li if (!jarg4) {
1590*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1591*b2055c35SXin Li return 0;
1592*b2055c35SXin Li }
1593*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1594*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1595*b2055c35SXin Li return 0;
1596*b2055c35SXin Li }
1597*b2055c35SXin Li arg4 = &temp4;
1598*b2055c35SXin Li }
1599*b2055c35SXin Li arg5 = (int)jarg5;
1600*b2055c35SXin Li arg6 = (int)jarg6;
1601*b2055c35SXin Li arg7 = (int)jarg7;
1602*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1603*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1604*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1605*b2055c35SXin Li {
1606*b2055c35SXin Li jint jvalue = (jint)temp4;
1607*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1608*b2055c35SXin Li }
1609*b2055c35SXin Li free(arg1);
1610*b2055c35SXin Li
1611*b2055c35SXin Li
1612*b2055c35SXin Li
1613*b2055c35SXin Li free(result);
1614*b2055c35SXin Li return jresult;
1615*b2055c35SXin Li }
1616*b2055c35SXin Li
1617*b2055c35SXin Li
1618*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1619*b2055c35SXin Li jbyteArray jresult = 0 ;
1620*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1621*b2055c35SXin Li int *arg2 = (int *) 0 ;
1622*b2055c35SXin Li int *arg3 = (int *) 0 ;
1623*b2055c35SXin Li int *arg4 = (int *) 0 ;
1624*b2055c35SXin Li int arg5 ;
1625*b2055c35SXin Li int arg6 ;
1626*b2055c35SXin Li int arg7 ;
1627*b2055c35SXin Li jbyte *jarr1 ;
1628*b2055c35SXin Li int temp4 ;
1629*b2055c35SXin Li uint8_t *result = 0 ;
1630*b2055c35SXin Li
1631*b2055c35SXin Li (void)jenv;
1632*b2055c35SXin Li (void)jcls;
1633*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1634*b2055c35SXin Li arg2 = (int *)&jarg2;
1635*b2055c35SXin Li arg3 = (int *)&jarg3;
1636*b2055c35SXin Li {
1637*b2055c35SXin Li if (!jarg4) {
1638*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1639*b2055c35SXin Li return 0;
1640*b2055c35SXin Li }
1641*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1642*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1643*b2055c35SXin Li return 0;
1644*b2055c35SXin Li }
1645*b2055c35SXin Li arg4 = &temp4;
1646*b2055c35SXin Li }
1647*b2055c35SXin Li arg5 = (int)jarg5;
1648*b2055c35SXin Li arg6 = (int)jarg6;
1649*b2055c35SXin Li arg7 = (int)jarg7;
1650*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1651*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1652*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1653*b2055c35SXin Li {
1654*b2055c35SXin Li jint jvalue = (jint)temp4;
1655*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1656*b2055c35SXin Li }
1657*b2055c35SXin Li free(arg1);
1658*b2055c35SXin Li
1659*b2055c35SXin Li
1660*b2055c35SXin Li
1661*b2055c35SXin Li free(result);
1662*b2055c35SXin Li return jresult;
1663*b2055c35SXin Li }
1664*b2055c35SXin Li
1665*b2055c35SXin Li
1666*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1667*b2055c35SXin Li jbyteArray jresult = 0 ;
1668*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1669*b2055c35SXin Li int *arg2 = (int *) 0 ;
1670*b2055c35SXin Li int *arg3 = (int *) 0 ;
1671*b2055c35SXin Li int *arg4 = (int *) 0 ;
1672*b2055c35SXin Li int arg5 ;
1673*b2055c35SXin Li int arg6 ;
1674*b2055c35SXin Li int arg7 ;
1675*b2055c35SXin Li jbyte *jarr1 ;
1676*b2055c35SXin Li int temp4 ;
1677*b2055c35SXin Li uint8_t *result = 0 ;
1678*b2055c35SXin Li
1679*b2055c35SXin Li (void)jenv;
1680*b2055c35SXin Li (void)jcls;
1681*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1682*b2055c35SXin Li arg2 = (int *)&jarg2;
1683*b2055c35SXin Li arg3 = (int *)&jarg3;
1684*b2055c35SXin Li {
1685*b2055c35SXin Li if (!jarg4) {
1686*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1687*b2055c35SXin Li return 0;
1688*b2055c35SXin Li }
1689*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1690*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1691*b2055c35SXin Li return 0;
1692*b2055c35SXin Li }
1693*b2055c35SXin Li arg4 = &temp4;
1694*b2055c35SXin Li }
1695*b2055c35SXin Li arg5 = (int)jarg5;
1696*b2055c35SXin Li arg6 = (int)jarg6;
1697*b2055c35SXin Li arg7 = (int)jarg7;
1698*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1699*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1700*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1701*b2055c35SXin Li {
1702*b2055c35SXin Li jint jvalue = (jint)temp4;
1703*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1704*b2055c35SXin Li }
1705*b2055c35SXin Li free(arg1);
1706*b2055c35SXin Li
1707*b2055c35SXin Li
1708*b2055c35SXin Li
1709*b2055c35SXin Li free(result);
1710*b2055c35SXin Li return jresult;
1711*b2055c35SXin Li }
1712*b2055c35SXin Li
1713*b2055c35SXin Li
1714*b2055c35SXin Li SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1715*b2055c35SXin Li jbyteArray jresult = 0 ;
1716*b2055c35SXin Li uint8_t *arg1 = (uint8_t *) 0 ;
1717*b2055c35SXin Li int *arg2 = (int *) 0 ;
1718*b2055c35SXin Li int *arg3 = (int *) 0 ;
1719*b2055c35SXin Li int *arg4 = (int *) 0 ;
1720*b2055c35SXin Li int arg5 ;
1721*b2055c35SXin Li int arg6 ;
1722*b2055c35SXin Li int arg7 ;
1723*b2055c35SXin Li jbyte *jarr1 ;
1724*b2055c35SXin Li int temp4 ;
1725*b2055c35SXin Li uint8_t *result = 0 ;
1726*b2055c35SXin Li
1727*b2055c35SXin Li (void)jenv;
1728*b2055c35SXin Li (void)jcls;
1729*b2055c35SXin Li if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1730*b2055c35SXin Li arg2 = (int *)&jarg2;
1731*b2055c35SXin Li arg3 = (int *)&jarg3;
1732*b2055c35SXin Li {
1733*b2055c35SXin Li if (!jarg4) {
1734*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1735*b2055c35SXin Li return 0;
1736*b2055c35SXin Li }
1737*b2055c35SXin Li if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1738*b2055c35SXin Li SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1739*b2055c35SXin Li return 0;
1740*b2055c35SXin Li }
1741*b2055c35SXin Li arg4 = &temp4;
1742*b2055c35SXin Li }
1743*b2055c35SXin Li arg5 = (int)jarg5;
1744*b2055c35SXin Li arg6 = (int)jarg6;
1745*b2055c35SXin Li arg7 = (int)jarg7;
1746*b2055c35SXin Li result = (uint8_t *)wrap_WebPEncodeLosslessBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1747*b2055c35SXin Li jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1748*b2055c35SXin Li SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1749*b2055c35SXin Li {
1750*b2055c35SXin Li jint jvalue = (jint)temp4;
1751*b2055c35SXin Li (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1752*b2055c35SXin Li }
1753*b2055c35SXin Li free(arg1);
1754*b2055c35SXin Li
1755*b2055c35SXin Li
1756*b2055c35SXin Li
1757*b2055c35SXin Li free(result);
1758*b2055c35SXin Li return jresult;
1759*b2055c35SXin Li }
1760*b2055c35SXin Li
1761*b2055c35SXin Li
1762*b2055c35SXin Li #ifdef __cplusplus
1763*b2055c35SXin Li }
1764*b2055c35SXin Li #endif
1765*b2055c35SXin Li
1766