#!/bin/sh # roaraudio initscript # # Copyright (c) 2008-2010 Philipp 'ph3-der-loewe' Schafft # Copyright (c) 2007 Javier Fernandez-Sanguino # # This is free software; you may redistribute it and/or modify # it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3, # or (at your option) any later version. # # This 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 with # the Debian operating system, in /usr/share/common-licenses/GPL; if # not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # ### BEGIN INIT INFO # Provides: roaraudio # Required-Start: $network $local_fs # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: sound server for audio mixing # Description: RoarAudio is a server for audio mixing. Its main purpose is to mix audio from # different clients before sending it to its outputs (for example a soundcard). # It is completely network transparent (UNIX sockets, TCP/IP, DECnet) and # supports many common codecs like Ogg Vorbis, Speex or FLAC. ### END INIT INFO set -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/roard ROARCTL=/usr/bin/roarctl NAME=roaraudio DESC="RoarAudio" PIDFILE=/var/run/`basename $DAEMON`.pid SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0; # Read config file if it is present. if [ -r /etc/default/$NAME ] then . /etc/default/$NAME fi if [ "$ROARAUDIO_DEFAULT_SOCKET" != '' ] then ln -s "$ROARAUDIO_DEFAULT_SOCKET" /etc/roarserver fi [ "$ROARD" = 'YES' ] || exit 0; ROARD_OPTS="--daemon $ROARD_OPTS" [ "$PIDFILE" = '' ] || ROARD_OPTS="--pidfile $PIDFILE $ROARD_OPTS" [ "$ROARD_REALTIME" = 'YES' ] && ROARD_OPTS="--realtime $ROARD_OPTS" [ "$ROARD_REALTIME" = 'DOUBLE' ] && ROARD_OPTS="--realtime --realtime $ROARD_OPTS" [ "$ROARD_LOCATION" = '' ] || ROARD_OPTS="--location $ROARD_LOCATION $ROARD_OPTS" case "$ROARD_AF" in UNIX|unix) ROARD_OPTS="-u $ROARD_OPTS" ;; TCP|tcp) ROARD_OPTS="-t $ROARD_OPTS" ;; DECnet|DECNET|decnet) ROARD_OPTS="-n $ROARD_OPTS" ;; esac ESD_OPTS='' case "$ROARD_EMUL_ESD_AF" in UNIX|unix) ESD_OPTS="--new-sock --proto esd -u -b /tmp/.esd/socket" mkdir /tmp/.esd/ 2> /dev/null; ;; TCP|tcp) _host='localhost'; [ "$ROARD_HOST" = '' ] || _host="$ROARD_HOST" ESD_OPTS="--new-sock --proto esd -t -b $_host -p 16001" ;; esac [ "$ROARD_SOCKET" = '' ] || ROARD_OPTS="--sock $ROARD_SOCKET $ROARD_OPTS" [ "$ROARD_PORT" = '' ] || ROARD_OPTS="--port $ROARD_PORT $ROARD_OPTS" if [ "$ROARD_OBJECT" = '' ] then [ "$ROARD_HOST" = '' ] || ROARD_OPTS="--bind $ROARD_HOST $ROARD_OPTS" else ROARD_OPTS="--sock $ROARD_HOST::$ROARD_OBJECT $ROARD_OPTS" fi [ "$ROARD_SLP" = 'YES' ] && ROARD_OPTS="--slp $ROARD_OPTS" [ "$ROARD_RATE" = '' ] || ROARD_OPTS="-R $ROARD_RATE $ROARD_OPTS" [ "$ROARD_CHANNEL" = '' ] || ROARD_OPTS="-C $ROARD_CHANNEL $ROARD_OPTS" [ "$ROARD_BITS" = '' ] || ROARD_OPTS="-B $ROARD_BITS $ROARD_OPTS" [ "$ROARD_DRIVER" = '' ] || ROARD_OPTS="-o $ROARD_DRIVER $ROARD_OPTS" [ "$ROARD_DEVICE" = '' ] || ROARD_OPTS="-O $ROARD_DEVICE $ROARD_OPTS" [ "$ROARD_DRIVER_OPTIONS" = '' ] && ROARD_DRIVER_OPTIONS='sync' ROARD_OPTS="-oP -oO $ROARD_DRIVER_OPTIONS $ROARD_OPTS" if [ "$ROARD_USER" = '' ] then ROARD_OPTS="--setuid -U roard $ROARD_OPTS" else ROARD_OPTS="--setuid -U $ROARD_USER $ROARD_OPTS" fi ROARD_OPTS="--setgid $ROARD_OPTS" [ "$ROARD_GROUP" = '' ] || ROARD_OPTS="-G $ROARD_GROUP $ROARD_OPTS" [ "$ROARD_CHROOT" = '' ] || ROARD_OPTS="--chroot $ROARD_CHROOT $ROARD_OPTS" ROARD_OPTS="$ROARD_OPTS $ESD_OPTS" case "$1" in start) echo -n "Starting $DESC: $NAME" $DAEMON --start $ROARD_OPTS echo "." ;; stop) echo -n "Stopping $DESC: $NAME" $DAEMON --stop $ROARD_OPTS echo "." ;; restart|force-reload) echo -n "Restarting $DESC: $NAME" $DAEMON --restart $ROARD_OPTS echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0