From 300d402663e3378d3710b40e29c79a1cc4f4c262 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 23 Feb 2008 14:40:58 +0100 Subject: [PATCH] The CAM menu now stays open as long as it is automatically updated --- HISTORY | 3 +++ menu.c | 3 ++- remote.c | 9 +++++++-- remote.h | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index 41b85ea3..0f9a6fa0 100644 --- a/HISTORY +++ b/HISTORY @@ -5660,3 +5660,6 @@ Video Disk Recorder Revision History - When switching the device that's used for live viewing away from the current transponder in favor of an upcoming recording, an attempt is now made to stay on the current channel by possibly going into 'Transfer Mode'. +- The CAM menu now stays open as long as it is automatically updated, even without + pressing a remote control key. This is important when updating the CAM firmware + from the transponder. diff --git a/menu.c b/menu.c index 7abe1bad..11a7826d 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.477 2008/02/16 13:53:26 kls Exp $ + * $Id: menu.c 1.478 2008/02/23 14:36:43 kls Exp $ */ #include "menu.h" @@ -1697,6 +1697,7 @@ void cMenuCam::Set(void) AddMultiLineItem(ciMenu->BottomText()); dsyslog("CAM %d: '%s'", camSlot->SlotNumber(), ciMenu->BottomText()); } + cRemote::TriggerLastActivity(); } else if (ciEnquiry) { Clear(); diff --git a/remote.c b/remote.c index c20647d3..733ae31c 100644 --- a/remote.c +++ b/remote.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remote.c 1.58 2008/02/22 15:34:08 kls Exp $ + * $Id: remote.c 1.59 2008/02/23 14:14:46 kls Exp $ */ #include "remote.h" @@ -185,7 +185,7 @@ eKeys cRemote::Get(int WaitMs, char **UnknownCode) out = 0; if ((k & k_Repeat) != 0) repeatTimeout.Set(REPEATTIMEOUT); - lastActivity = time(NULL); + TriggerLastActivity(); return enabled ? k : kNone; } else if (!WaitMs || !keyPressed.TimedWait(mutex, WaitMs) && repeatTimeout.TimedOut()) @@ -198,6 +198,11 @@ eKeys cRemote::Get(int WaitMs, char **UnknownCode) } } +void cRemote::TriggerLastActivity(void) +{ + lastActivity = time(NULL); +} + // --- cRemotes -------------------------------------------------------------- cRemotes Remotes; diff --git a/remote.h b/remote.h index a38d6616..46ad9564 100644 --- a/remote.h +++ b/remote.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remote.h 1.40 2007/04/30 12:37:37 kls Exp $ + * $Id: remote.h 1.41 2008/02/23 14:38:47 kls Exp $ */ #ifndef __REMOTE_H @@ -67,6 +67,9 @@ public: static eKeys Get(int WaitMs = 1000, char **UnknownCode = NULL); static time_t LastActivity(void) { return lastActivity; } ///< Absolute time when last key was delivered by Get(). + static void TriggerLastActivity(void); + ///< Simulates user activity, for instance to keep the current menu open + ///< even if no remote control key has been pressed. }; class cRemotes : public cList {};