> 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

Reply via email to