]> git.plutz.net Git - serve0/blobdiff - pages/playctl.sh
increased response times
[serve0] / pages / playctl.sh
index c01b8007c61996acd02f8ace1935804cc4f32fed..79122fd00d9f4f5ea370abdc33ec4b3883b471b3 100755 (executable)
@@ -36,18 +36,19 @@ volume=$(validate "$(cat "$_DATA/mplayer.volume")" '[1-9]?[0-9]|100' 20)
 
 debug VIDEO: $video
 
+printf 'Refresh: 1\r\n'
+
 progress(){
-  discard="$(tail -n2 "$statusfile" |sed 's;[^\r];;g' |wc -c)"
+  cr="$(printf \\r)"
 
-  tail --pid=$$ -f "$statusfile" \
-  | tr '\r' '\n' \
-  | tail -n+$discard \
-  | sed -urn '1~10s;^.* V: +([0-9]+)(\.[0-9]+) A-V:.*$;\1;p' \
-  | while read m; do
-    printf "%d %d\n" "$(($m * 100 / $length))" "$m"
+  tail --pid=$$ -c0 -f "$statusfile" \
+  | while read -d "$cr" line; do
+    [ $line = "BREAK" ] && exit 0
+    printf '%s\n' "$line"
   done \
-  | while read n; do
-    [ "$n" != "$previous" ] && printf "%s\n" "$n"
-    previous="$n"
+  | sed -urn '1~12s;^.* V: *+([0-9]+)(\.[0-9]+) A-V:.*$;\1;p' \
+  | while read m; do
+    [ "$m" != "$previous" ] && printf "%d %d\n" "$(($m * 100 / $length))" "$m"
+    previous="$m"
   done
 }