From c9c6ac785a79cc7b60ca86f71bfc61405d72fb3b Mon Sep 17 00:00:00 2001 From: Petre Eftime Date: Mon, 14 Sep 2015 17:12:43 +0300 Subject: [PATCH] mraajava.i: Return array properly for SPI write Signed-off-by: Petre Eftime Signed-off-by: Brendan Le Foll --- src/java/mraajava.i | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/java/mraajava.i b/src/java/mraajava.i index 4d4bc75..94c270b 100644 --- a/src/java/mraajava.i +++ b/src/java/mraajava.i @@ -35,5 +35,23 @@ $2 = JCALL1(GetArrayLength, jenv, $input); } +%typemap(jtype) uint8_t * "byte[]" +%typemap(jstype) uint8_t * "byte[]" +%typemap(jni) uint8_t * "jbyteArray" +%typemap(javaout) uint8_t * { + return $jnicall; +} + +namespace mraa { +class Spi; +%typemap(out) uint8_t* +{ + // need to loop over length + $result = JCALL1(NewByteArray, jenv, arg3); + JCALL4(SetByteArrayRegion, jenv, $result, 0, arg3, (jbyte *) $1); + free($1); +} +} + %feature("director") IsrCallback; %include ../mraa.i