#!/bin/sh
#
## runvdr: Loads the DVB driver and runs VDR
##
## If VDR exits abnormally, the driver will be reloaded
## and VDR restarted.
##
## In order to actually use this script you need to implement
## the functions DriverLoaded(), LoadDriver() and UnloadDriver()
## and maybe adjust the VDRPRG and VDRCMD to your particular
## requirements.
##
## Since this script loads the DVB driver, it must be started
## as user 'root'. Add the option "-u username" to run VDR
## under the given user name.
##
## Any command line parameters will be passed on to the
## actual 'vdr' program.
##
## See the main source file 'vdr.c' for copyright information and
## how to reach the author.
##
## $Id: runvdr 2.0 2006/05/14 16:02:05 kls Exp $

# VDR needs to run in non-UTF8 locale
export LANG=de_DE.iso8859-1
export LC_CTYPE=de_DE.iso8859-1

version=1.7.27
vdrconf="/VDRConf-170"
DVBDIR="/lib/modules/`uname -r`/build/"
VDRPRG="/usr/local/src/vdr-"$version"/vdr -u martin"
VDRCMD="$VDRPRG -w 60 --log=2.6 -t /dev/tty8 -p 2001 \
                -L /usr/local/src/vdr-"$version"/PLUGINS/lib -c "$vdrconf" $* -v /video \
                -P'burn --dvd=/dev/sr1 --iso=/vdrconvert/film' \
                -P dvbsddevice \
                -P epgsearch \
                -P femon \
                -P'live -i 192.168.178.41' \
                -P osdpip \
                -P'osdteletext --directory=/var/cache/osdteletext --cache-system=packed --max-cache=128' \
                -P skinenigmang \
                -P sudoku \
                -P text2skin \
                -P'tvonscreen --logos="$vdrconf"/plugins/text2skin/Aluminium/logos'"


LSMOD="`/sbin/lsmod | grep -w '^dvb_core' | wc -l`"
KILL="/usr/bin/killall -q -TERM"

# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
#function DriverLoaded()
#{
#  return 1
#}

# Load all DVB driver modules needed for your hardware:
#function LoadDriver()
#{
#  modprobe dvb-ttpci
#}

# Unload all DVB driver modules loaded in LoadDriver():
#function UnloadDriver()
#{
#  rmmod dvb_ttpci stv0299 dvb_core
#}

# Load driver if it hasn't been loaded already:
#if ! DriverLoaded; then
#   LoadDriver
#fi

while (true) do
      eval "$VDRCMD"
      if test $? -eq 0 -o $? -eq 2; then exit; fi
      echo "`date` reloading DVB driver"
      $KILL $VDRPRG
      sleep 10
#      UnloadDriver
#      LoadDriver
      echo "`date` restarting VDR"
      done
