diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | remote.c | 12 |
2 files changed, 9 insertions, 4 deletions
@@ -378,3 +378,4 @@ Video Disk Recorder Revision History - The EPG scanner now scans each transponder only once per cycle. - Deleted recordings are now automatically removed from disk after a while (not only when disk space is being needed for a new recording). +- Fixed repeat function in LIRC remote control. @@ -6,7 +6,7 @@ * * Ported to LIRC by Carsten Koch <Carsten.Koch@icem.de> 2000-06-16. * - * $Id: remote.c 1.20 2000/12/03 11:55:06 kls Exp $ + * $Id: remote.c 1.21 2001/02/04 19:17:59 kls Exp $ */ #include "remote.h" @@ -428,6 +428,7 @@ void cRcIoLIRC::Action(void) dsyslog(LOG_INFO, "LIRC remote control thread started (pid=%d)", getpid()); int FirstTime = 0; + int LastTime = 0; char buf[LIRC_BUFFER_SIZE]; char LastKeyName[LIRC_KEY_BUF]; @@ -451,14 +452,17 @@ void cRcIoLIRC::Action(void) continue; // repeat function kicks in after a short delay receivedData = receivedRepeat = true; } + LastTime = Now; WakeUp(); } } else if (receivedData) { // the last data before releasing the key hasn't been fetched yet if (receivedRepeat) { // it was a repeat, so let's make it a release - receivedRepeat = false; - receivedRelease = true; - WakeUp(); + if (time_ms() - LastTime > REPEATDELAY) { + receivedRepeat = false; + receivedRelease = true; + WakeUp(); + } } } else if (receivedRepeat) { // all data has already been fetched, but the last one was a repeat, so let's generate a release |