+ [ -n "$location" ] && playuri="${treeroot%/}/${location#/}"
+ [ -n "$info" ] && playuri="${_DATA}/videos/$info"
+ [ -n "$foreign" ] && playuri="$videourl"
+
+ metafile="${_DATA}/meta/${info}.meta"
+
+ playmeta="${_DATA}/mplayer.meta"
+ fifofile="${_DATA}/mplayer.fifo"
+ statusfile="${_DATA}/mplayer.status"
+ statusfile="/tmp/mplayer.status"
+ volume="$(validate "$(cat "${_DATA}/mplayer.volume" || true)" '[1-9]?[0-9]|100' 20)"
+ [ \! -p "$fifofile" ] && rm -f "$fifofile" && mkfifo -m 600 "$fifofile"
+
+ debug PLAYURI "$playuri"
+
+ if [ -f "$metafile" ]; then
+ cp "$metafile" "$playmeta"
+ else
+ rm "$playmeta"
+ "${_EXEC}"/helpers/genmeta.sh "$playuri" "$playmeta" >&-
+ fi
+
+ export DISPLAY=":0"
+ uid="$(id |sed -rn '1s;.*uid=([0-9]+)[^0-9].*;\1;p')"
+ export XDG_RUNTIME_DIR="/run/user/$uid" # required for Pulseaudio
+ xrandr || true >&- # helps enable all screens
+ xvkbd -text '\x+10000\y+10000' || true >&-
+
+ if mplayer |grep -q MPlayer2; then
+ nohup /usr/bin/mplayer \
+ --slave --input=file="$fifofile" \
+ --volume="$volume" \
+ "$playuri" 2>"$statusfile" >&- &
+ else
+ nohup /usr/bin/mplayer \
+ -slave -input file="$fifofile" \
+ -volume "$volume" \
+ "$playuri" >"$statusfile" &
+ fi
+
+ chmod 600 "$statusfile"
+
+ redirect "?p=playctl&${watch_link}"