#!/bin/sh
dir=/mnt/FDR

start () 
{
	[ -f /run/air ] || return
	[ -f /run/storage ] || return

	ext=""
        format=$(uci -q get keenfalcon.recorder.format)
        case "$format" in
                "fpv")
                        ext=".fpv"
                        ;;
                "mkv")
                        ext=".mkv"
                        ;;
		*)
			return
			;;                      
        esac
        
	mkdir -p ${dir}

        if [ -n $ext ]; then
                last=$(find ${dir} -name "*${ext}" | sort | tail -n 1)
                if [ -n "${last}" ]; then
                        last=$(($(basename ${last} ${ext}) + 0))
                else
                        last=0
                fi      
        
		printf "Starting flight recorder: "
                case "$ext" in
                        ".mkv")
                        	mkdir -p ${dir}/MKV
                                start-stop-daemon -S -b -p /run/recorder.pid -m \
                                        -x /usr/bin/gst-launch-1.0 -- \
                                        -q udpsrc port=5000 do-timestamp=1 ! queue ! h264parse ! matroskamux ! filesink location=${dir}/MKV/$(printf "%08d%s\n" $((last + 1)) ${ext})
				[ $? = 0 ] && echo "OK" || echo "FAIL"
                                ;;
			".fpv")
				mkdir -p ${dir}/FPV
                                start-stop-daemon -S -b -p /run/recorder.pid -m \
                                        -x /sbin/fdr -- ${dir}/FPV/$(printf "%08d%s\n" $((last + 1)) ${ext})
				[ $? = 0 ] && echo "OK" || echo "FAIL"
				;;
                esac           
        fi
}

stop () 
{
	if [ -f /run/recorder.pid ]; then
		printf "Stopping flight recorder: "
        	start-stop-daemon -q -K -s 9 -p /run/recorder.pid
		[ $? = 0 ] && echo "OK" || echo "FAIL"
		rm /run/recorder.pid
        fi
}

case "$1" in 
	start)
        	start
        	;;

        stop)
        	stop
        	;;

        restart)
        	stop
                start
        	;;
esac
