swap green and red led
[enigma2.git] / lib / driver / rcconsole.cpp
index d3235758ef0deaa4a34b56a0e20082cc39bd1167..bcce56016a36f761d6761cb2c9ad53b35cecff6a 100644 (file)
@@ -14,7 +14,7 @@ eRCConsoleDriver::eRCConsoleDriver(const char *filename): eRCDriver(eRCInput::ge
                sn=0;
        } else
        {
-               sn=new eSocketNotifier(eApp, handle, eSocketNotifier::Read);
+               sn=eSocketNotifier::create(eApp, handle, eSocketNotifier::Read);
                CONNECT(sn->activated, eRCConsoleDriver::keyPressed);
                eRCInput::getInstance()->setFile(handle);
        }
@@ -32,8 +32,6 @@ eRCConsoleDriver::~eRCConsoleDriver()
        tcsetattr(handle,TCSANOW, &ot);
        if (handle>=0)
                close(handle);
-       if (sn)
-               delete sn;
 }
 
 void eRCConsoleDriver::keyPressed(int)
@@ -70,8 +68,14 @@ void eRCConsoleDriver::keyPressed(int)
 
                        if (code < 32)                  /* control characters */
                                code = -1;
-                       if (code == 0x7F)               /* delete */
-                               code = -1;
+                       else switch(code)
+                       {
+                       case 0x7E:  // mute, einfg, entf
+                       case 0x7F:  // backspace
+                       code = -1;
+                       default:
+                               break;
+                       }
                }
 
                if (code != -1)
@@ -83,7 +87,7 @@ void eRCConsoleDriver::keyPressed(int)
        }
 }
 
-void eRCConsole::handleCode(int code)
+void eRCConsole::handleCode(long code)
 {
        input->keyPressed(eRCKey(this, code, eRCKey::flagAscii));
 }