Messages in this thread | | | Subject | Re: Interrupts sound drivers in Linux? | Date | Wed, 10 Nov 1999 16:59:11 +0000 (GMT) | From | Alan Cox <> |
| |
> 1. Are the DMA buffers handled in a dual 'ping-pong' type scheme, > with half the DMA buffers being read and the other written to? Is > some other more flexible scheme used.
Normally the boards are set up as ring buffers. Obviously it is up to the board what works and how. The user view is that you feed it data till it blocks or says "would block". You select and when there is space it wakes you. A set of ioctls let you control the wakeup points and query the ring position
> 2. How are the interrupts handle in the driver? Is the only > interrupt that is available the regular 'End-Of-DMA' interrupt, or > can the sound drivers make use of timer interrupts if desired?
Driver dependant.
> 3. I know that OSS supports a 'software mixer' in their drivers. I > assume this software mixer runs in kernel space, so in that case how > is mixing of multiple sounds handled using the software mixer?
The commercial OSS does, the free one does not. We don't intend to add mixing in kernel space. It is for daemons such as esd to manage.
> The main reason I am asking is that we are interested in abstracting > the mechanisms that are used to implement sound drivers in different > systems. I already know how DOS, Windows and OS/2 do sound, and I am > interested in learning more about how Unix does it.
Take a look at SDL. That has a pretty good abstraction layer for audio from what I remember.
Alan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |