#!/bin/bash
#
# io GNU/Linux Audio Record Tool
#
# Copyright  (C) 2014 Manu Kebab <io.gnu.linux@free.fr>
#
#------------------------------------------------------


PROGNAME=${0##*/}

set -a
source gettext.sh
set +a
export TEXTDOMAIN="${PROGNAME}"
export TEXTDOMAINDIR="/usr/share/locale"
. /usr/bin/gettext.sh

#JACKOUT='system:capture_'
JACKOUT='system:playback_'
TIMESTAMP=$(date +%Y%m%d-%Hh%Mm%Ss)


recorder_gui()
{
	sleep 0.5
	REC_INFOS=$(yad --width 580 --height 280 --title="~ io Audio Recorder ~" \
			--image=/usr/share/icons/Gant/128x128/apps/rec-audio.png \
			--window-icon=rec-audio --text-align=center \
			--text="$(eval_gettext $'<b><big><u>io Audio Recorder</u></big></b>\\nRecord an audio stream through JACK.\\n\\n(to finish the recording, click on the Rec icon in the systray)')" \
			--button="gtk-close:1" --button="gtk-ok:0" \
			--field=":LBL" \
			--form --field="$(eval_gettext $'File name:')" \
			--field="$(eval_gettext $'Recording folder:'):DIR" \
			--field=":LBL" \
			--field="$(eval_gettext $'Fomat:'):CB" \
			--field=":LBL" \
			--item-separator=@ "" Rec-${TIMESTAMP} "" "" wav@flac@ogg@mp3)
	ret=$?

	[ "${ret}" -eq 1 ] && exit 0

	CUSTOM_NAME=$(echo "${REC_INFOS}" | cut -d "|" -f2)
	REC_FOLDER=$(echo "${REC_INFOS}" | cut -d "|" -f3)
	REC_FORMAT=$(echo "${REC_INFOS}" | cut -d "|" -f5)

	if [ -z "${CUSTOM_NAME}" ]
	then
		REC_NAME="Rec-${TIMESTAMP}.${REC_FORMAT}"
	else
		REC_NAME="${CUSTOM_NAME}.${REC_FORMAT}"
	fi
	
	if [ "${ret}" -eq 0 ]
	then
		run_audiorec
	fi
}


run_audiorec()
{
	if [ ! -d "${REC_FOLDER}" ]
	then
		sleep 0.5
		yad --title "~ io Audio Recorder ~" --center \
			--image=dialog-error \
			--window-icon=rec-audio \
			--button=gtk-yes:0 \
			--text="$(eval_gettext $'Error: directory does not exist. Exiting...')" \
			--buttons-layout=center --text-align=center
		exit 1
	fi

	terminology -d=${REC_FOLDER} -T="~ io Audio Recorder ~" \
		-g="88x7" -c="false" -e jack_capture -b 24 -f ${REC_FORMAT} \
		--port ${JACKOUT}1 --port ${JACKOUT}2 ${REC_NAME} &
}


recorder_gui


exit 0
