Merge branch 'bug_538_ignore_global_actions_in_standby'
[enigma2.git] / lib / driver / rcinput.cpp
index 59106c9687b7aa04ce67c1a6a2216acbee84d807..f30ba8cbe7f85010d76d8f25df36f276988181fd 100644 (file)
@@ -11,7 +11,7 @@
 #include <lib/base/init_num.h>
 #include <lib/driver/input_fake.h>
 
 #include <lib/base/init_num.h>
 #include <lib/driver/input_fake.h>
 
-void eRCDeviceInputDev::handleCode(int rccode)
+void eRCDeviceInputDev::handleCode(long rccode)
 {
        struct input_event *ev = (struct input_event *)rccode;
        if (ev->type!=EV_KEY)
 {
        struct input_event *ev = (struct input_event *)rccode;
        if (ev->type!=EV_KEY)
@@ -44,9 +44,9 @@ void eRCDeviceInputDev::handleCode(int rccode)
                        case KEY_RIGHTSHIFT:
                        case KEY_LEFTALT:
                        case KEY_CAPSLOCK:
                        case KEY_RIGHTSHIFT:
                        case KEY_LEFTALT:
                        case KEY_CAPSLOCK:
-                       case KEY_COMPOSE:
                        case KEY_INSERT:
                        case KEY_DELETE:
                        case KEY_INSERT:
                        case KEY_DELETE:
+                       case KEY_MUTE:
                                filtered=false;
                        default:
                                break;
                                filtered=false;
                        default:
                                break;
@@ -73,18 +73,16 @@ void eRCDeviceInputDev::handleCode(int rccode)
 eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver)
        :eRCDevice(driver->getDeviceName(), driver), iskeyboard(false)
 {
 eRCDeviceInputDev::eRCDeviceInputDev(eRCInputEventDriver *driver)
        :eRCDevice(driver->getDeviceName(), driver), iskeyboard(false)
 {
-       int len=id.length();
-       int idx=0;
-       while(idx < len)
-       {
-               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 ");
        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
 }
 
 const char *eRCDeviceInputDev::getDescription() const