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. >5.) alsa is basicly said a "wrapper", a front-end of the oss-arch and it is highly r >ecommended to use alsa at all. its not a wrapper. the low level kernel drivers are completely different implementations compared to the OSS ones. its just that ALSA provides the old OSS API for compatibility. anyway, as others noted, you'd probably be much better using either PortAudio or JACK (jackit.sf.net). they both encourage the "correct" programming model for your application, and JACK in particular removes all of the endless grunt work of setting up the audio interface parameters, figuring out how to get data to/from the card, etc. --p
