java: Migrate IsrCallbacks to Java's Runnable class
Signed-off-by: Petre Eftime <petre.p.eftime@intel.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
committed by
Brendan Le Foll
parent
78a4d12a37
commit
c63e38a57e
@@ -44,6 +44,12 @@ extern "C" {
|
||||
#include <Python.h>
|
||||
#endif
|
||||
|
||||
#if defined(SWIGJAVA) || defined(JAVACALLBACK)
|
||||
#include <jni.h>
|
||||
extern JavaVM *globVM;
|
||||
extern void mraa_java_isr_callback(void *);
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <pthread.h>
|
||||
|
||||
|
||||
@@ -69,30 +69,6 @@ typedef enum {
|
||||
EDGE_FALLING = 3 /**< Interupt on falling only */
|
||||
} Edge;
|
||||
|
||||
#if defined(SWIGJAVA)
|
||||
|
||||
class IsrCallback
|
||||
{
|
||||
friend class Gpio;
|
||||
public:
|
||||
virtual ~IsrCallback()
|
||||
{
|
||||
}
|
||||
virtual void
|
||||
run()
|
||||
{ /* empty, overloaded in Java*/
|
||||
}
|
||||
|
||||
protected:
|
||||
static void
|
||||
generic_isr_callback(void* data)
|
||||
{
|
||||
IsrCallback* callback = (IsrCallback*) data;
|
||||
callback->run();
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief API to General Purpose IO
|
||||
*
|
||||
@@ -196,13 +172,13 @@ class Gpio
|
||||
#endif
|
||||
return (Result) mraa_gpio_isr(m_gpio, (mraa_gpio_edge_t) mode, &uvwork, this);
|
||||
}
|
||||
#elif defined(SWIGJAVA)
|
||||
#elif defined(SWIGJAVA) || defined(JAVACALLBACK)
|
||||
Result
|
||||
isr(Edge mode, IsrCallback* cb)
|
||||
isr(Edge mode, jobject runnable)
|
||||
{
|
||||
return (Result) mraa_gpio_isr(m_gpio, (mraa_gpio_edge_t) mode, &IsrCallback::generic_isr_callback, cb);
|
||||
return (Result) mraa_gpio_isr(m_gpio, (mraa_gpio_edge_t) mode, mraa_java_isr_callback, runnable);
|
||||
}
|
||||
#else
|
||||
#endif
|
||||
/**
|
||||
* Sets a callback to be called when pin value changes
|
||||
*
|
||||
@@ -217,7 +193,7 @@ class Gpio
|
||||
{
|
||||
return (Result) mraa_gpio_isr(m_gpio, (mraa_gpio_edge_t) mode, fptr, args);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Exits callback - this call will not kill the isr thread immediatly
|
||||
* but only when it is out of it's critical section
|
||||
|
||||
Reference in New Issue
Block a user