commit 3d5348deb73fb55c17b31eb4ae7cb2dd663306cd
parent 0874703f3ba96b763c10042c13117e86c15baff1
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Sat, 25 Sep 2010 23:54:49 +0200
Détection (pourrie) de fin de fichier. :( :( :( :(
Diffstat:
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/mplayerd b/mplayerd
@@ -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
diff --git a/mplayerd-getinfo b/mplayerd-getinfo
@@ -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
diff --git a/mplayerd-play b/mplayerd-play
@@ -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"