summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2010-08-25 09:50:15 +0000
committerphintuka <phintuka>2010-08-25 09:50:15 +0000
commitd483a814792b1b29fd2ab32dcfd2ec324da7936b (patch)
tree4e82c6a6cb46ccd022889f81e46a06c6ea73a69c
parente4aebaefe973ef9d5d5864aca56360d282340a68 (diff)
downloadxineliboutput-d483a814792b1b29fd2ab32dcfd2ec324da7936b.tar.gz
xineliboutput-d483a814792b1b29fd2ab32dcfd2ec324da7936b.tar.bz2
Added support for entering text using letters
-rw-r--r--HISTORY1
-rw-r--r--frontend.c15
2 files changed, 11 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index 8d7f5387..6247b84d 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3,6 +3,7 @@ VDR Plugin 'xineliboutput' Revision History
????-??-??: Version 1.1.0
+- Added support for entering text using letters.
- Added support for Alt and Ctrl key modifiers to X11 keyboard remote controller.
- Added FreeBSD compability (Thanks to Juergen Lock and Joerg Pulz)
- Added support for yaepg(hd) video window with HUD OSD (Thanks to grueni75)
diff --git a/frontend.c b/frontend.c
index 428f7fdd..d3716ddf 100644
--- a/frontend.c
+++ b/frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend.c,v 1.89 2010-08-25 09:46:59 phintuka Exp $
+ * $Id: frontend.c,v 1.90 2010-08-25 09:50:15 phintuka Exp $
*
*/
@@ -84,9 +84,9 @@ void cXinelibThread::KeypressHandler(const char *keymap, const char *key,
cGeneralRemote *remote = NULL;
for (cRemote *item = Remotes.First(); item; item = Remotes.Next(item)) {
if (!strcmp(item->Name(), keymap)) {
- // dirty... but only way to support learning ...
- ((cGeneralRemote*)item)->Put(key, repeat, release);
- return;
+ // dirty... but using protected cRemote::Put() is the only way to support learning ...
+ remote = (cGeneralRemote*)item;
+ break;
}
}
@@ -94,8 +94,13 @@ void cXinelibThread::KeypressHandler(const char *keymap, const char *key,
if (!remote)
remote = new cGeneralRemote(keymap);
+ // put key to remote queue
if (key[0]) {
- remote->Put(key, repeat, release);
+ if (!remote->Put(key, repeat, release)) {
+ if (!key[1]) {
+ remote->cRemote::Put(KBDKEY(key[0]));
+ }
+ }
}
}