a few corrections:
Well, the main differences between the OSS-Layer
and ALSA are:
1.) alsa is the new driver in linux kernel >= 2.6.X
2.) oss-layers need ioctl() - calls to manage/configure sound devices (and ioctl()
calls
are just possible for root-users !!!!!),so oss is really user-unfriendly if you want
to programm a application
this isn't true. any user that can open a device can call ioctl on the
device. the real difference in the API design between the two is that
in OSS, you make system calls (open/read/write/close/ioctl/mmap etc)
directly, which means that any transformation of the data or other
"clever" stuff has to happen inside the device driver as part of the
kernel. in ALSA, you make library calls (snd_pcm_open, etc), which
allows ALSA to have a rich set of "plugins" that can transform the
data, virtualize the device, and do all kinds of other things, all in
a user-space library where it can do no harm to anything except your
application.
but i'll put it a little more strongly: NOBODY in 2003 should start a
new application using the OSS API. NOBODY.
I'd also like to chime in that OSS is not being worked on by anybody, as
near as I can tell. If you want any audio hardware supported, the action
is in ALSA.
- mo