X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b35f481ef0ccd35ecfa9bcd610ad1e923e86a391..db7f9eb0a8f0d7af9d34d74986b910fe689f711f:/lib/driver/rcconsole.cpp diff --git a/lib/driver/rcconsole.cpp b/lib/driver/rcconsole.cpp index d3235758..eb5aee3d 100644 --- a/lib/driver/rcconsole.cpp +++ b/lib/driver/rcconsole.cpp @@ -14,9 +14,8 @@ 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); } /* set console mode */ @@ -32,8 +31,6 @@ eRCConsoleDriver::~eRCConsoleDriver() tcsetattr(handle,TCSANOW, &ot); if (handle>=0) close(handle); - if (sn) - delete sn; } void eRCConsoleDriver::keyPressed(int) @@ -70,8 +67,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 +86,7 @@ void eRCConsoleDriver::keyPressed(int) } } -void eRCConsole::handleCode(int code) +void eRCConsole::handleCode(long code) { input->keyPressed(eRCKey(this, code, eRCKey::flagAscii)); }