virtual OSS devices [for making selfish apps happy]

From: Christian Parpart
Date: Mon Nov 21 2005 - 16:12:02 EST


Hi all,

I'm having some apps running on my desktop that all want
exclusive access to my sound device just for playing audio
(and a single app for capturing), namely:

* TeamSpeak (VoIP team voice chat)
* Cedega (for playing some win32 games on my beloved box)
* KDE/arts (my desktop wants to play some sounds as well wtf)

While I could easily disable my desktop sounds, and yeah, forget about the
music, but I'd still like to be in TeamSpeak (talking to friends and alike)
while playing a game using cedega.

Unfortunately, *all* those stupid (2) apps want exclusive access to the OSS
layout of my ALSA drivers, though, there just came into my mind to buy a
second audio device and wear a second headset (a little one below/under my
big one). But I couldn't find it handy anyway :(

So, in the end, what about writing a virtual OSS driver that can spawn
multiple (fake) /dev/vdsp%d's that all allow audio rendering (output) and at
least a single one capturing (this at least would fit *my* needs).
This virtual driver then would has to know about the real audio device then of
course that would it use to merge/mix the audio outputs to and to read the
requested capture data from.

Okay, neat idea, but I never ever wrote a single kernel code line!

So, can some guys of you please help me out there in *either* telling me where
to find the basics on kernel module writing *and* how to do such things like
I said I want.
Or, even if you feel that happy about that idea and can't wait until I got
stuck in finishing it, and you can DIYS, that would be even much nicer.

C/C++ is not my problem, and I have already seen/read the linux kernel code
not just once, but I am definitely laggin in experience in kernel
development.

Please help.

Thanks in advance,
Christian Parpart.

Attachment: pgp00000.pgp
Description: PGP signature