# Die Soundkarte wird festgelegt.
pcm.snd_card {
    type hw
    card 0
}

# Das dmix-Plugin wird definiert.
pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_perm 0666	# Andere Benutzer k�nnen ebenfalls dmix gleichzeitig nutzen  ( geil! :) )
    slave.pcm "snd_card"
    slave {
        # buffer_size kann bei Problemen der jeweiligen Karte angepasst werden.
        period_time 0
        period_size 1024
        buffer_size 16384
        # bei St�rungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        # rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

# Das dsnoop-Plugin, welches es erlaubt, mehrere Programme gleichzeitig aufnehmen zu lassen.
pcm.dsnooper {
    type dsnoop
    ipc_key 2048
    ipc_perm 0666 
    slave.pcm "snd_card"
    slave 
    {
        period_time 0
        period_size 1024
        buffer_size 8192
        # bei St�rungen kann die Konvertierung auf die Rate 44100 eingeschaltet werden.
        # rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

# Dies definiert unser Fullduplex-Plugin als Standard f�r alle ALSA-Programme.
pcm.duplex {
    type asym
    playback.pcm "dmixer"
    capture.pcm "dsnooper"
}

pcm.!default {
    type plug
    slave.pcm "duplex"
}

########
# AOSS #
########

# DSP wird simuliert und benutzt das dmix-Plugin.
pcm.dsp "duplex"
pcm.dsp1 "duplex"

# OSS-Steuerung f�r dsp0 (falls es ben�tigt wird...)
ctl.dsp {
    type plug
    slave.pcm "snd_card"
}

# OSS-Steuerung f�r dsp0 (falls es ben�tigt wird...)
ctl.mixer {
    type plug
    slave.pcm "snd_card"
}
