#!/bin/sh # esddsp - wrapper script to allow *some* binary only programs to use esd # default values for script variables verbose=0 set_name=0 # check for esddsp options while test $# -gt 0; do case "$1" in -h|--help) echo "esddsp - attempt to reroute audio device to esd" echo " " echo "esddsp [options] player arguments" echo " " echo "options:" echo "-h, --help show brief help" echo "-s, --server=HOST:PORT contact esd server on host at port" echo "-m, --mixer enable mixer support" echo "-n, --name=NAME use name to identify player to esd" echo "-v, --verbose show parameters" echo "--mmap use memory mapping emulation" echo " (useful for games like quake)" exit 0 ;; -s) shift if test $# -gt 0; then ESPEAKER=$1 export ESPEAKER else echo "no server specified" exit 1 fi shift ;; --server*) ESPEAKER=`echo $1 | sed -e 's/^[^=]*=//g'` export ESPEAKER shift ;; -m|--mixer) ESDDSP_MIXER=1 export ESDDSP_MIXER shift ;; -n) shift if test $# -gt 0; then ESDDSP_NAME=$1 export ESDDSP_NAME else echo "no player name specified" exit 1 fi shift set_name=1 ;; --name*) ESDDSP_NAME=`echo $1 | sed -e 's/^[^=]*=//g'` export ESDDSP_NAME set_name=1 shift ;; -v|--verbose) verbose=1 shift ;; --mmap) ESDDSP_MMAP=1 export ESDDSP_MMAP shift ;; *) # no more esddsp options, get on with life break ;; esac done # default name to player if not specified if test "$set_name" = 0; then ESDDSP_NAME=$1 export ESDDSP_NAME fi # echo options if verbose specified if test "$verbose" = 1; then echo "server: $ESPEAKER" echo "name: $ESDDSP_NAME" echo "command line: $@" fi # setup esd to hijack calls made to /dev/dsp prefix=/usr exec_prefix=/usr LD_PRELOAD="libesddsp.so.0 libesd.so.0 $LD_PRELOAD" export LD_PRELOAD # invoke the program with the args given exec "$@"