#!/bin/bash

#   idjc(_): The program launcher shell script for IDJC
#   Copyright (C) 2005-2008 Stephen Fairchild
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

# These two are set by make
pyexecdir=
export pkgpyexecdir=

# Make JACK sound server start on demand
export JACK_START_SERVER="1"
# Make vorbiscomment and ogginfo use the UTF-8 character set
export CHARSET="UTF-8"

export metaflac=`which metaflac`
export lame=`which lame`
export oggenc=`which oggenc`
export ogginfo=`which ogginfo`
export jackd=`which jackd`
export vorbiscomment=`which vorbiscomment`

# Duplicate processes not allowed: check for a current IDJC process and signal it before exiting
#if test `pgrep -lf -U $(id -u) idjcgui.py | wc -l` -gt 0 ; then
#   echo "Only one instance of idjc can be run at any one time per user."
#   pkill -USR2 -f -U $(id -u) idjcgui.py
#   exit 5
#fi

# Process the command line arguments turning them into environment variables
VERSION_ONLY="0"
SHOW_HELP="0"
APP_PROFILE="(unspecified)"
JACK_SERVER="default"
MICROPHONE=""
AUXILIARY=""
SERVERSTART=""
VOIPMODE="0"

function showusage {
   echo "Usage: $0 [-vh] [-p profile] [-j jackserver] [-m microphones] [-a aux inputs] [-s servers] [-t telephony mode]"
   echo "Try option -h for more info"
}

while getopts "vhp:j:m:a:s:t:" myoption
   do
      case $myoption in
         v)
            VERSION_ONLY="1"
            ;;
         h)
            SHOW_HELP="1"
            ;;
         p)
            APP_PROFILE="$OPTARG"
            ;;
         j)
            JACK_SERVER="$OPTARG"
            ;;
         m)
            MICROPHONE="$OPTARG"
            ;;
         a)
            AUXILIARY="$OPTARG"
            ;;
         s)
            SERVERSTART="$OPTARG"
            ;;
         t)
            VOIPMODE="$OPTARG"
            ;;
         *)
            showusage
            exit 5
            ;; 
      esac
   done

export VERSION_ONLY SHOW_HELP APP_PROFILE JACK_SERVER MICROPHONE AUXILIARY SERVERSTART VOIPMODE

python=
export python
which $python > /dev/null
if [ $? == "0" ] ; then
   MALLOC_CHECK_=2 ${python} ${pyexecdir}/idjcgui.py
else
   echo "Python interpreter not found.  IDJC can not be run without it"
fi
