2018-01-17 14:11:35 +02:00
|
|
|
/* Macro for adding JAVA run
|
|
|
|
usage: JAVA_ADD_INSTALLISR(javaupm_a110x)
|
2018-01-08 11:36:05 -08:00
|
|
|
*/
|
2018-01-17 14:11:35 +02:00
|
|
|
%define JAVA_ADD_INSTALLISR(UPM_Classname)
|
|
|
|
%extend UPM_Classname {
|
2018-01-08 11:36:05 -08:00
|
|
|
void installISR(jobject runnable)
|
|
|
|
{
|
|
|
|
$self->installISR(mraa_java_isr_callback, runnable);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%enddef
|
|
|
|
|
2018-01-19 13:12:50 +02:00
|
|
|
/* Define GETTER in the appropiate .i file with the getter function name
|
|
|
|
*/
|
|
|
|
%define JAVA_ADD_INSTALLISR_GPIO(UPM_Classname)
|
|
|
|
%extend UPM_Classname {
|
|
|
|
void installISR(int gpio, mraa::Edge level, jobject runnable)
|
|
|
|
{
|
|
|
|
// delete any existing ISR and GPIO context
|
|
|
|
$self->uninstallISR();
|
|
|
|
|
|
|
|
// create gpio context
|
|
|
|
mraa::Gpio* swg_gpioIntr = $self->GETTER;
|
|
|
|
|
|
|
|
swg_gpioIntr->dir(mraa::DIR_IN);
|
|
|
|
swg_gpioIntr->isr(level, runnable);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
/* Define INTERRUPT in the appropiate .i file with the interrupt type
|
|
|
|
*/
|
|
|
|
%define JAVA_ADD_INSTALLISR_INTERRUPT(UPM_Classname)
|
|
|
|
%extend UPM_Classname {
|
|
|
|
void installISR(INTERRUPT intr, int gpio,
|
|
|
|
mraa::Edge level, jobject runnable)
|
|
|
|
{
|
|
|
|
$self->installISR(intr, gpio, level, mraa_java_isr_callback, runnable);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
%define JAVA_ADD_INSTALLISR_EDGE(UPM_Classname)
|
|
|
|
%extend UPM_Classname {
|
|
|
|
void installISR(mraa::Edge level, jobject runnable)
|
|
|
|
{
|
|
|
|
$self->installISR(level, mraa_java_isr_callback, runnable);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%enddef
|
|
|
|
|
|
|
|
%define JAVA_ADD_INSTALLISR_PIN(UPM_Classname)
|
|
|
|
%extend UPM_Classname {
|
|
|
|
void installISR(int pin, jobject runnable)
|
|
|
|
{
|
|
|
|
$self->installISR(pin, mraa_java_isr_callback, runnable);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
%enddef
|
|
|
|
|
2018-01-17 14:11:35 +02:00
|
|
|
/* Macro for adding JNI loadLibrary dependency
|
|
|
|
usage: JAVA_JNI_LOADLIBRARY(javaupm_rhusb)
|
2018-01-08 11:36:05 -08:00
|
|
|
*/
|
2018-01-17 14:11:35 +02:00
|
|
|
%define JAVA_JNI_LOADLIBRARY(MyModuleName)
|
2018-01-08 11:36:05 -08:00
|
|
|
%pragma(java) jniclasscode=%{
|
|
|
|
static {
|
|
|
|
try {
|
2018-01-17 14:11:35 +02:00
|
|
|
System.loadLibrary("MyModuleName");
|
2018-01-08 11:36:05 -08:00
|
|
|
} catch (UnsatisfiedLinkError e) {
|
2018-01-17 14:11:35 +02:00
|
|
|
System.err.println("Native code library (MyModuleName) failed to load. \n" + e);
|
2018-01-08 11:36:05 -08:00
|
|
|
System.exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
%}
|
|
|
|
%enddef
|