Files
Momentum-Firmware/applications/external/wiiec/_image_tool/_convert.sh
2023-05-02 17:53:54 +01:00

80 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
[ -z $1 ] && {
echo "Specify an image"
echo "gimp -> export -> c source file -> [x] gunit names"
exit 2
}
echo $*
for N in $* ; do
[ ! -f $N ] && {
echo "!! File missing $N"
continue
}
# filename (sans extension)
FN=$(basename -- "$N")
EXT="${FN##*.}"
NAME="${FN%.*}"
OUTDIR=img_/
mkdir -p ${OUTDIR}
HDR=${OUTDIR}/images.h
SRC=${OUTDIR}/images.c
OUT=${OUTDIR}/img_${NAME}.c
echo -e "\n¦${N}¦ == ¦${NAME}¦ -> ¦${OUT}¦"
TESTX=test_${NAME}
TESTC=test_${NAME}.c
# compile name
CONV=${NAME}_
# clean up gimp output
sed -e "s/gimp_image/img/g" \
-e 's/guint8/unsigned char/g' \
-e 's/width/w/g' \
-e 's/height/h/g' \
-e 's/bytes_per_pixel/bpp/g' \
-e 's/pixel_data/b/g' \
-e 's/guint/unsigned int/g' \
$N \
| grep -v ^/ \
| grep -v ^$ \
> ${CONV}.c
# append conversion code
cat _convert.c >> ${CONV}.c
# compile & run converter
rm -f ${CONV}
gcc ${CONV}.c -DIMGTEST -o ${CONV}
./${CONV} ${NAME} ${OUT}
rm -f ${CONV} ${CONV}.c
# (create &) update header
[[ ! -f ${HDR} ]] && cp _convert_images.h ${HDR}
sed -i "/ img_${NAME};/d" ${HDR}
sed -i "s#//\[TAG\]#//\[TAG\]\nextern const image_t img_${NAME};#" ${HDR}
# sample FZ code
[[ ! -f images.c ]] && cp _convert_images.c ${SRC}
# test
ROOT=${PWD}
pushd ${OUTDIR} >/dev/null
sed "s/zzz/${NAME}/" ${ROOT}/_convert_test.c > ${TESTC}
rm -f ${TESTX}
gcc ${TESTC} ${OUT##*/} -DIMGTEST -o ${TESTX}
./${TESTX}
rm -f ${TESTX} ${TESTC}
popd >/dev/null
done