#!/bin/bash

PROGRAM=/usr/bin/dermixd
RUNLEVEL=3

CONTROL=/usr/bin/dermixd-control

# defaults to have something
USER=musicdaemon
TCP=yes
PORT=8888
UNIX=yes
SOCKET=/tmp/dermixd.socket
REMOTE=no
BUFFER=2048
AUDIO_RATE=44100
CHANNELS=2
NICE=-5
INPUT_ZEROSCAN=no
INPUT_PREBUFFER=10
INPUT_ZEROLEVEL=0.01
INPUT_ZERORANGE=5
INITIAL_SETUP=yes
DEFAULT_OUTPUT=
DEFAULT_OUTFILE=
OUTPUT_STOPPED=yes
#DEBUG_OUT=

. /etc/init.d/smgl_init
. /etc/sysconfig/dermixd

start()
{
	echo "starting DerMixD..."
	COMMAND="$PROGRAM port='$PORT' socket='$SOCKET' buffer='$BUFFER' audio_rate='$AUDIO_RATE' channels='$CHANNELS' input.prebuffer='$INPUT_PREBUFFER' input.zeroscan='$INPUT_ZEROSCAN' input.zerolevel='$INPUT_ZEROLEVEL' input.zerorange='$INPUT_ZERORANGE'"
	if ! test -z "$DEBUG_OUT"; then COMMAND="$COMMAND output='$DEBUG_OUT'"; fi
	if [[ "$REMOTE" == "yes" ]]; then COMMAND="$COMMAND -r"; fi
	if [[ "$INITIAL_SETUP" == "yes" ]]
	then
		if ! test -z "$DEFAULT_OUTPUT"; then COMMAND="$COMMAND default_output='$DEFAULT_OUTPUT'"; fi
		if ! test -z "$DEFAULT_OUTFILE"; then COMMAND="$COMMAND default_outfile='$DEFAULT_OUTFILE'"; fi
	else
		COMMAND="$COMMAND -n"
	fi
	nice -n $NICE su -s /bin/bash -c "${COMMAND}" ${USER} &&
	if [[ "$INITIAL_SETUP" == "yes" ]] && [[ "$OUTPUT_STOPPED" == "yes" ]]
	then
		$CONTROL outeject 0
	fi
	test -z "$SOCKET" || chmod g+w "$SOCKET"
}

stop()
{
	echo "stopping daemon politely"
	$CONTROL --socket="$SOCKET" --port="$PORT" shutdown
}

status()
{
	echo "status:"
	$CONTROL -- fullstat
}
