X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=pages%2Fplayctl.sh;h=a4c5bbebb5fd45c5b37fc5653d9ed8e085ea9711;hb=efefeef8289f064b3875b9bae1d1b007f5c1d5f8;hp=ad6ea24e0b81955f912fb62f86d30f19aae75bc4;hpb=623e13703a176cf67053c5e21a6d2c71f5a96c55;p=serve0 diff --git a/pages/playctl.sh b/pages/playctl.sh index ad6ea24..a4c5bbe 100755 --- a/pages/playctl.sh +++ b/pages/playctl.sh @@ -1,6 +1,6 @@ #!/bin/zsh -# Copyright 2014 2016 Paul Hänsch +# Copyright 2014, 2016 Paul Hänsch # # This file is part of Serve0. # @@ -22,18 +22,44 @@ info="${_GET[i]}" location="$(invalidate "${_GET[l]}" '(.*/)?\.\.(/.*)?|' /)" directory="${location%/*}" +statusfile="$_DATA/mplayer.status" +statusfile="/tmp/mplayer.status" -TITLE="$info" - -meta="${_DATA}/meta/$info.meta" [ -n "$info" ] && video="${_DATA}/videos/$info" \ || video="${treeroot%/}/${location#/}" + +meta="${_DATA}/mplayer.meta" tags="$(sed -n '2p' "$meta")" description="$(sed -n '3,$p' "$meta")" -length=0; width=0; height=0; - -video="videos/$info" -[ -n "$info" ] && video="videos/$info" \ - || video="${location#/}" +head -n1 "$meta" |read length width height TITLE volume=$(validate "$(cat "$_DATA/mplayer.volume")" '[1-9]?[0-9]|100' 20) + +debug VIDEO: $video + +pa_sinks(){ + if which pactl >/dev/null; then + export DISPLAY=":0" + export XDG_RUNTIME_DIR="/run/user/$(id |sed -rn '1s;.*uid=([0-9]+)[^0-9].*;\1;p')" + + pactl list sinks \ + | sed -rn '/Sink #/{:X;N;/Description: /!bX;s;Sink #([0-9]+).+Description: (.*);\1 \2;p}' + fi +} + +printf 'Refresh: 1\r\n' + +progress(){ + cr="$(printf \\r)" + + tail --pid=$$ -c100 -f "$statusfile" \ + | while read -d "$cr" line; do + [ $line = "BREAK" ] && exit 0 + printf '%s\n' "$line" + done \ + | 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 +}