> Someone approached me regarding a ReactOS port ... Seems like the ReactOS people were planning on using OSS as a fall back driver, doing the opposite of what I was suggesting and building a wrapper interface which maps the MME (Windows legacy audio) or WDM Audio API to a kernel side OSS which is in control of the actual hardware.
What I was suggesting was a userland map of the OSS API to the kernel side built-in Window WDM/KS audio interface. Working with the ReactOS people might be a great idea if you intend to actually provide kernel level OSS audio drivers for Windows which provide both a OSS API interface and the native windows audio interfaces. But obviously you would still need a userland wrapper to map the OSS system calls (for example the Windows equivalent of ioctl() is DeviceIoControl()). > I had a quick looked at the OSX audio subsystem but it seems a bit more > complex than a simple kernel mode POSIX file driver... >From my understanding, the lowest level interface in OSX is the Audio HAL (AudioHardware.h) which only accepts floating point input streams and does software mixing. This is similar to Vista's audio stack in functionality. I've been programming using the HAL simply because there appears to be no way to bypass the Audio HALs software mixing and get exclusive access to the drivers using the IOKit interface. However, from what I have read, some professional audio apps for OSX require you to press a special key during boot to disable the Audio HAL from loading, and instead load their own drivers to get exclusive access to the hardware. So it looks as if you have three options in OSX: 1.) A userland API, as I was describing before, to emulate the system calls. Downside is it requires a renaming to avoid naming conflicts, ie oss_ioctl() instead of an actual ioctl(). 2.) Actually port real OSS drivers to OSX. Either bypass the HAL on boot, or you could also provide the IOAudio* interfaces required for the HAL to provide both the OSS interface and the native CoreAudio interface from the drivers. The XCode docs on my old PPC mac have a dummy audio driver shell showing what is required. I believe the path to it was, /Developer/Examples/Kernel/IOKit/Audio/Phantom... or something like that. 3.) Might be possible, but I have my doubts: use the IOKit to build a kernel driver which simply provides the real OSS interface and ioctls, but routes the audio through either the HAL or actual OSX device drivers. _ |imothy Farrar game .......... http://www.farrarfocus.com/atom darkroom ...... http://www.farrarfocus.com/ffdd photography ... http://www.farrarfocus.com _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel