ttp223: add Java isr callbacks

Signed-off-by: Petre Eftime <petre.p.eftime@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Petre Eftime
2015-09-17 17:23:46 +03:00
committed by Mihai Tudor Panu
parent bdacb6c640
commit a0518976c6
3 changed files with 62 additions and 2 deletions

View File

@ -39,6 +39,7 @@ TTP223::TTP223(unsigned int pin) {
}
mraa_gpio_dir(m_gpio, MRAA_GPIO_IN);
m_name = "ttp223";
m_isrInstalled = false;
}
TTP223::~TTP223() {
@ -57,3 +58,26 @@ int TTP223::value() {
bool TTP223::isPressed() {
return this->value() == 1;
}
#ifdef JAVACALLBACK
void TTP223::installISR(mraa::Edge level, IsrCallback *cb)
{
installISR(level, generic_callback_isr, cb);
}
#endif
void TTP223::installISR(mraa::Edge level, void (*isr)(void *), void *arg)
{
if (m_isrInstalled)
uninstallISR();
// install our interrupt handler
mraa_gpio_isr(m_gpio, (mraa_gpio_edge_t) level, isr, arg);
m_isrInstalled = true;
}
void TTP223::uninstallISR()
{
mraa_gpio_isr_exit(m_gpio);
m_isrInstalled = false;
}