Well, if Alsa went the CoreAudio direction and did a
proper
callback-based audio API ala Jack, and did s/w mixing automagically, we
wouldn't need all this mess.
Unfortunately, the Alsa people didn't seem to think replacing OSS was a
good opportunity to improve anything, so here we are... let's hear it
for 1995.
i don't think thats entirely fair. when jaroslav started ALSA i think he
was intent on a set of ideas that looked like the best choices at the
time. the goal was to improve lots of issues with OSS, including its
requirement for all "functionality" to reside in the kernel.
i don't think that, even if we had had fons on board at that time, that
the idea of using a DLL rather than interrupts to truly drive the whole
system would have occured to anyone in 1996-2000. as for callbacks, this
would have been dismissed by almost all commentators because it would
require every single existing audio app to be rewritten. it would have
been a great idea, yes, but it would never have been accepted. too many
developers would have whined to LKML that it was unacceptable to remove
the open/read/write/close model from the official linux audio API.
apple had good fortune, good people and lots of control on their side.
we have smarter people (or at least as smart), lots of good examples,
but very little control.
--p