git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
small speedups,
[enigma2.git]
/
lib
/
driver
/
rcconsole.cpp
diff --git
a/lib/driver/rcconsole.cpp
b/lib/driver/rcconsole.cpp
index 0c70244a6e942639875fa409facae84a02fa684d..7a625ffcfdc7312ca5bf22d9faacc03d07404517 100644
(file)
--- a/
lib/driver/rcconsole.cpp
+++ b/
lib/driver/rcconsole.cpp
@@
-38,16
+38,19
@@
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 code=-1;
int km = input->getKeyboardMode();
int num = read(handle, data, 16);
int code=-1;
int km = input->getKeyboardMode();
+ if (km == eRCInput::kmNone)
+ return;
+
while (num--)
{
while (num--)
{
-// eDebug("console code %0
2x\n", *d++
);
+// eDebug("console code %0
8x\n", *d
);
if (km == eRCInput::kmAll)
code = *d++;
else
if (km == eRCInput::kmAll)
code = *d++;
else
@@
-67,15
+70,22
@@
void eRCConsoleDriver::keyPressed(int)
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)
{
// eDebug("ascii %08x", code);
}
if (code != -1)
for (std::list<eRCDevice*>::iterator i(listeners.begin()); i!=listeners.end(); ++i)
{
// eDebug("ascii %08x", code);
- (*i)->handleCode(
/*0x8000|*/
code);
+ (*i)->handleCode(code);
}
}
}
}
}
}