#!/bin/sh

# Loads the firmware into M-Audio USB DFU devices.

FIRMWARE=
FIRMWAREDIR=/usr/share/usb/maudio
FLAGS=
LOADER=/usr/sbin/madfuload
LOGGER=/usr/bin/logger

if [ x$ACTION != xadd ]; then
	exit
fi

case $PRODUCT in
763/2803/*)
	FIRMWARE=$FIRMWAREDIR/ma003101.bin
	FLAGS=-n
	;;
763/2804/*)
	FIRMWARE=$FIRMWAREDIR/ma004103.bin
	test -r $FIRMWARE || FIRMWARE=$FIRMWAREDIR/ma004100.bin
	FLAGS=-3
	;;
763/2805/*)
	FIRMWARE=$FIRMWAREDIR/ma005101.bin
	FLAGS=-n
	;;
763/2806/*)
	FIRMWARE=$FIRMWAREDIR/ma006100.bin
	FLAGS=-3
	;;
763/2808/*)
	FIRMWARE=$FIRMWAREDIR/ma008100.bin
	FLAGS=-3
	;;
*)
	if [ -x $LOGGER ]; then
		$LOGGER -t $0 "unknown product $PRODUCT"
	fi
	exit 1
esac

# missing firmware?
if [ ! -r $FIRMWARE ]; then
	if [ -x $LOGGER ]; then
		$LOGGER -t $0 "missing $FIRMWARE for $PRODUCT ??"
	fi
	exit 1
fi

# missing loader?
if [ ! -x $LOADER ]; then
	if [ -x $LOGGER ]; then
		$LOGGER -t $0 "missing $LOADER ??"
	fi
	exit 1
fi

if [ -x $LOGGER ]; then
	$LOGGER -t $0 "load $FIRMWARE for $PRODUCT to $DEVICE"
fi
$LOADER -l $FLAGS -f $FIRMWARE
