From ea669ddfc6078312ac6ff0f265d8f7d3f84e1143 Mon Sep 17 00:00:00 2001 From: Petre Date: Wed, 26 Aug 2015 18:44:34 +0300 Subject: [PATCH] java: fix Java return type for readData in MMA7455 Signed-off-by: Petre Signed-off-by: Mihai Tudor Panu --- src/mma7455/javaupm_mma7455.i | 16 ++++++++++++++++ src/mma7455/mma7455.cxx | 8 ++++++++ src/mma7455/mma7455.h | 9 +++++++++ 3 files changed, 33 insertions(+) diff --git a/src/mma7455/javaupm_mma7455.i b/src/mma7455/javaupm_mma7455.i index c61f055f..1f57ef47 100644 --- a/src/mma7455/javaupm_mma7455.i +++ b/src/mma7455/javaupm_mma7455.i @@ -10,4 +10,20 @@ #include "mma7455.h" %} +%typemap(jni) short* "jshortArray" +%typemap(jstype) short* "short[]" +%typemap(jtype) short* "short[]" + +%typemap(javaout) short* { + return $jnicall; +} + +%typemap(out) short *readData { + $result = JCALL1(NewShortArray, jenv, 3); + JCALL4(SetShortArrayRegion, jenv, $result, 0, 3, (const signed short*)$1); + delete [] $1; +} + +%ignore readData(short *, short *, short *); + %include "mma7455.h" diff --git a/src/mma7455/mma7455.cxx b/src/mma7455/mma7455.cxx index 0d79de34..e3db0f7c 100644 --- a/src/mma7455/mma7455.cxx +++ b/src/mma7455/mma7455.cxx @@ -137,6 +137,14 @@ MMA7455::readData (short * ptrX, short * ptrY, short * ptrZ) { return MRAA_SUCCESS; } +#ifdef SWIGJAVA +short *MMA7455::readData() { + short *v = new short[3]; + readData(&v[0], &v[1], &v[2]); + return v; +} +#endif + int MMA7455::ic2ReadReg (unsigned char reg, unsigned char * buf, unsigned char size) { if (MRAA_SUCCESS != mraa_i2c_address(m_i2ControlCtx, m_controlAddr)) { diff --git a/src/mma7455/mma7455.h b/src/mma7455/mma7455.h index 49fd4dab..9f06e63c 100644 --- a/src/mma7455/mma7455.h +++ b/src/mma7455/mma7455.h @@ -206,6 +206,15 @@ class MMA7455 { */ mraa_result_t readData (short * ptrX, short * ptrY, short * ptrZ); +#ifdef SWIGJAVA + /** + * Reads X-axis, Y-axis, and Z-axis acceleration data + * + * @return Array containing X, Y, Z acceleration data + */ + short *readData (); +#endif + /** * *