java: added callback functionality

Signed-off-by: Stefan Andritoiu <stefan.andritoiu@intel.com>
Signed-off-by: Andrei Vasiliu <andrei.vasiliu@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Stefan Andritoiu
2015-08-18 16:57:38 +03:00
committed by Mihai Tudor Panu
parent 3e59323abb
commit 323905a215
14 changed files with 150 additions and 19 deletions

View File

@ -1,8 +1,13 @@
%module javaupm_rpr220
%include "../upm.i"
%feature("director") IsrCallback;
%ignore generic_callback_isr;
%include "../IsrCallback.h"
%{
#include "rpr220.h"
%}
%include "rpr220.h"

View File

@ -26,6 +26,7 @@
#include "rpr220.h"
using namespace upm;
using namespace std;
@ -55,6 +56,13 @@ bool RPR220::blackDetected()
return (mraa_gpio_read(m_gpio) ? true : false);
}
#ifdef SWIGJAVA
void RPR220::installISR(IsrCallback *cb)
{
installISR(generic_callback_isr, cb);
}
#endif
void RPR220::installISR(void (*isr)(void *), void *arg)
{
if (m_isrInstalled)

View File

@ -26,6 +26,10 @@
#include <string>
#include <mraa/gpio.h>
#ifdef SWIGJAVA
#include "../IsrCallback.h"
#endif
namespace upm {
/**
@ -83,6 +87,9 @@ namespace upm {
*/
bool blackDetected();
#ifdef SWIGJAVA
void installISR(IsrCallback *cb);
#else
/**
* Installs an ISR to be called when
* black is detected
@ -92,6 +99,7 @@ namespace upm {
* argument to the ISR.
*/
void installISR(void (*isr)(void *), void *arg);
#endif
/**
* Uninstalls the previously installed ISR
@ -100,6 +108,9 @@ namespace upm {
void uninstallISR();
private:
#ifdef SWIGJAVA
void installISR(void (*isr)(void *), void *arg);
#endif
bool m_isrInstalled;
mraa_gpio_context m_gpio;
};