From e4883902d87cb6a030717ccf88634a3a4921ce0f Mon Sep 17 00:00:00 2001 From: Chris Tallon Date: Sat, 27 Dec 2008 15:27:43 +0000 Subject: [PATCH] *** empty log message *** --- copyClientFiles.sh | 73 +++++++++++++++++ test1.sh | 193 +++++++++++++++++++++++++++++++++++++++++++++ vompclient.c | 3 + 3 files changed, 269 insertions(+) create mode 100644 copyClientFiles.sh create mode 100644 test1.sh diff --git a/copyClientFiles.sh b/copyClientFiles.sh new file mode 100644 index 0000000..c093954 --- /dev/null +++ b/copyClientFiles.sh @@ -0,0 +1,73 @@ +#! /bin/sh + +filelist="mediaprovider.h media.h media.cc mediaplayer.h mediaplayer.cc mediafile.h mediafile.cc serialize.h serialize.cc vdrcommand.h mediaproviderids.h" +usage() { + echo "usage: $0 [-f] [clientdir]" + echo " if clientdir is not given VOMPCLIENT has to be set" +} + +error() { + echo "--ERROR-- "$* + exit 1 +} + +#p1 - in name +translateName() { + echo $1 | sed 's/\.cc$/.c/' +} + +if [ "$1" = "-h" ] ; then + usage + exit 0 +fi + +if [ "$1" = "-f" ] ; then + force=1 + shift +fi + +clientdir=$1 +if [ "$clientdir" = "" ] ; then + clientdir=$VOMPCLIENT +fi +if [ "$clientdir" = "" ] ; then + echo neither clientdir provided nor VOMPCLIENT set + usage + exit 1 +fi +backupdir=../vompserver-backup +if [ "$VOMPSERVERBACKUP" != "" ] ; then + backupdir=$VOMPSERVERBACKUP +fi + +be=`date +%Y%m%d%H%M%S` + +backupdir=$backupdir/$be +echo "backing up to $backupdir" +mkdir -p $backupdir || error "unable to create backup directorry $backupdir" + +for file in $filelist +do + [ ! -f $clientdir/$file ] && error "$clientdir/$file not found" +done + +for file in $filelist +do + ofile=`translateName $file` + if [ -f $ofile -a ! -L $ofile ] ; then + echo backing up $ofile to $backupdir/$ofile + cp $ofile $backupdir/$ofile || error "failed to backup $ofile" + rm -f $ofile + fi + if [ "$force" = 1 ] ; then + rm -f $ofile + fi + if [ ! -L $ofile ] ; then + echo linking $clientdir/$file $ofile + ln -s $clientdir/$file $ofile || error "unable to link $clientdir/$file to $ofile" + else + echo $ofile already exists as link, skip + fi +done + + diff --git a/test1.sh b/test1.sh new file mode 100644 index 0000000..93d883e --- /dev/null +++ b/test1.sh @@ -0,0 +1,193 @@ +#! /bin/sh +#testcommand for media player +#parameters: command [filename] [...] +# test +# play filename xsize ysize +#return -1 if any error (no output!) +#this script is prepared for tools writing to stdout or requiring a file name +# for tools writing to stdout simple create a new convertXXX function +# that sends the tool to background and sets MPID to the pid +# for tools requiring a filename call createFifo first, then +# also create a function that sends the tool in background +# after starting the conversion tool call waitFkt, this will kill the conversion +# tool and the fifo reader if we are killed or if one of the tools finishes + +#set -x + +FIFO=/tmp/vdrfifo$$ + +log() { + echo >/dev/null + #echo "$$:`date `:$*" >> /tmp/test1.log +} + +trapfkt() { + log "trap received" + if [ "$MPID" != "" ] ; then + kill $MPID > /dev/null 2>&1 + kill -9 $MPID > /dev/null 2>&1 + fi + if [ "$FPID" != "" ] ; then + kill $FPID > /dev/null 2>&1 + kill -9 $FPID > /dev/null 2>&1 + fi + if [ -p $FIFO ] ; then + rm -f $FIFO + fi +} + +#create a fifo and start a cat +createFifo() { + mkfifo $FIFO >/dev/null 2>&1 || exit 1 + cat $FIFO 2>&1 & + FPID=$! +} + +#convert AVI to mpeg2, suing mencoder see +#http://www.wiki.csoft.at/index.php/MEncoder_Scripts +convertAVI() { + #mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=mp2:abitrate=192 $RTOP -o $FIFO $1 > /dev/null 2>&1 & + mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=5000:vbitrate=3000:keyint=15:acodec=mp2:abitrate=192 $RTOP -o $FIFO $1 > /dev/null 2>&1 & + MPID=$! +} + +#convert WAV to mpeg using lame +convertWAV() { +lame -v -b 192 -S $1 - - 2>&1 & +MPID=$! +} + +#convert pictures using GraphicsMagic +convertPicture(){ + if [ "$2" != "" -a "$3" != "" ] ; then + fopt="-geometry ${2}x$3" + fi + gm convert $fopt "$1" jpeg:- 2>&1 & + MPID=$! +} + +#cat data +catData() { + cat "$1" 2>&1 & + MPID=$! +} + +#convert a playlist +#handle http:// as audio-url +convertList() { + cat "$1" 2>&1 | sed 's?^ *http:\(.*\)?/http:\1.http-audio?' +} + +#get a HTTP url via wget +getHTTP() { + wget -q -O - "$1" 2>&1 & + MPID=$! +} + + + + + +#wait until the cat or the converter have been stopped +waitFkt() { + while [ 1 = 1 ] + do + dokill=0 + if [ "$MPID" != "" ] ; then + kill -0 $MPID >/dev/null 2>&1 || dokill=1 + fi + if [ "$FPID" != "" ] ; then + kill -0 $FPID >/dev/null 2>&1 || dokill=1 + fi + if [ $dokill = 1 ] ; then + log "killing MPID=$MPID FPID=$FPID" + kill -9 $MPID > /dev/null 2>&1 + MPID="" + kill -9 $FPID > /dev/null 2>&1 + FPID="" + fi + if [ "$FPID" = "" -a "$MPID" = "" ] ; then + log leaving waitFkt + break + fi + usleep 100000 + done + exit 0 +} + + +log started with param "$*" +if [ "$1" = "" ] ; then + echo inavlid call + exit 1 +fi +trap trapfkt 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 +case $1 in + check) + exit 0 + ;; + play) + exts=`echo "$2" | sed 's/.*\.//'` + if [ "$exts" = "" ] ; then + exit 1 + fi + fname=`echo "$2" | sed 's/\.[^.]*$//'` + case $exts in + xmpg) + #mpeg2 test + nname="$fname.mpg" + cat "$nname" & + MPID=$! + waitFkt + ;; + xjpg) + #jpeg test + nname="$fname.jpg" + [ "$nname" = "" ] && exit 1 + [ ! -f "$nname" ] && exit 1 + convertPicture "$nname" $3 $4 + waitFkt + ;; + xmp3) + #mp3 test + nname="$fname.mp3" + cat "$nname" & + MPID=$! + waitFkt + ;; + #real converting functions + bmp|BMP|tiff|TIFF|png|PNG) + convertPicture "$2" $3 $4 + waitFkt + ;; + AVI|avi) + createFifo + convertAVI "$2" $3 $4 + waitFkt + ;; + WAV|wav) + convertWAV "$2" + waitFkt + ;; + xdir) + catData "$2" + waitFkt + ;; + m3u|dir) + convertList "$2" + waitFkt + ;; + http-audio) + fn=`echo "$2" | sed 's/\.[^.]*$//' | sed 's?^ */??'` + getHTTP "$fn" + waitFkt + ;; + *) + exit 1 + ;; + esac + ;; + *) + exit 1 + ;; +esac diff --git a/vompclient.c b/vompclient.c index f4ddba4..8963b4c 100644 --- a/vompclient.c +++ b/vompclient.c @@ -80,6 +80,9 @@ VompClient::~VompClient() #endif if (loggedIn) cleanConfig(); decClients(); + + delete media; + delete mediaprovider; } void VompClient::incClients() -- 2.39.5