X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdriver%2Frc.cpp;h=8dab02013ba681285ede65264d024ddd76ba435a;hp=43c1f2b2e6aaf5d66a50193131f647835b218875;hb=e8eb8e9694379204f4b9143ca6b33db48809df7f;hpb=45442377fc854e7224605085375e75f958aa5722 diff --git a/lib/driver/rc.cpp b/lib/driver/rc.cpp index 43c1f2b..8dab020 100644 --- a/lib/driver/rc.cpp +++ b/lib/driver/rc.cpp @@ -79,7 +79,7 @@ eRCShortDriver::eRCShortDriver(const char *filename): eRCDriver(eRCInput::getIns sn=0; } else { - sn=new eSocketNotifier(eApp, handle, eSocketNotifier::Read); + sn=eSocketNotifier::create(eApp, handle, eSocketNotifier::Read); CONNECT(sn->activated, eRCShortDriver::keyPressed); eRCInput::getInstance()->setFile(handle); } @@ -89,8 +89,6 @@ eRCShortDriver::~eRCShortDriver() { if (handle>=0) close(handle); - if (sn) - delete sn; } void eRCInputEventDriver::keyPressed(int) @@ -102,7 +100,7 @@ void eRCInputEventDriver::keyPressed(int) break; if (enabled && !input->islocked()) for (std::list::iterator i(listeners.begin()); i!=listeners.end(); ++i) - (*i)->handleCode((int)&ev); + (*i)->handleCode((long)&ev); } } @@ -115,7 +113,7 @@ eRCInputEventDriver::eRCInputEventDriver(const char *filename): eRCDriver(eRCInp sn=0; } else { - sn=new eSocketNotifier(eApp, handle, eSocketNotifier::Read); + sn=eSocketNotifier::create(eApp, handle, eSocketNotifier::Read); CONNECT(sn->activated, eRCInputEventDriver::keyPressed); eRCInput::getInstance()->setFile(handle); } @@ -129,12 +127,20 @@ std::string eRCInputEventDriver::getDeviceName() return name; } +void eRCInputEventDriver::setExclusive(bool b) +{ + if (handle >= 0) + { + int grab = b; + if (::ioctl(handle, EVIOCGRAB, &grab) < 0) + perror("EVIOCGRAB"); + } +} + eRCInputEventDriver::~eRCInputEventDriver() { if (handle>=0) close(handle); - if (sn) - delete sn; } eRCConfig::eRCConfig()