[vdr] [RFC] Shutdown rewrite for 1.5.x
udo_richter at gmx.de
Wed Jan 10 14:28:24 CET 2007
I've finished a second version of the shutdown rewrite. This time, there
are two patches available, one for VDR 1.5.0, and one with slight
changes for 1.4.x.
- Fixed negative time in shutdown confirm in case a VPS timer is in
run-out phase. Will now be shown as 'running' recording.
- If power pressed while background activity:
"VDR will shut down later. Press power to force."
- Countdown timer will now start 5 minutes *before* Min User Inactivity
is reached, unless there's background activity.
In any case the countdown will run for 5 minutes.
SHUTDOWNRETRY is now 6 minutes, so the next shutdown countdown
will start 1 minute after the last one did run out.
- Playback of recordings now counts as background activity and requires
confirmation on shutdown. If not confirmed, VDR will shut down
at the end of playback. (sleeptimer!)
- Plugins can schedule to wake up VDR from shutdown by returning a
time_t from cPlugin::NextWakeupEvent(). Any time that is not in the
future will be ignored. To keep VDR awake, the plugin should also
reply on Active() at the given time.
If needed, I can provide a simple example code that wakes VDR every
day at a given time for 5 minutes or similar.
- The scheduled wakeup time of the last call to the shutdown script is
now remembered in setup.conf. If VDR wakes up within 10 minutes of
this time, VDR assumes that this was an automatic start.
- Introduced separated shutdown retry counter that ensures the
SHUTDOWNRETRY wait time. That way VDR will stay in non-interactive
mode after an shutdown attempt.
- The shutdown script may now be called with a wakeup time but with 0
channel and no file, in case a plugin requested the wakeup.
- The shutdown command is now called in the background in a separate
session, so it can run separately from VDR and can continue to run
after the VDR process got killed.
- Dropped cRemote::TouchLastActivity() from 1.5 version of the patch, as
it is not needed any more.
Todo / Possible changes:
- Maybe make backgrounding of shutdown script selectable like this:
-s "/my/shutdown/script &" - this could also be adapted for recording
commands and command menu commands
- What to do with SVDRP NEXT command? This was once the same as the time
passed to the shutdown script, but it sill can be less than min event
pause, even negative, and does not honor plugin scheduled restarts.
- Move SystemExecSession into tools.c and/or merge it with the existing
- Adapt newplugin and PLUGINS.html
- Add i18n entries
More information about the vdr