git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add hack for Kabel-BW 618Mhz Transponder.. (tsid is difference in PAT and
[enigma2.git]
/
lib
/
driver
/
rcconsole.cpp
diff --git
a/lib/driver/rcconsole.cpp
b/lib/driver/rcconsole.cpp
index eae3a7a550b92be9288509376a8014ee67706dc5..53630ca96502c7dcc3335935870e76ab3264da13 100644
(file)
--- a/
lib/driver/rcconsole.cpp
+++ b/
lib/driver/rcconsole.cpp
@@
-38,11
+38,11
@@
eRCConsoleDriver::~eRCConsoleDriver()
void eRCConsoleDriver::keyPressed(int)
{
void eRCConsoleDriver::keyPressed(int)
{
- char data[16];
- char *d = data;
+
unsigned
char data[16];
+
unsigned
char *d = data;
int num = read(handle, data, 16);
int num = read(handle, data, 16);
- int code;
-
+ int code
=-1
;
+
int km = input->getKeyboardMode();
if (km == eRCInput::kmNone)
int km = input->getKeyboardMode();
if (km == eRCInput::kmNone)
@@
-50,41
+50,49
@@
void eRCConsoleDriver::keyPressed(int)
while (num--)
{
while (num--)
{
+// eDebug("console code %08x\n", *d);
if (km == eRCInput::kmAll)
code = *d++;
else
{
if (*d == 27) // escape code
{
if (km == eRCInput::kmAll)
code = *d++;
else
{
if (*d == 27) // escape code
{
- /* skip all this stuff */
- return;
-
-/* while (num)
+ while (num)
{
num--;
if (*++d != '[')
break;
}
{
num--;
if (*++d != '[')
break;
}
- code = -1;
*/
+ code = -1;
} else
code = *d;
++d;
} else
code = *d;
++d;
-
+
if (code < 32) /* control characters */
code = -1;
if (code < 32) /* control characters */
code = -1;
- if (code == 0x7F) /* delete */
- code = -1;
+ else switch(code)
+ {
+ case 0x35: // mute
+ case 0x7E: // mute, einfg, entf
+ case 0x7F: // backspace
+ code = -1;
+ default:
+ break;
+ }
}
if (code != -1)
for (std::list<eRCDevice*>::iterator i(listeners.begin()); i!=listeners.end(); ++i)
}
if (code != -1)
for (std::list<eRCDevice*>::iterator i(listeners.begin()); i!=listeners.end(); ++i)
- (*i)->handleCode(code | 0x8000);
+ {
+// eDebug("ascii %08x", code);
+ (*i)->handleCode(code);
+ }
}
}
}
}
-void eRCConsole::handleCode(
int
code)
+void eRCConsole::handleCode(
long
code)
{
{
- input->keyPressed(eRCKey(this, code,
0
));
+ input->keyPressed(eRCKey(this, code,
eRCKey::flagAscii
));
}
eRCConsole::eRCConsole(eRCDriver *driver)
}
eRCConsole::eRCConsole(eRCDriver *driver)
@@
-112,7
+120,7
@@
class eRCConsoleInit
eRCConsoleDriver driver;
eRCConsole device;
public:
eRCConsoleDriver driver;
eRCConsole device;
public:
- eRCConsoleInit(): driver("/dev/
stdin
"), device(&driver)
+ eRCConsoleInit(): driver("/dev/
vc/0
"), device(&driver)
{
}
};
{
}
};