3D sound now plays in 3D.
COM interfaces should be correct for buffers and 3D stuff. The COM
interface is broken on notifications but I will fix that next.
Fixed the bug when closing and opening the same or another sound
device quickly.
Fixed some locking but there is a lot of work left yet.
- propagate driver and local function errors where needed
- fix error returns where pointer is given for returned data
- add 3d listener to primary buffer when needed
- copy 3d part of buffer when duplicated
- fix bug when primary buffer is reopened with smaller buffer
- loosen requirements on caps data size check
- set caps for emulated mode based on actual driver caps
level just like the direct sound control panel app.
More work on the full duplex interface so the compile warning is no
longer generated. Full duplex interface is still stubbed out.
Moved full duplex mixer reset fix into wineoss driver where it
belongs.
Added some more locking fixes.
Capture and full duplex are now stable.
it is not supported and simplify validity check.
Initialize the buffer format, and only from the fields we checked.
DirectSoundCreate8 fully initializes the buffer format (just in case).
separate files. Split primary buffer and secondary buffer interfaces
into separate implementations. Made the primary buffer state part of
the dsound object, so primary buffer objects can be created and
refcounted independently. Made the interfaces follow COM aggregation
rules more closely. Converted the dsound critical section to a R/W
lock to improve potential remixing concurrency. Fixed various bugs and
refcounting issues.
system supports the Wine implementation of DirectSound. Also added
some entries to the sample config file and changed the values of the
"EmulDriver" key to "Y"/"N".
to prebuffering, with some basic prebuffer canceling support, to get
rid of mixing delays in Half-Life. Used a very small waveout buffer
queue in HEL mode, using a callback to queue additional buffers, to
get rid of playback delays in Half-Life. Fixed a couple of bugs.
last-written position of streaming buffers, it attempts to avoid
prebuffering past this position unless necessary; this may avoid a
number of sound problems in various situations. Merged HEL and HAL
mixing code, which should reduce the HEL mode's CPU usage slightly.