#!/bin/bash

PROGRAM=/usr/bin/dermixd
RUNLEVEL=3

CONTROL=/usr/bin/dermixd-control
#some defaults... ok, dermixd should start to read a config file...
PORT=8888
BUFFER=2048
AUDIO_RATE=44100
CHANNELS=2
DEBUG_OUT=
DEFAULT_OUTPUT=
DEFAULT_OUTFILE=
MPG123_DECODER=/usr/bin/mpg123
MPG123_PREBUFFER=2
MPG123_ZEROSCAN=yes
MPG123_ZEROLEVEL=100
MPG123_GAPLESS=no
INITIAL_SETUP=yes
OUTPUT_STOPPED=yes
NICE=-5
#be on the safe side
USER=nobody
REMOTE=no

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

start()
{
	echo "starting DerMixD..."
	COMMAND="$PROGRAM port='$PORT' buffer='$BUFFER' audio_rate='$AUDIO_RATE' channels='$CHANNELS' mpg123.decoder='$MPG123_DECODER' mpg123.prebuffer='$MPG123_PREBUFFER' mpg123.zeroscan='$MPG123_ZEROSCAN' mpg123.gapless=$MPG123_GAPLESS"
	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 outstop 0
	fi
}

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

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