summaryrefslogtreecommitdiff
path: root/vdr/scripts/vdrplayer
diff options
context:
space:
mode:
authorroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
committerroot <root@elwms02.(none)>2010-04-06 16:13:08 +0200
commit0e7005fcc7483c01aa102fbea358c5ac65a48d62 (patch)
tree11517ce0d3d2977c6732b3aa583b0008083e0bd3 /vdr/scripts/vdrplayer
downloadx-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.gz
x-vdr-0e7005fcc7483c01aa102fbea358c5ac65a48d62.tar.bz2
hello world
Diffstat (limited to 'vdr/scripts/vdrplayer')
-rw-r--r--vdr/scripts/vdrplayer279
1 files changed, 279 insertions, 0 deletions
diff --git a/vdr/scripts/vdrplayer b/vdr/scripts/vdrplayer
new file mode 100644
index 0000000..ce6b8b5
--- /dev/null
+++ b/vdr/scripts/vdrplayer
@@ -0,0 +1,279 @@
+#!/bin/bash
+
+# vdrplayer 0.0.5 (start-script for shmclient, tvtime, vdrtvtime, vdr-sxfe, xine or xineliboutput)
+# by Marc Wernecke - www.zulu-entertainment.de
+# 10.02.2009
+
+### Config ####################################################################################
+NONROOT="true" # true or false
+STARTX="true" # allways, true or false
+VDRIP= # 127.0.0.1 for localhost or any other ip for a vdr-server in your local-network
+VDRPLAYER= # shmclient, tvtime, vdr-sxfe, xine, xineliboutput or xine-network
+
+[ "$HOME" = "/" ] && HOME=/etc
+[ -r $HOME/vdrplayer.conf ] && . $HOME/vdrplayer.conf
+
+### Arguments #################################################################################
+EXIT="false"
+KILLALL="false"
+VERSION="vdrplayer 0.0.4"
+
+for i in $* ; do
+ case $1 in
+ --exit|-e)
+ EXIT="true"
+ ;;
+ --help|-h)
+ echo "$VERSION"
+ echo "--exit|-e Kill all active player and exit"
+ echo "--help|-h Shows the help text and exit"
+ echo "--killall|-k Kill all active player, the X server and exit"
+ echo "--nonroot|-n Sets NONROOT flag"
+ echo "--reset|-r Remove the configuration file (\$HOME/vdrplayer.conf)"
+ echo "--startx|-s [allways|true|false]"
+ echo "--ip|-i [ip] 127.0.0.1 for localhost or any other ip for a vdr-server in your local-network"
+ echo "--player|-p [shmclient|tvtime|vdr-sxfe|xine|xineliboutput|xine-network]"
+ echo "--version|-v Shows the script version and exit"
+ exit 0
+ ;;
+ --killall|-k)
+ KILLALL="true"
+ ;;
+ --nonroot|-n)
+ NONROOT="true"
+ ;;
+ --reset|-r)
+ if [ -f $HOME/vdrplayer.conf ]; then
+ rm -f $HOME/vdrplayer.conf
+ VDRIP=
+ VDRPLAYER=
+ fi
+ ;;
+ --startx|-s)
+ shift 1
+ STARTX="$1"
+ ;;
+ --ip|-i)
+ shift 1
+ VDRIP="$1"
+ ;;
+ --player|-p)
+ shift 1
+ VDRPLAYER="$1"
+ ;;
+ --version|-v)
+ echo "$VERSION"
+ exit 0
+ ;;
+ esac
+ shift 1
+done
+
+if [ -n "`ps x --user root | grep "/usr/.*bin/X.*:0" | grep -v grep`" ]; then # X is running
+ DIALOG="Xdialog"
+else
+ DIALOG="dialog"
+fi
+
+### Functions #################################################################################
+function _exit() {
+ case $1 in
+ 0) exit 0
+ ;;
+ 1) exit 1
+ ;;
+ 2) exit 2
+ ;;
+ esac
+ exit 0
+}
+
+function _vdr() {
+ # Max waiting time in Seconds
+ n=10
+ # Check if VDR is running
+ if [ `ps -C vdr | grep -cw "vdr"` -eq 0 ]; then
+ echo "vdr is not running"
+ echo -n "Waiting $n seconds ..."
+ # test if vdr is running
+ while [ `ps -C vdr | grep -cw "vdr"` -eq 0 ] && [ $n -gt 0 ]; do
+ sleep 1
+ (( n=$n-1 ))
+ echo -n " $n"
+ if [ $n -eq 0 ]; then
+ echo " exit"
+ return 1
+ fi
+ done
+ echo ""
+ echo "vdr is online"
+ fi
+ return 0
+}
+
+function _vdrip() {
+ VDRIP=`$DIALOG --inputbox "VDR Server IP" 10 50 "127.0.0.1" 3>&1 1>&2 2>&3`
+ [ $? != 0 ] && return 1
+ [ "$VDRIP" = "" ] && return 1
+ echo "VDRIP=$VDRIP" >> $HOME/vdrplayer.conf
+ return 0
+}
+
+function _x() {
+ case $STARTX in
+ allways) STARTX="allways";;
+ true) STARTX="true";;
+ *) STARTX="false"; return 0 ;;
+ esac
+ VT=vt7
+
+ # if no X is running and user=root, start it
+ if [ -n "`ps x --user root | grep "/usr/.*bin/X.*:1" | grep -v "grep"`" ]; then
+ # X:1 is running
+ export DISPLAY=:1
+ return 0
+ elif [ -n "`ps x --user root | grep "/usr/.*bin/X" | grep -v "grep"`" ]; then
+ # X:0 is running
+ if [ "$STARTX" = "allways" ]; then
+ if [ "$NONROOT" = "false" ]; then
+ [ "`id -u`" = "0" ] || return 1
+ fi
+ export DISPLAY=:1
+ VT=vt9
+ else
+ export DISPLAY=:0
+ return 0
+ fi
+ else
+ if [ "$NONROOT" = "false" ]; then
+ [ "`id -u`" = "0" ] || return 1
+ fi
+ export DISPLAY=:0
+ fi
+
+ # start X
+ echo "Starting the X server..."
+ /usr/bin/X -ac -dpi 100 $DISPLAY $VT & sleep 4
+# xhost local:localhost
+ return 0
+}
+
+function _shmclient() {
+ _x || return 1
+ CMD="--fullscreen"
+ ShmClient $CMD &
+ return 0
+}
+
+function _tvtime() {
+# chmod 666 /dev/rtc
+# echo 1024 > /proc/sys/dev/rtc/max-user-freq
+ _x || return 1
+ CMD="--fullscreen --display=$DISPLAY"
+ tvtime $CMD &
+ sleep 2
+ tvtime-command MENU_EXIT
+ return 0
+}
+
+function _vdrtvtime() {
+# chmod 666 /dev/rtc
+# echo 1024 > /proc/sys/dev/rtc/max-user-freq
+ _x || return 1
+ svdrpsend.pl PLUG vdrtvtime start &
+ return 0
+}
+
+function _vdrsxfe() {
+ [ -n "$VDRIP" ] || _vdrip || return 1
+ _x || return 1
+ CMD="--video=xv --fullscreen --post tvtime:method=LinearBlend,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1"
+ MRL="xvdr+tcp://$VDRIP"
+ vdr-sxfe $CMD $MRL &
+ return 0
+}
+
+function _xineliboutput() {
+ [ -n "$VDRIP" ] || _vdrip || return 1
+ _x || return 1
+ CMD="--fullscreen --hide-gui"
+ MRL="xvdr+tcp://$VDRIP#nocache;demux:mpeg_block"
+ xine $CMD "$MRL" &
+ return 0
+}
+
+function _xine() {
+ _x || return 1
+ CMD="--fullscreen --hide-gui --post vdr --post vdr_audio"
+ MRL="vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
+ xine $CMD "$MRL" &
+ return 0
+}
+
+function _xinenetwork() {
+ [ -n "$VDRIP" ] || _vdrip || return 1
+ _x || return 1
+ CMD="--fullscreen --hide-gui --post vdr --post vdr_audio"
+ MRL="netvdr://$VDRIP#demux:mpeg_pes"
+ xine $CMD "$MRL" &
+ return 0
+}
+
+### Main Script ###############################################################################
+
+_vdr || exit 1 # Check if VDR is running
+
+[ -n "`ps x | grep ShmClient`" ] && killall -q -9 ShmClient # If ShmClient is running, stop it
+[ -n "`ps x | grep tvtime`" ] && killall -q -9 tvtime # If tvtime is running, stop it
+[ -n "`ps x | grep vdr-sxfe`" ] && killall -q -9 vdr-sxfe # If vdr-sxfe is running, stop it
+[ -n "`ps cx | grep xine`" ] && killall -q -9 xine # If xine is running, stop it
+[ "$VDRPLAYER" = "vdrtvtime" ] && svdrpsend.pl PLUG vdrtvtime stop
+
+if [ "$EXIT" = "true" ]; then # Exit
+ exit 0
+fi
+
+if [ "$KILLALL" = "true" ]; then # Stop X and Exit
+ [ -n "`ps x --user root | grep "/usr/.*bin/X" | grep -v "grep"`" ] && killall -q -9 Xorg
+ exit 0
+fi
+
+# Player
+if [ -n "$VDRPLAYER" ]; then
+ case $VDRPLAYER in
+ shmclient) _shmclient ;;
+ tvtime) _tvtime ;;
+ vdrtvtime) _vdrtvtime ;;
+ vdr-sxfe) _vdrsxfe ;;
+ xineliboutput) _xineliboutput ;;
+ xine) _xine ;;
+ xine-network) _xinenetwork ;;
+ *) VDRPLAYER="" ;;
+ esac
+fi
+
+# Dialog
+if [ -z "$VDRPLAYER" ]; then
+ option=`$DIALOG --menu \
+ 'Aktiviere den Player, den du nutzen moechtest.' 0 0 8 \
+ '1' 'ShmClient (Softdevice)' \
+ '2' 'Tvtime (FF-Karte)' \
+ '3' 'vdrtvtime (tvtime als Plugin, FF-Karte)' \
+ '4' 'vdr-sxfe (Xineliboutput)' \
+ '5' 'Xine' \
+ '6' 'Xine (Xineliboutput)' \
+ '7' 'Xine-Network' 3>&1 1>&2 2>&3`
+ [ $? != 0 ] && exit 1
+ VDRIP=
+ case $option in
+ 1) echo "VDRPLAYER=\"shmclient\"" > $HOME/vdrplayer.conf && _shmclient ;;
+ 2) echo "VDRPLAYER=\"tvtime\"" > $HOME/vdrplayer.conf && _tvtime ;;
+ 3) echo "VDRPLAYER=\"vdrtvtime\"" > $HOME/vdrplayer.conf && _vdrtvtime ;;
+ 4) echo "VDRPLAYER=\"vdr-sxfe\"" > $HOME/vdrplayer.conf && _vdrsxfe ;;
+ 5) echo "VDRPLAYER=\"xine\"" > $HOME/vdrplayer.conf && _xine ;;
+ 6) echo "VDRPLAYER=\"xineliboutput\"" > $HOME/vdrplayer.conf && _xineliboutput ;;
+ 7) echo "VDRPLAYER=\"xine-network\"" > $HOME/vdrplayer.conf && _xinenetwork ;;
+ esac
+fi
+
+exit 0 \ No newline at end of file