X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/70e31a71b96ab395123c0620c841d913005304f3..d04e6435efecf42a192a4f6c71dca9a1a053d5fb:/lib/driver/rcinput.cpp diff --git a/lib/driver/rcinput.cpp b/lib/driver/rcinput.cpp index 107b337b..f30ba8cb 100644 --- a/lib/driver/rcinput.cpp +++ b/lib/driver/rcinput.cpp @@ -11,7 +11,7 @@ #include #include -void eRCDeviceInputDev::handleCode(int rccode) +void eRCDeviceInputDev::handleCode(long rccode) { struct input_event *ev = (struct input_event *)rccode; if (ev->type!=EV_KEY) @@ -73,18 +73,16 @@ void eRCDeviceInputDev::handleCode(int rccode) eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver) :eRCDevice(driver->getDeviceName(), driver), iskeyboard(false) { - int len=id.length(); - int idx=0; - while(idx <= len-8) - { - if (!strncasecmp(&id[idx++], "KEYBOARD", 8)) - { - iskeyboard=true; - break; - } - } + if (strcasestr(id.c_str(), "keyboard") != NULL) + iskeyboard = true; + setExclusive(true); eDebug("Input device \"%s\" is %sa keyboard.", id.c_str(), iskeyboard ? "" : "not "); +} +void eRCDeviceInputDev::setExclusive(bool b) +{ + if (!iskeyboard) + driver->setExclusive(b); } const char *eRCDeviceInputDev::getDescription() const