vdr
2.2.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 82 of file shutdown.c.
cShutdownHandler::~cShutdownHandler | ( | ) |
Definition at line 91 of file shutdown.c.
void cShutdownHandler::CallShutdownCommand | ( | time_t | WakeupTime, |
int | Channel, | ||
const char * | File, | ||
bool | UserShutdown | ||
) |
Call the shutdown command with the given parameters.
Definition at line 130 of file shutdown.c.
References esyslog, isyslog, cSetup::NextWakeupTime, cSetup::Save(), Setup, cString::sprintf(), strescape(), and SystemExec().
void cShutdownHandler::CheckManualStart | ( | int | ManualStart | ) |
Check whether the next timer is in ManualStart time window.
If yes, assume non-interactive use.
Definition at line 107 of file shutdown.c.
References dsyslog, cSetup::NextWakeupTime, and Setup.
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 211 of file shutdown.c.
References cPluginManager::Active(), cRecordControls::Active(), cRecordingsHandler::Active(), cInterface::Confirm(), cTimers::GetNextActiveTimer(), Interface, RecordingsHandler, cTimer::StartTime(), Timers, 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 160 of file shutdown.c.
References cPluginManager::Active(), cRecordControls::Active(), cRecordingsHandler::Active(), cInterface::Confirm(), cRemote::Enabled(), cTimers::GetNextActiveTimer(), cPluginManager::GetNextWakeupPlugin(), Interface, cSkins::Message(), cSetup::MinEventTimeout, mtError, cPlugin::Name(), RecordingsHandler, Setup, Skins, cString::sprintf(), cTimer::StartTime(), Timers, 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.
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 234 of file shutdown.c.
References cTimer::Channel(), dsyslog, cTimer::File(), cTimers::GetNextActiveTimer(), cPluginManager::GetNextWakeupPlugin(), cSetup::MinEventTimeout, cPlugin::Name(), cChannel::Number(), Setup, cTimer::StartTime(), Timers, TimeToString(), and cPlugin::WakeupTime().
Referenced by main().
|
inline |
Returns true if an emergency exit was requested.
Definition at line 61 of file shutdown.h.
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.
Referenced by cMenuSetup::Restart(), and SignalHandler().
|
inline |
Get the currently set exit code of VDR.
Definition at line 59 of file shutdown.h.
Referenced by main().
|
inline |
Time when shutdown retry block ends.
Definition at line 91 of file shutdown.h.
|
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.
|
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.
Referenced by main(), and cPluginDvbhddevice::MainThreadHook().
void cShutdownHandler::RequestEmergencyExit | ( | void | ) |
Requests an emergency exit of the VDR main loop.
Definition at line 96 of file shutdown.c.
References dsyslog, cSetup::EmergencyExit, esyslog, 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.
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 ShutdownHandler.
Referenced by main().
void cShutdownHandler::SetShutdownCommand | ( | const char * | ShutdownCommand | ) |
Set the command string for shutdown command.
Definition at line 124 of file shutdown.c.
Referenced by main().
|
inline |
Set VDR manually into non-interactive mode from now on.
Definition at line 86 of file shutdown.h.
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 144 of file shutdown.c.
References cSetup::MinUserInactivity, and Setup.
Referenced by main().
|
private |
Time when VDR will become non-interactive. 0 means never, 1 means unknown time ago.
Definition at line 40 of file shutdown.h.
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.
|
private |
Exit code, if VDR exit was requested, or -1 if not requested.
Definition at line 46 of file shutdown.h.
|
private |
Time for retrying the shutdown.
Definition at line 42 of file shutdown.h.
|
private |
Command for shutting down VDR.
Definition at line 44 of file shutdown.h.