diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | frontend.c | 15 |
2 files changed, 11 insertions, 5 deletions
@@ -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) @@ -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])); + } + } } } |