1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed handling the "Power" key in case a timer is about to start recording

This commit is contained in:
Klaus Schmidinger 2006-05-05 13:45:42 +02:00
parent 8bd9bf5e1b
commit c7af51870a
3 changed files with 17 additions and 11 deletions

View File

@ -1424,6 +1424,7 @@ Udo Richter <udo_richter@gmx.de>
no plugin is active no plugin is active
for suggesting to add 'eval' to the $VDRCMD call in 'runvdr' to avoid problems with for suggesting to add 'eval' to the $VDRCMD call in 'runvdr' to avoid problems with
quoting quoting
for fixing handling the "Power" key in case a timer is about to start recording
Sven Kreiensen <svenk@kammer.uni-hannover.de> Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date for his help in keeping 'channels.conf.terr' up to date

View File

@ -4698,3 +4698,5 @@ Video Disk Recorder Revision History
(suggested by Udo Richter). (suggested by Udo Richter).
- Fixed missing ',' in the Italian and Polish OSD texts (thanks to Marko Mäkelä). - 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). - 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).

25
vdr.c
View File

@ -22,7 +22,7 @@
* *
* The project's page is at http://www.cadsoft.de/vdr * 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> #include <getopt.h>
@ -970,7 +970,7 @@ int main(int argc, char *argv[])
} }
break; break;
// Power off: // Power off:
case kPower: case kPower: {
isyslog("Power button pressed"); isyslog("Power button pressed");
DELETE_MENU; DELETE_MENU;
if (!Shutdown) { if (!Shutdown) {
@ -985,8 +985,20 @@ int main(int argc, char *argv[])
} }
if (cPluginManager::Active(tr("shut down anyway?"))) if (cPluginManager::Active(tr("shut down anyway?")))
break; 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; ForceShutdown = true;
break; break;
}
default: break; default: break;
} }
Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time Interact = Menu ? Menu : cControl::Control(); // might have been closed in the mean time
@ -1121,15 +1133,6 @@ int main(int argc, char *argv[])
else else
LastActivity = 1; 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) { if (!Next || Delta > Setup.MinEventTimeout * 60 || ForceShutdown) {
ForceShutdown = false; ForceShutdown = false;
if (timer) if (timer)