Implemented automatic shutdown

This commit is contained in:
Klaus Schmidinger
2001-09-01 09:04:37 +02:00
parent a92b585c1e
commit a8f8de9dc9
10 changed files with 162 additions and 22 deletions

View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: interface.c 1.41 2001/08/25 13:15:00 kls Exp $
* $Id: interface.c 1.42 2001/09/01 07:30:37 kls Exp $
*/
#include "interface.h"
@@ -20,6 +20,7 @@ cInterface::cInterface(int SVDRPport)
cols[0] = 0;
width = height = 0;
keyFromWait = kNone;
interrupted = false;
rcIo = NULL;
SVDRP = NULL;
#if defined(REMOTE_RCU)
@@ -110,11 +111,12 @@ eKeys cInterface::Wait(int Seconds, bool KeepChar)
time_t timeout = time(NULL) + Seconds;
for (;;) {
Key = GetKey();
if ((Key != kNone && (RAWKEY(Key) != kOk || RAWKEY(Key) == Key)) || time(NULL) > timeout)
if ((Key != kNone && (RAWKEY(Key) != kOk || RAWKEY(Key) == Key)) || time(NULL) > timeout || interrupted)
break;
}
if (KeepChar && ISRAWKEY(Key))
keyFromWait = Key;
interrupted = false;
return Key;
}
@@ -312,12 +314,13 @@ void cInterface::Error(const char *s)
Close();
}
bool cInterface::Confirm(const char *s)
bool cInterface::Confirm(const char *s, int Seconds, bool WaitForTimeout)
{
Open();
isyslog(LOG_INFO, "confirm: %s", s);
Status(s, clrBlack, clrYellow);
bool result = Wait(10) == kOk;
eKeys k = Wait(Seconds);
bool result = WaitForTimeout ? k == kNone : k == kOk;
Status(NULL);
Close();
isyslog(LOG_INFO, "%sconfirmed", result ? "" : "not ");