set -e

exec 1001> /dev/stdout
BASH_XTRACEFD=1001
echo "$0" "$@"
set -x

test -n "$AUTOPKGTEST_MPV_MPRIS" ||
exec "debian/tests/env" "$0" "$@"

test="$(basename "$0")"

if [ "$test" = setup ] ; then
	echo "This setup script should be sourced, not executed" >&2
	exit 1
fi

ipc="$AUTOPKGTEST_TMP/$test.ipc"
log_prefix="$AUTOPKGTEST_ARTIFACTS/$test"
log="$log_prefix.mpv.log"
file=/usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

prop () {
	prop="$1"
	shift
	jo command[]=get_property command[]="$prop" "$@"
}

val () {
	jq --exit-status "[.data==$1, .error==\"success\"] | all"
}

check () {
	prop "$1" |
	tee /dev/stdout |
	socat - "$ipc" |
	tee /dev/stdout |
	val "$2"
}

status () {
	playerctl status |
	grep "^$1$"
}

if [ -n "$pause" ] ; then
	pause=--pause
else
	unset pause
fi

echo "DISPLAY=$DISPLAY"
echo "DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS"

mpv \
$pause \
--vo=null --ao=null \
--msg-time \
--msg-module \
--msg-level=cplayer=trace,mpris=trace \
--log-file="$log" \
--input-ipc-server="$ipc" \
"$file" \
2> >(awk '/statusline.*Paused/{print>"/dev/stdout";next} 1')>&2 \
&

sleep 1s
