summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2006-05-05 13:45:42 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2006-05-05 13:45:42 +0200
commitc7af51870a9a1d3aac81f863b8b16f50c7000963 (patch)
treed312809ed86d4ce597aab86759d751b2f3a2e8e6
parent8bd9bf5e1b1b94e94c5969e6529f2978bb9b1f47 (diff)
downloadvdr-c7af51870a9a1d3aac81f863b8b16f50c7000963.tar.gz
vdr-c7af51870a9a1d3aac81f863b8b16f50c7000963.tar.bz2
Fixed handling the "Power" key in case a timer is about to start recording
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--vdr.c25
3 files changed, 17 insertions, 11 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index fe4758b8..b8ef105f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1424,6 +1424,7 @@ Udo Richter <udo_richter@gmx.de>
no plugin is active
for suggesting to add 'eval' to the $VDRCMD call in 'runvdr' to avoid problems with
quoting
+ for fixing handling the "Power" key in case a timer is about to start recording
Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date
diff --git a/HISTORY b/HISTORY
index 289ed52f..91fe0f56 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4698,3 +4698,5 @@ Video Disk Recorder Revision History
(suggested by Udo Richter).
- Fixed missing ',' in the Italian and Polish OSD texts (thanks to Marko Mäkelä).
- Updated the Czech OSD texts (thanks to Vladimír Bárta).
+- Fixed handling the "Power" key in case a timer is about to start recording
+ (thanks to Udo Richter).
diff --git a/vdr.c b/vdr.c
index 449eadf7..fc0e360c 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.267 2006/04/29 09:14:06 kls Exp $
+ * $Id: vdr.c 1.268 2006/05/05 13:43:32 kls Exp $
*/
#include <getopt.h>
@@ -970,7 +970,7 @@ int main(int argc, char *argv[])
}
break;
// Power off:
- case kPower:
+ case kPower: {
isyslog("Power button pressed");
DELETE_MENU;
if (!Shutdown) {
@@ -985,8 +985,20 @@ int main(int argc, char *argv[])
}
if (cPluginManager::Active(tr("shut down anyway?")))
break;
+ cTimer *timer = Timers.GetNextActiveTimer();
+ time_t Next = timer ? timer->StartTime() : 0;
+ time_t Delta = timer ? Next - time(NULL) : 0;
+ if (Next && Delta <= Setup.MinEventTimeout * 60) {
+ char *buf;
+ asprintf(&buf, tr("Recording in %ld minutes, shut down anyway?"), Delta / 60);
+ bool confirm = Interface->Confirm(buf);
+ free(buf);
+ if (!confirm)
+ break;
+ }
ForceShutdown = true;
break;
+ }
default: break;
}
Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time
@@ -1121,15 +1133,6 @@ int main(int argc, char *argv[])
else
LastActivity = 1;
}
- if (UserShutdown && Next && Delta <= Setup.MinEventTimeout * 60 && !ForceShutdown) {
- char *buf;
- asprintf(&buf, tr("Recording in %ld minutes, shut down anyway?"), Delta / 60);
- if (Interface->Confirm(buf))
- ForceShutdown = true;
- else
- UserShutdown = false;
- free(buf);
- }
if (!Next || Delta > Setup.MinEventTimeout * 60 || ForceShutdown) {
ForceShutdown = false;
if (timer)