[vdr] [RFC] Shutdown rewrite for 1.5.x

Udo Richter udo_richter at gmx.de
Wed Jan 10 14:28:24 CET 2007


Hi list,

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.

http://www.udo-richter.de/vdr/patches.html#shutdown
http://www.udo-richter.de/vdr/patches.en.html#shutdown

- 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
   SystemExec.

- Adapt newplugin and PLUGINS.html

- Add i18n entries

Cheers,

Udo




More information about the vdr mailing list