diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ab9b3661..1297c753 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -67,6 +67,7 @@ macro(upm_SWIG_JAVA) if (BUILDSWIGJAVA AND BUILDSWIG) FIND_PACKAGE (JNI REQUIRED) + pkg_check_modules (MRAAJAVA REQUIRED mraajava>=0.8.0) include_directories ( ${JAVA_INCLUDE_PATH} @@ -77,7 +78,7 @@ macro(upm_SWIG_JAVA) set_source_files_properties (javaupm_${libname}.i PROPERTIES CPLUSPLUS ON) set_source_files_properties (javaupm_${libname}.i PROPERTIES SWIG_FLAGS ";-package;upm_${libname};-I${CMAKE_BINARY_DIR}/src") swig_add_module (javaupm_${libname} java javaupm_${libname}.i ${module_src}) - swig_link_libraries (javaupm_${libname} ${MRAA_LIBRARIES} ${JAVA_LIBRARIES}) + swig_link_libraries (javaupm_${libname} ${MRAAJAVA_LDFLAGS} ${JAVA_LDFLAGS}) target_include_directories ( ${SWIG_MODULE_javaupm_${libname}_REAL_NAME} PUBLIC "${JAVA_INCLUDE_DIRS}" diff --git a/src/IsrCallback.h b/src/IsrCallback.h deleted file mode 100644 index aaf4455b..00000000 --- a/src/IsrCallback.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -class IsrCallback -{ - public: - virtual ~IsrCallback() - { - } - virtual void run() - { /* empty, overloaded in Java*/ - } - - private: -}; - - -static void generic_callback_isr (void* data) -{ - IsrCallback* callback = (IsrCallback*) data; - if (callback == NULL) - return; - callback->run(); -} -#endif diff --git a/src/a110x/a110x.cxx b/src/a110x/a110x.cxx index 6d461fc0..2811e0e7 100644 --- a/src/a110x/a110x.cxx +++ b/src/a110x/a110x.cxx @@ -58,9 +58,9 @@ bool A110X::magnetDetected() } #ifdef JAVACALLBACK -void A110X::installISR( IsrCallback *cb) +void A110X::installISR(jobject runnable) { -installISR(generic_callback_isr, cb); +installISR(mraa_java_isr_callback, runnable); } #endif diff --git a/src/a110x/a110x.h b/src/a110x/a110x.h index 030acbda..d833a379 100644 --- a/src/a110x/a110x.h +++ b/src/a110x/a110x.h @@ -26,10 +26,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - namespace upm { /** * @brief A110X Hall Effect library @@ -90,7 +86,7 @@ namespace upm { * argument to the ISR. */ #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(IsrCallback *cb); + void installISR(jobject runnable); #else void installISR(void (*isr)(void *), void *arg); #endif diff --git a/src/a110x/javaupm_a110x.i b/src/a110x/javaupm_a110x.i index 8f8d751d..ca9cb37d 100644 --- a/src/a110x/javaupm_a110x.i +++ b/src/a110x/javaupm_a110x.i @@ -1,13 +1,8 @@ -%module(directors="1") javaupm_a110x +%module javaupm_a110x %include "../upm.i" %include "stdint.i" %include "typemaps.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %{ #include "a110x.h" %} @@ -22,4 +17,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/bma220/bma220.cxx b/src/bma220/bma220.cxx index 74c78238..4148b932 100644 --- a/src/bma220/bma220.cxx +++ b/src/bma220/bma220.cxx @@ -489,14 +489,21 @@ bool BMA220::resetInterrupts() return writeReg(REG_ENABLE_CONFIG2, reg); } -#ifdef SWIGJAVA +#if defined(SWIGJAVA) || (JAVACALLBACK) void BMA220::installISR(int gpio, mraa::Edge level, - IsrCallback *cb) + jobject runnable) { - installISR(gpio, level, generic_callback_isr, cb); -} -#endif + // delete any existing ISR and GPIO context + uninstallISR(); + // create gpio context + m_gpioIntr = new mraa::Gpio(gpio); + + m_gpioIntr->dir(mraa::DIR_IN); + m_gpioIntr->isr(level, runnable); + +} +#else void BMA220::installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg) { @@ -509,6 +516,7 @@ void BMA220::installISR(int gpio, mraa::Edge level, m_gpioIntr->dir(mraa::DIR_IN); m_gpioIntr->isr(level, isr, arg); } +#endif void BMA220::uninstallISR() { diff --git a/src/bma220/bma220.h b/src/bma220/bma220.h index aac45028..7219e2f4 100644 --- a/src/bma220/bma220.h +++ b/src/bma220/bma220.h @@ -28,10 +28,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - #define BMA220_I2C_BUS 0 #define BMA220_DEFAULT_ADDR 0x0a @@ -782,7 +778,7 @@ namespace upm { bool resetInterrupts(); #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(int gpio, mraa::Edge level, IsrCallback *cb); + void installISR(int gpio, mraa::Edge level, jobject runnable); #else /** * install an interrupt handler. diff --git a/src/bma220/javaupm_bma220.i b/src/bma220/javaupm_bma220.i index f292013f..82e1f566 100644 --- a/src/bma220/javaupm_bma220.i +++ b/src/bma220/javaupm_bma220.i @@ -1,15 +1,10 @@ -%module(directors="1") javaupm_bma220 +%module javaupm_bma220 %include "../upm.i" %include "cpointer.i" %include "typemaps.i" %include "arrays_java.i"; %include "../java_buffer.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int {mraa::Edge}; %apply float *INOUT { float *x, float *y, float *z }; @@ -44,4 +39,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/grove/grove.cxx b/src/grove/grove.cxx index e9a7cb68..4be1f3e8 100644 --- a/src/grove/grove.cxx +++ b/src/grove/grove.cxx @@ -279,9 +279,9 @@ int GroveButton::value() } #ifdef JAVACALLBACK -void GroveButton::installISR(mraa::Edge level, IsrCallback *cb) +void GroveButton::installISR(mraa::Edge level, jobject runnable) { - installISR(level, generic_callback_isr, cb); + installISR(level, mraa_java_isr_callback, runnable); } #endif diff --git a/src/grove/grove.h b/src/grove/grove.h index bdeff8c8..1ef60e92 100644 --- a/src/grove/grove.h +++ b/src/grove/grove.h @@ -29,10 +29,6 @@ #include #include -#ifdef JAVACALLBACK -#include "../IsrCallback.h" -#endif - namespace upm { /** @@ -392,7 +388,7 @@ class GroveButton: public Grove { * argument to the ISR. */ #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(mraa::Edge level, IsrCallback *cb); + void installISR(mraa::Edge level, jobject runnable); #else void installISR(mraa::Edge level, void (*isr)(void *), void *arg); #endif diff --git a/src/grove/javaupm_grove.i b/src/grove/javaupm_grove.i index 21967356..ab9636b7 100644 --- a/src/grove/javaupm_grove.i +++ b/src/grove/javaupm_grove.i @@ -1,12 +1,7 @@ -%module (directors="1", docstring="Basic Grove sensors") javaupm_grove +%module (docstring="Basic Grove sensors") javaupm_grove %include "../upm.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int {mraa::Edge} %{ diff --git a/src/hcsr04/hcsr04.cxx b/src/hcsr04/hcsr04.cxx index f09ad8f4..1a6a49ed 100644 --- a/src/hcsr04/hcsr04.cxx +++ b/src/hcsr04/hcsr04.cxx @@ -30,6 +30,10 @@ #include #include +#ifdef JAVACALLBACK +#undef JAVACALLBACK +#endif + #include "hcsr04.h" using namespace upm; diff --git a/src/hcsr04/hcsr04.h b/src/hcsr04/hcsr04.h index abec55d4..000881d8 100644 --- a/src/hcsr04/hcsr04.h +++ b/src/hcsr04/hcsr04.h @@ -30,10 +30,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - #define CM 1 #define INC 0 diff --git a/src/hcsr04/javaupm_hcsr04.i b/src/hcsr04/javaupm_hcsr04.i index 3abee3b7..046646bd 100644 --- a/src/hcsr04/javaupm_hcsr04.i +++ b/src/hcsr04/javaupm_hcsr04.i @@ -1,4 +1,4 @@ -%module(directors="1") javaupm_hcsr04 +%module javaupm_hcsr04 %include "../upm.i" %{ diff --git a/src/lsm9ds0/javaupm_lsm9ds0.i b/src/lsm9ds0/javaupm_lsm9ds0.i index b54983e9..05ca5dcf 100644 --- a/src/lsm9ds0/javaupm_lsm9ds0.i +++ b/src/lsm9ds0/javaupm_lsm9ds0.i @@ -1,15 +1,10 @@ -%module(directors="1") javaupm_lsm9ds0 +%module javaupm_lsm9ds0 %include "../upm.i" %include "cpointer.i" %include "typemaps.i" %include "arrays_java.i"; %include "../java_buffer.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int {mraa::Edge}; %apply float *INOUT { float *x, float *y, float *z }; @@ -58,4 +53,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/lsm9ds0/lsm9ds0.cxx b/src/lsm9ds0/lsm9ds0.cxx index def2e448..3253a62e 100644 --- a/src/lsm9ds0/lsm9ds0.cxx +++ b/src/lsm9ds0/lsm9ds0.cxx @@ -741,14 +741,21 @@ uint8_t LSM9DS0::getInterruptGen2Src() return readReg(DEV_XM, REG_INT_GEN_2_SRC); } -#ifdef SWIGJAVA +#if defined(SWIGJAVA) || defined (JAVACALLBACK) void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, - IsrCallback *cb) + jobject runnable) { - installISR(intr, gpio, level, generic_callback_isr, cb); -} -#endif + // delete any existing ISR and GPIO context + uninstallISR(intr); + // greate gpio context + getPin(intr) = new mraa::Gpio(gpio); + + getPin(intr)->dir(mraa::DIR_IN); + getPin(intr)->isr(level, runnable); + +} +#else void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, void (*isr)(void *), void *arg) { @@ -761,6 +768,7 @@ void LSM9DS0::installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, getPin(intr)->dir(mraa::DIR_IN); getPin(intr)->isr(level, isr, arg); } +#endif void LSM9DS0::uninstallISR(INTERRUPT_PINS_T intr) { diff --git a/src/lsm9ds0/lsm9ds0.h b/src/lsm9ds0/lsm9ds0.h index b9101a83..b26e1915 100644 --- a/src/lsm9ds0/lsm9ds0.h +++ b/src/lsm9ds0/lsm9ds0.h @@ -29,10 +29,6 @@ #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - #define LSM9DS0_I2C_BUS 1 #define LSM9DS0_DEFAULT_XM_ADDR 0x1d #define LSM9DS0_DEFAULT_GYRO_ADDR 0x6b @@ -1413,7 +1409,7 @@ namespace upm { #if defined(SWIGJAVA) || defined(JAVACALLBACK) void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, - IsrCallback *cb); + jobject runnable); #else /** * install an interrupt handler. @@ -1464,11 +1460,6 @@ namespace upm { private: // OR'd with a register, this enables register autoincrement mode, // which we need. -#if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, - void (*isr)(void *), void *arg); -#endif - static const uint8_t m_autoIncrementMode = 0x80; mraa::I2c m_i2cG; diff --git a/src/mma7660/javaupm_mma7660.i b/src/mma7660/javaupm_mma7660.i index 8ec07499..50a21165 100644 --- a/src/mma7660/javaupm_mma7660.i +++ b/src/mma7660/javaupm_mma7660.i @@ -1,13 +1,8 @@ -%module(directors="1") javaupm_mma7660 +%module javaupm_mma7660 %include "../upm.i" %include "cpointer.i" %include "typemaps.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int *OUTPUT { int *x, int *y, int *z }; %apply float *OUTPUT { float *ax, float *ay, float *az }; @@ -58,4 +53,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/mma7660/mma7660.cxx b/src/mma7660/mma7660.cxx index 777f79c7..d8789c2c 100644 --- a/src/mma7660/mma7660.cxx +++ b/src/mma7660/mma7660.cxx @@ -207,9 +207,9 @@ bool MMA7660::tiltShake() } #ifdef JAVACALLBACK -void MMA7660::installISR(int pin, IsrCallback *cb) +void MMA7660::installISR(int pin, jobject runnable) { - installISR(pin, generic_callback_isr, cb); + installISR(pin, mraa_java_isr_callback, runnable); } #endif diff --git a/src/mma7660/mma7660.h b/src/mma7660/mma7660.h index c6a39889..f18a5de9 100644 --- a/src/mma7660/mma7660.h +++ b/src/mma7660/mma7660.h @@ -27,10 +27,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - #define MMA7660_I2C_BUS 0 #define MMA7660_DEFAULT_I2C_ADDR 0x4c @@ -271,7 +267,7 @@ namespace upm { * argument to the ISR. */ #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(int pin, IsrCallback *cb); + void installISR(int pin, jobject runnable); #else void installISR(int pin, void (*isr)(void *), void *arg); #endif diff --git a/src/mpu9150/javaupm_mpu9150.i b/src/mpu9150/javaupm_mpu9150.i index 37d5eac0..0d7c70be 100644 --- a/src/mpu9150/javaupm_mpu9150.i +++ b/src/mpu9150/javaupm_mpu9150.i @@ -1,14 +1,9 @@ -%module(directors="1") javaupm_mpu9150 +%module javaupm_mpu9150 %include "../upm.i" %include "typemaps.i" %include "arrays_java.i" %include "../java_buffer.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int {mraa::Edge}; %{ @@ -47,4 +42,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/mpu9150/mpu60x0.cxx b/src/mpu9150/mpu60x0.cxx index e3c53140..ad79051b 100644 --- a/src/mpu9150/mpu60x0.cxx +++ b/src/mpu9150/mpu60x0.cxx @@ -384,14 +384,20 @@ uint8_t MPU60X0::getInterruptPinConfig() return readReg(REG_INT_PIN_CFG); } -#ifdef JAVACALLBACK +#if defined(SWIGJAVA) || defined(JAVACALLBACK) void MPU60X0::installISR(int gpio, mraa::Edge level, - IsrCallback *cb) + jobject runnable) { - installISR(gpio, level, generic_callback_isr, cb); -} -#endif + // delete any existing ISR and GPIO context + uninstallISR(); + // greate gpio context + m_gpioIRQ = new mraa::Gpio(gpio); + + m_gpioIRQ->dir(mraa::DIR_IN); + m_gpioIRQ->isr(level, runnable); +} +#else void MPU60X0::installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg) { @@ -404,6 +410,7 @@ void MPU60X0::installISR(int gpio, mraa::Edge level, m_gpioIRQ->dir(mraa::DIR_IN); m_gpioIRQ->isr(level, isr, arg); } +#endif void MPU60X0::uninstallISR() { diff --git a/src/mpu9150/mpu60x0.h b/src/mpu9150/mpu60x0.h index 18b63198..667abc2c 100644 --- a/src/mpu9150/mpu60x0.h +++ b/src/mpu9150/mpu60x0.h @@ -29,10 +29,6 @@ #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - #define MPU60X0_I2C_BUS 0 #define MPU60X0_DEFAULT_I2C_ADDR 0x68 @@ -921,7 +917,7 @@ namespace upm { * @param arg the argument to pass the the interrupt handler */ #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(int gpio, mraa::Edge level, IsrCallback *cb); + void installISR(int gpio, mraa::Edge level, jobject runnable); #else void installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg); #endif @@ -951,10 +947,6 @@ namespace upm { float m_gyroScale; private: -#if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(int gpio, mraa::Edge level, void (*isr)(void *), void *arg); -#endif - mraa::I2c m_i2c; uint8_t m_addr; diff --git a/src/pn532/pn532.cxx b/src/pn532/pn532.cxx index e70604bf..997c9f89 100644 --- a/src/pn532/pn532.cxx +++ b/src/pn532/pn532.cxx @@ -32,6 +32,10 @@ #include #include +#ifdef JAVACALLBACK +#undef JAVACALLBACK +#endif + #include "pn532.h" using namespace upm; diff --git a/src/rgbringcoder/rgbringcoder.cxx b/src/rgbringcoder/rgbringcoder.cxx index 60372b62..6716f812 100644 --- a/src/rgbringcoder/rgbringcoder.cxx +++ b/src/rgbringcoder/rgbringcoder.cxx @@ -24,6 +24,9 @@ #include +#ifdef JAVACALLBACK +#undef JAVACALLBACK +#endif #include "rgbringcoder.h" using namespace std; diff --git a/src/rpr220/javaupm_rpr220.i b/src/rpr220/javaupm_rpr220.i index 95c56307..fd466d87 100644 --- a/src/rpr220/javaupm_rpr220.i +++ b/src/rpr220/javaupm_rpr220.i @@ -1,12 +1,7 @@ -%module(directors="1") javaupm_rpr220 +%module javaupm_rpr220 %include "../upm.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %{ #include "rpr220.h" %} @@ -21,4 +16,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/rpr220/rpr220.cxx b/src/rpr220/rpr220.cxx index 2d894ada..8068eaa3 100644 --- a/src/rpr220/rpr220.cxx +++ b/src/rpr220/rpr220.cxx @@ -59,9 +59,9 @@ bool RPR220::blackDetected() } #ifdef JAVACALLBACK -void RPR220::installISR(IsrCallback *cb) +void RPR220::installISR(jobject runnable) { - installISR(generic_callback_isr, cb); + installISR(mraa_java_isr_callback, runnable); } #endif diff --git a/src/rpr220/rpr220.h b/src/rpr220/rpr220.h index af34f870..c9db2e97 100644 --- a/src/rpr220/rpr220.h +++ b/src/rpr220/rpr220.h @@ -26,10 +26,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - namespace upm { /** @@ -88,7 +84,7 @@ namespace upm { bool blackDetected(); #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(IsrCallback *cb); + void installISR(jobject runnable); #else /** * Installs an ISR to be called when @@ -110,7 +106,7 @@ namespace upm { private: #if defined(SWIGJAVA) || defined(JAVACALLBACK) void installISR(void (*isr)(void *), void *arg); -#endif +#endif bool m_isrInstalled; mraa_gpio_context m_gpio; }; diff --git a/src/sx1276/javaupm_sx1276.i b/src/sx1276/javaupm_sx1276.i index 9927af76..61bb24bd 100644 --- a/src/sx1276/javaupm_sx1276.i +++ b/src/sx1276/javaupm_sx1276.i @@ -1,4 +1,4 @@ -%module(directors="1") javaupm_sx1276 +%module javaupm_sx1276 %include "../upm.i" %include "cpointer.i" %include "typemaps.i" diff --git a/src/sx1276/sx1276.cxx b/src/sx1276/sx1276.cxx index 0297a1c9..64a5ae34 100644 --- a/src/sx1276/sx1276.cxx +++ b/src/sx1276/sx1276.cxx @@ -29,6 +29,10 @@ #include #include +#ifdef JAVACALLBACK +#undef JAVACALLBACK +#endif + #include "sx1276.h" using namespace upm; diff --git a/src/ttp223/javaupm_ttp223.i b/src/ttp223/javaupm_ttp223.i index 74435172..c6b77c6b 100644 --- a/src/ttp223/javaupm_ttp223.i +++ b/src/ttp223/javaupm_ttp223.i @@ -1,12 +1,7 @@ -%module (directors=1, docstring="TTP223 Touch Sensor") javaupm_ttp223 +%module (docstring="TTP223 Touch Sensor") javaupm_ttp223 %include "../upm.i" -%feature("director") IsrCallback; -SWIG_DIRECTOR_OWNED(IsrCallback) -%ignore generic_callback_isr; -%include "../IsrCallback.h" - %apply int {mraa::Edge} @@ -25,4 +20,4 @@ SWIG_DIRECTOR_OWNED(IsrCallback) System.exit(1); } } -%} \ No newline at end of file +%} diff --git a/src/ttp223/ttp223.cxx b/src/ttp223/ttp223.cxx index 4e37d141..c20e468a 100644 --- a/src/ttp223/ttp223.cxx +++ b/src/ttp223/ttp223.cxx @@ -60,9 +60,9 @@ bool TTP223::isPressed() { } #ifdef JAVACALLBACK -void TTP223::installISR(mraa::Edge level, IsrCallback *cb) +void TTP223::installISR(mraa::Edge level, jobject runnable) { - installISR(level, generic_callback_isr, cb); + installISR(level, mraa_java_isr_callback, runnable); } #endif diff --git a/src/ttp223/ttp223.h b/src/ttp223/ttp223.h index 82038958..d2a37388 100644 --- a/src/ttp223/ttp223.h +++ b/src/ttp223/ttp223.h @@ -26,10 +26,6 @@ #include #include -#if defined(SWIGJAVA) || defined(JAVACALLBACK) -#include "../IsrCallback.h" -#endif - namespace upm { /** * @brief TTP223 Touch Detector Sensor library @@ -100,7 +96,7 @@ class TTP223 { * argument to the ISR. */ #if defined(SWIGJAVA) || defined(JAVACALLBACK) - void installISR(mraa::Edge level, IsrCallback *cb); + void installISR(mraa::Edge level, jobject runnable); #else void installISR(mraa::Edge level, void (*isr)(void *), void *arg); #endif diff --git a/src/upm.i b/src/upm.i index eed1e0f8..e69c63f2 100644 --- a/src/upm.i +++ b/src/upm.i @@ -26,4 +26,6 @@ void cleanUp(); #endif #if (SWIGJAVA) +%typemap(jtype) jobject runnable "java.lang.Runnable" +%typemap(jstype) jobject runnable "java.lang.Runnable" #endif diff --git a/src/wheelencoder/wheelencoder.cxx b/src/wheelencoder/wheelencoder.cxx index 7964ca72..ae48c1db 100644 --- a/src/wheelencoder/wheelencoder.cxx +++ b/src/wheelencoder/wheelencoder.cxx @@ -24,6 +24,9 @@ #include +#ifdef JAVACALLBACK +#undef JAVACALLBACK +#endif #include "wheelencoder.h" using namespace upm;