#!/bin/bash


# Check if another instance of script is running
pidof -o %PPID -x $0 >/dev/null && echo "ERROR: Script $0 already running" && exit 1

while true
do
	# Parse default conf
	. /etc/io-studio.conf

	# Parse user conf
	[ -e ~/.config/io-studio.conf ] && . ~/.config/io-studio.conf

	killall alsa_in alsa_out jack-aloop-daemon jack-pulse-daemon > /dev/null 2>&1
	pulseaudio -k > /dev/null 2>&1
	pulseaudio -k > /dev/null 2>&1
	killall start-pulseaudio-x11 > /dev/null 2>&1

	if jack_control status | grep -qs started && ladish_control sisloaded | grep -qs yes
	then
		ZITA_PERIOD=$(( $PERIOD/2 ))
		if ! ps -A | grep "zita-a2j" | grep -v grep > /dev/null 2>&1
		then
			zita-a2j -d hw:Loopback,1,0 -r "${RATE}" -p "${ZITA_PERIOD}" -n "${NPERIOD}" -L 2 2>&1 1> /dev/null &
			if [ "${AUTO_CONNECT}" = "TRUE" ]
			then
				sleep 0.5
				jack_connect "zita-a2j:capture_1" "system:playback_1" 2>&1 1> /dev/null &
				jack_connect "zita-a2j:capture_2" "system:playback_2" 2>&1 1> /dev/null &
				jack_connect "zita-a2j:capture_1" "system:playback_3" 2>&1 1> /dev/null &
				jack_connect "zita-a2j:capture_2" "system:playback_4" 2>&1 1> /dev/null &
			fi
		fi
		if ! ps -A | grep "zita-j2a" | grep -v grep > /dev/null 2>&1
		then
			zita-j2a -d hw:Loopback,1,1 -r "${RATE}" -p "${ZITA_PERIOD}" -n "${NPERIOD}" -L 2 2>&1 1> /dev/null &
			if [ "${AUTO_CONNECT}" = "TRUE" ]
			then
				sleep 0.5
				jack_connect "system:capture_1" "zita-j2a:playback_1" 2>&1 1> /dev/null &
				jack_connect "system:capture_2" "zita-j2a:playback_2" 2>&1 1> /dev/null &
			fi
		fi
	fi

	sleep 120

done


exit 0
