#!/bin/bash 

check_presets() {
	echo "check if we have got presets, if not, copy"

    if [[ ! $(findmnt -M "/nor_flash") ]]; then
            echo "erasing flash"
            flash_erase -q -j /dev/mtd0 0 0
            mount -t jffs2 /dev/mtdblock0 /nor_flash/
    fi

	if [[ ! -L /mnt/presets ]]; then
			echo "creating preset link"
			mkdir -p /nor_flash/presets
			mkdir -p /nor_flash/pedal_state
			rm -rf /mnt/presets
			rm -rf /mnt/pedal_state
			ln -s /nor_flash/presets /mnt/presets
			ln -s /nor_flash/pedal_state /mnt/pedal_state
	fi

	if [[ ! -d /nor_flash/presets ]]; then
        mkdir -p /nor_flash/presets
        mkdir -p /nor_flash/pedal_state
    fi

	if [[ ! -e /nor_flash/presets/beebo/Empty.ingen/main.ttl ]]; then
		echo "copying presets"
		rsync -a /to_nor_flash/ /nor_flash
		rm -f /nor_flash/pedal_state/preset_meta.json
		rm -f /mnt/pedal_state/preset_meta.json
		chown debian /nor_flash/*
	fi
}

start() {
    # start jack
    #/usr/bin/jackd -R -P80 -t 5000 -d alsa -dhw:CARD=digitpcm3168a,DEV=0 -p 128 -i 2 -o 2 &
    
    JACK_NO_AUDIO_RESERVATION=1 
    export JACK_NO_AUDIO_RESERVATION
    #/usr/bin/jackd -R -P80 -t 5000 -d alsa -P"hw:CARD=digitpcm3168a,DEV=0" -C"hw:CARD=digitpcm3168a,DEV=1" -p 256 -i 6 -o 8 &
    # wait until jack is up
    /usr/bin/sleep 0.2
    until [ "$(/usr/bin/jack_wait -c)" = "running" ]; do
    	/usr/bin/sleep 0.2
    done
    # start ingen
    echo "starting midi"
    /usr/bin/ttymidi -s /dev/ttyS1 &
    echo "starting matchmaker"
    /usr/local/bin/jack-matchmaker -p /home/debian/patterns &
    /usr/bin/a2jmidid -eu &

	check_presets
	
    echo "starting ingen"
    /usr/bin/ingen -e -p 3 -a /home/debian/start_up.ingen 
    # start frontend 
}

stop() {
    #/usr/bin/pkill -f --signal 9 "python3 headless" 
    /usr/bin/pkill "ingen" 
    /usr/bin/pkill "matchmaker" 
    /usr/bin/pkill "ttymidi" 
    /usr/bin/pkill "a2jmidid" 
    #/usr/bin/pkill "jackd" 
}

case $1 in
  start|stop) "$1" ;;
esac
