#!/bin/sh
# soundserver
# setting-up dmix sound server
# 
# (c) 2006, Eko M. Budi for Vector Linux
# License: GNU GPL

function alsa_set_dmix() {
echo<<EOF
# This setting enable alsa dmixer for user
# Change the ipc_key if needed
pcm.ossmix {
    type dmix
    ipc_key 1021          # must be unique!
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024  # must be power of 2
        buffer_size 8192  # dito. It
        #format "S32_LE"
        #periods 128      # dito.
        rate 44100        # or 48000
    }

# bindings are cool. This says, that only the first
# two channels are to be used by dmix, which is enough for
# (most) oss apps and also lets multichannel chios work 
# much faster:
    bindings {
        0 0   # from 0 =&gt; to 0
        1 1   # from 1 =&gt; to 1
    }
}

# Redirect to ossmix
pcm.!default {
    type plug
    slave.pcm "ossmix"     # use our new PCM here
}

# Redirect to ossmix
pcm.dsp0 {
    type plug
    slave.pcm "ossmix"     # use our new PCM here
}

# mixer0 like above
ctl.mixer0 {
    type hw
    card 0
}

EOF

}

if startsound-alsa ; then
    # copy dmix settings
    rm -f $HOME/.asoundrc
    echo "Setting up alsa dmix"
    if [ ! -f $HOME/.asoundrc.dmix ]; then
      set_dmix > $HOME/.asoundrc.dmix
    fi
    (cd $HOME; ln -sf .asoundrc.dmix .asoundrc)
else
    echo "ERROR: cannot use DMIX without alsa"
    exit 1
fi
