Hi,
As you're all probably aware, myself and janderwald are in the process
of working on sound. I thought I'd give a brief update on this, but I
also need some feedback on the location of the various sound components
in our tree as I think it needs a little reorganisation.
At present, I am focusing on the user-mode portion of sound support,
with the goal of getting NT4 audio drivers working (legacy Sound Blaster
cards etc.) while janderwald is getting newer style WDM audio drivers up
and running.
I don't want to duplicate code, hence I have been intentionally
developing some helper libraries that can be easily reused. Think of
them as dedicated abstractions of the various Windows APIs with a
dedicated purpose (sound support.)
The components involved or which are planned are:
- Common library for user-mode side of sound support
- Helper library specifically for NT4 device sound support (device
"discovery" etc.)
- sndblst.dll, mmdrv.dll and wdmaud.drv user-mode DLLs (making use of
the above two components, slight variation in functionality for each -
Windows 3.1 used to use the equivalent of these as the actual drivers,
hence why there are multiple.)
- Kernel-mode common library for NT4 style sound drivers
- Sound Blaster library (to be shared between sndblst.sys and PortCls
implementation)
- UART401 library (to be shared between mpu401.sys and PortCls
implementation)
- Kernel Streaming API
- Kernel Streaming components
- Port Class driver
At the moment I have a few things dotted around a "sound" directory
within "include/reactos"
I also have some stuff in our "lib" directory (the helpers I wrote)
Kernel streaming related components seem to be spread around various
places in drivers/wdm and drivers/ksfilter
My attempts so far at NT4 drivers are still sat in drivers/multimedia
Basically, I want to try and structure this better. I don't think
sndblst.dll/mmdrv.dll/wdmaud.drv belong in dll/win32, and I'm wondering
if my helper libraries for sound should sit next to the relevant
components directory-wise. Or are they fine being in "lib"? They're only
used for sound components.
Finally, does anyone object to me removing the entire of the
drivers/multimedia tree as nothing in there works at all? I wrote most
of the code there, there is some redundant code from the very early
ReactOS days in "sound", I can leave that if it's really needed. I want
to start implementing sndblst.sys properly so I want to clean up a bit
first, but thought I'd ask first before I do anything further.
Andrew
Show replies by date