vdr
2.4.0
|
#include <shutdown.h>
Public Member Functions | |
cShutdownHandler (void) | |
~cShutdownHandler () | |
void | Exit (int ExitCode) |
bool | DoExit (void) |
int | GetExitCode (void) |
bool | EmergencyExitRequested (void) |
void | RequestEmergencyExit (void) |
void | CheckManualStart (int ManualStart) |
void | SetShutdownCommand (const char *ShutdownCommand) |
void | CallShutdownCommand (time_t WakeupTime, int Channel, const char *File, bool UserShutdown) |
bool | IsUserInactive (time_t AtTime=0) |
time_t | GetUserInactiveTime (void) |
void | SetUserInactiveTimeout (int Seconds=-1, bool Force=false) |
void | SetUserInactive (void) |
bool | Retry (time_t AtTime=0) |
time_t | GetRetry (void) |
void | SetRetry (int Seconds) |
bool | ConfirmShutdown (bool Ask) |
bool | ConfirmRestart (bool Ask) |
bool | DoShutdown (bool Force) |
Public Attributes | |
cCountdown | countdown |
Private Attributes | |
time_t | activeTimeout |
time_t | retry |
char * | shutdownCommand |
int | exitCode |
bool | emergencyExitRequested |
Definition at line 38 of file shutdown.h.
cShutdownHandler::cShutdownHandler | ( | void | ) |
Definition at line 79 of file shutdown.c.
References activeTimeout, emergencyExitRequested, exitCode, retry, and shutdownCommand.
cShutdownHandler::~cShutdownHandler | ( | ) |
Definition at line 88 of file shutdown.c.
References shutdownCommand.
void cShutdownHandler::CallShutdownCommand | ( | time_t | WakeupTime, |
int | Channel, | ||
const char * | File, | ||
bool | UserShutdown | ||
) |
Call the shutdown command with the given parameters.
Definition at line 127 of file shutdown.c.
References cFilter::Channel(), esyslog, isyslog, cSetup::NextWakeupTime, cSetup::Save(), Setup, shutdownCommand, cString::sprintf(), strescape(), and SystemExec().
Referenced by DoShutdown().
void cShutdownHandler::CheckManualStart | ( | int | ManualStart | ) |
Check whether the next timer is in ManualStart time window.
If yes, assume non-interactive use.
Definition at line 104 of file shutdown.c.
References dsyslog, cSetup::NextWakeupTime, Setup, and SetUserInactiveTimeout().
Referenced by main().
bool cShutdownHandler::ConfirmRestart | ( | bool | Ask | ) |
Check for background activity that blocks restart.
Returns immediately and without user interaction if Ask = false. Asks for confirmation if Ask = true. Returns true if ready for restart.
Definition at line 209 of file shutdown.c.
References cPluginManager::Active(), cThread::Active(), cRecordControls::Active(), cInterface::Confirm(), Interface, LOCK_TIMERS_READ, cListObject::Next(), RecordingsHandler, cTimer::StartTime(), and tr.
Referenced by main(), and cMenuSetup::Restart().
bool cShutdownHandler::ConfirmShutdown | ( | bool | Ask | ) |
Check for background activity that blocks shutdown.
Returns immediately and without user interaction if Ask = false. Asks for confirmation if Ask = true. Returns true if ready for shutdown.
Definition at line 157 of file shutdown.c.
References cPluginManager::Active(), cThread::Active(), cRecordControls::Active(), cInterface::Confirm(), cRemote::Enabled(), cPluginManager::GetNextWakeupPlugin(), Interface, LOCK_TIMERS_READ, cSkins::Message(), cSetup::MinEventTimeout, mtError, cPlugin::Name(), cListObject::Next(), RecordingsHandler, Setup, shutdownCommand, Skins, cString::sprintf(), cTimer::StartTime(), tr, and cPlugin::WakeupTime().
Referenced by main().
|
inline |
Check if an exit code was set, and VDR should exit.
Definition at line 57 of file shutdown.h.
References exitCode.
Referenced by main().
bool cShutdownHandler::DoShutdown | ( | bool | Force | ) |
Call the shutdown script with data of the next pending timer.
Fails if Force = false and a timer is running or within MinEventTimeout. Always calls shutdown on Force = true. Returns true on success.
Definition at line 233 of file shutdown.c.
References CallShutdownCommand(), cTimer::Channel(), dsyslog, cTimer::File(), cPluginManager::GetNextWakeupPlugin(), LOCK_TIMERS_READ, cSetup::MinEventTimeout, cPlugin::Name(), cListObject::Next(), cChannel::Number(), Setup, cTimer::StartTime(), TimeToString(), and cPlugin::WakeupTime().
Referenced by main().
|
inline |
Returns true if an emergency exit was requested.
Definition at line 61 of file shutdown.h.
References emergencyExitRequested.
Referenced by main().
|
inline |
Set VDR exit code and initiate end of VDR main loop.
This will exit VDR without any confirmation.
Definition at line 54 of file shutdown.h.
References exitCode.
Referenced by RequestEmergencyExit(), cMenuSetup::Restart(), and SignalHandler().
|
inline |
Get the currently set exit code of VDR.
Definition at line 59 of file shutdown.h.
References exitCode.
Referenced by main().
|
inline |
|
inline |
Time when user will become non-inactive, or 0 if never, 1 if a long time ago.
Definition at line 75 of file shutdown.h.
References activeTimeout.
|
inline |
Check whether VDR is in interactive mode or non-interactive mode (waiting for shutdown).
AtTime checks whether VDR will probably be inactive at that time.
Definition at line 72 of file shutdown.h.
References activeTimeout.
Referenced by main().
void cShutdownHandler::RequestEmergencyExit | ( | void | ) |
Requests an emergency exit of the VDR main loop.
Definition at line 93 of file shutdown.c.
References dsyslog, cSetup::EmergencyExit, emergencyExitRequested, esyslog, Exit(), and Setup.
Referenced by cRecorder::Action(), and cRecordControls::Start().
|
inline |
Check whether its time to re-try the shutdown.
AtTime checks whether VDR will probably be inactive at that time.
Definition at line 88 of file shutdown.h.
References retry.
Referenced by main().
|
inline |
Set shutdown retry so that VDR will not try to automatically shut down within Seconds.
Definition at line 93 of file shutdown.h.
References retry.
Referenced by main().
void cShutdownHandler::SetShutdownCommand | ( | const char * | ShutdownCommand | ) |
Set the command string for shutdown command.
Definition at line 121 of file shutdown.c.
References shutdownCommand.
Referenced by main().
|
inline |
Set VDR manually into non-interactive mode from now on.
Definition at line 86 of file shutdown.h.
References SetUserInactiveTimeout().
Referenced by main().
void cShutdownHandler::SetUserInactiveTimeout | ( | int | Seconds = -1 , |
bool | Force = false |
||
) |
Set the time in the future when VDR will switch into non-interactive mode or power down.
Seconds >= 0 means that many seconds in the future. Seconds = -1 means Setup.MinUserInactivity in the future. Seconds = -2 means never. Seconds = -3 means a long, unknown time ago. Setup.MinUserInactivity = 0 will overrule this, unless Force = true is given. If Setup.MinUserInactivity = 0 and Force = false, Seconds is ignored and VDR will stay interactive forever (like Seconds = -2).
Definition at line 141 of file shutdown.c.
References activeTimeout, cSetup::MinUserInactivity, and Setup.
Referenced by CheckManualStart(), main(), and SetUserInactive().
|
private |
Time when VDR will become non-interactive. 0 means never, 1 means unknown time ago.
Definition at line 40 of file shutdown.h.
Referenced by cShutdownHandler(), GetUserInactiveTime(), IsUserInactive(), and SetUserInactiveTimeout().
cCountdown cShutdownHandler::countdown |
Definition at line 51 of file shutdown.h.
Referenced by main().
|
private |
The requested exit is an emergency exit.
Definition at line 48 of file shutdown.h.
Referenced by cShutdownHandler(), EmergencyExitRequested(), and RequestEmergencyExit().
|
private |
Exit code, if VDR exit was requested, or -1 if not requested.
Definition at line 46 of file shutdown.h.
Referenced by cShutdownHandler(), DoExit(), Exit(), and GetExitCode().
|
private |
Time for retrying the shutdown.
Definition at line 42 of file shutdown.h.
Referenced by cShutdownHandler(), GetRetry(), Retry(), and SetRetry().
|
private |
Command for shutting down VDR.
Definition at line 44 of file shutdown.h.
Referenced by CallShutdownCommand(), ConfirmShutdown(), cShutdownHandler(), SetShutdownCommand(), and ~cShutdownHandler().