summaryrefslogtreecommitdiff
path: root/vdr.c
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 /vdr.c
parent8bd9bf5e1b1b94e94c5969e6529f2978bb9b1f47 (diff)
downloadvdr-c7af51870a9a1d3aac81f863b8b16f50c7000963.tar.gz
vdr-c7af51870a9a1d3aac81f863b8b16f50c7000963.tar.bz2
Fixed handling the "Power" key in case a timer is about to start recording
Diffstat (limited to 'vdr.c')
-rw-r--r--vdr.c25
1 files changed, 14 insertions, 11 deletions
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)