#!/bin/sh
export PATH=/opt/lnxall_app/bin:/opt/lnxall_app/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
PLATSPEC=/opt/lnxall_app/platspec

BACKGROUND_BMP=/etc/splash.d/background.bmp
LOGO_BMP=/etc/splash.d/logo.bmp
UPDATE_BACKGROUND=0
UPDATE_LOGO=0

usage() {
	echo "Usage: reload_splash [-b background.jpeg] [-l logo.jpeg]"
	exit 1
}

while getopts "b:l:h" opt; do
	case "$opt" in
	b)
		BACKGROUND_JPEG=$OPTARG
		UPDATE_BACKGROUND=1
		;;
	l)
		LOGO_JPEG=$OPTARG
		UPDATE_LOGO=1
		;;
	h)
		usage
		;;
	*)
		usage
		;;
	esac
done
shift $((OPTIND - 1))

[ $# -eq 0 ] || usage
[ "$UPDATE_BACKGROUND" -eq 1 ] || [ "$UPDATE_LOGO" -eq 1 ] || usage
[ -L "/etc/splash.d" ] || {
	echo "Error, missing splash directory: /etc/splash.d"
	exit 2
}

if [ "$UPDATE_BACKGROUND" -eq 1 ] ; then
	[ -f "$BACKGROUND_JPEG" ] || {
		echo "Error, missing background source: $BACKGROUND_JPEG"
		exit 3
	}
	ffmpeg -hide_banner -loglevel error -nostats -y \
		-i "$BACKGROUND_JPEG" \
		-pix_fmt bgr24 "$BACKGROUND_BMP" \
	|| exit 4
fi

if [ "$UPDATE_LOGO" -eq 1 ] ; then
	[ -f "$LOGO_JPEG" ] || {
		echo "Error, missing logo source: $LOGO_JPEG"
		exit 5
	}
	ffmpeg -hide_banner -loglevel error -nostats -y \
		-i "$LOGO_JPEG" \
		-vf "scale=500:500:force_original_aspect_ratio=decrease,colorkey=black:0.1:0.0,format=bgra,vflip" \
		-pix_fmt bgra "$LOGO_BMP" \
		&& python3 -c 'import struct, sys; p=sys.argv[1]; f=open(p,"r+b"); f.seek(22); h=struct.unpack("<i",f.read(4))[0]; f.seek(22); f.write(struct.pack("<i",-abs(h))); f.close()' \
		"$LOGO_BMP" \
	|| exit 6

	rk3568_change_bootlogo "$LOGO_BMP" || exit 7
fi

exit 0
