Détection (pourrie) de fin de fichier. :( :( :( :(

This commit is contained in:
Georges Dupéron 2010-09-25 23:54:49 +02:00
parent 0874703f3b
commit 3d5348deb7
3 changed files with 12 additions and 2 deletions

View File

@ -5,7 +5,7 @@ source "$(dirname "$0")/config"
if [ "$1" == "stop" ]; then
if [ -e /dev/shm/mplayer-pid ]; then
if ! kill "$(<"$MP_PID")"; then
echo "Failed to kill mplayer"
echo "Failed to kill mplayer."
exit 2
fi
else
@ -17,5 +17,5 @@ else
[ -p "$MP_OUTPUT" ] || mkfifo "$MP_OUTPUT"
mplayer -quiet -slave -input file="$MP_CONTROL" -idle > "$MP_OUTPUT" 2> "$MP_ERROR" &
echo "$!" > /dev/shm/mplayer-pid
echo "$!" > "$MP_PID"
fi

View File

@ -13,6 +13,10 @@ old_album=""
cat "$MP_OUTPUT" \
| while read ligne; do
# Détection de la fin de fichier (voir commentaire dans mplayerd-play.
if [ "$ligne" == "Playing /dev/null." ]; then
echo "EOF"
fi
# TODO : utiliser grep n'est pas du tout efficace !
if grep -q "^[a-zA-Z_][a-zA-Z0-9_]*='"<<<"$ligne"; then
modif=0

View File

@ -3,3 +3,9 @@
source "$(dirname "$0")/config"
echo "loadfile '$(readlink -f "$1")' 0" > "$MP_CONTROL"
# On lit /dev/null après le fichier, pour détecter la fin du fichier.
# Sinon, mplayer ne donne aucune indication comme quoi il est arrivé
# à la fin du fichier (en fait il affiche un "\n", mais c'est dur à
# détecter et il se peut que d'autres évènements en génèrent un aussi).
echo "loadfile '/dev/null' 1" > "$MP_CONTROL"