Commit Graph

109 Commits

Author SHA1 Message Date
Robert Reif b970aeb4b7 Cleanup reference counting. 2004-09-16 19:08:04 +00:00
Alexandre Julliard 314b99c48f Removed some more uses of the non-standard ICOM_THIS macro. 2004-09-09 20:17:07 +00:00
Robert Reif 1d785b85c2 Consolidate secondary buffer list processing and locking.
Two new functions DSOUND_AddBuffer and DSOUND_RemoveBuffer
have been added and the locking has been moved into these functions.
Renamed IDirectSound lock to buffer_list_lock.
Removed redundant test for IID_IDirectSoundNotify and
IID_IDirectSoundNotify8 because they are the same.
Removed check for invalid buffers on list because that shouldn't
happen anymore because of fixed 3d buffer reference counting.
Minor code cleanups.
2004-09-07 19:32:21 +00:00
Alexandre Julliard f714b39762 Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
macro.
2004-08-23 19:39:48 +00:00
Robert Reif 7bf4eee7ad Remove wine specific DRV_QUERYDSOUNDGUID message and calculate it in
dsound.dll (like in 2k/xp).
2004-08-20 20:01:31 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Robert Reif 02a8ab2fee Save enumerated GUIDs in a global array so they persist after
enumeration.
White space cleanup.
Add tests for opening default devices.
2004-07-21 03:23:13 +00:00
Robert Reif 3ce9c5f4b8 Do initialization to match windows behavior (with test). 2004-07-19 20:06:22 +00:00
Robert Reif 5d8997d881 Create DirectSound or DirectSound8 depending on riid. 2004-07-06 19:25:59 +00:00
Robert Reif 31f817b6f9 Separated DirectSoundCreate8 into two functions and added a
IDirectSound implementation.
Added proper COM behavior for QueryInterface for IDirectSound and
IDirectSound8.
Fixed a bug in the dsound.h header file for IDirectSound8
CreateSoundBuffer and DuplicateSoundBuffer.
Added new tests for proper COM behavior and enables some commented out
code for tests that work on windows.  Added new tests for
IDirectSound8.
2004-07-04 00:13:44 +00:00
Eric Pouech df93f2eeee GetModuleFileName[AW] doesn't terminate the string if the buffer is
too small.
2004-05-19 03:22:55 +00:00
Robert Reif dbb03ec6dc Fixes support for older versions of direct sound.
Adds support for deleting notification array.
Minor debug and white space cleanups.
2004-04-19 02:58:45 +00:00
Robert Reif 14a7c6ddca Remove unused lock. 2004-03-17 01:44:15 +00:00
Robert Reif 7ecf3d03c2 Fallback to software buffer if duplicating hardware buffer fails. 2004-02-06 05:21:37 +00:00
Robert Reif 7dd637467a Added some missing defines and a struct.
Fixed some const * arguments.
2004-01-09 22:06:54 +00:00
Oleg Prokhorov de12a97041 Another portion of HeapReAlloc fixes. 2003-10-14 05:24:20 +00:00
Robert Reif e29357c2d3 Fixed some traces.
Fixed spec file to match Microsoft dll.
2003-10-01 03:05:25 +00:00
Robert Reif 99b0e8fa66 Added volume and pan support to primary buffers.
Added more property set support.
2003-09-19 00:10:51 +00:00
Robert Reif 725d8c39aa Device enumeration callbacks should return a NULL guid for default
devices.
Fixed some volume and pan cases.
Added missing property set.
Fixed capture notification bug.
2003-09-15 20:08:05 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Robert Reif 7d43d7bb3b Use the drivers to get device capabilities and property sets. 2003-09-03 19:28:20 +00:00
Robert Reif 5ec32cecf2 Added SecondaryBuffer and DirectSoundCaptureNotify COM objects to get
reference counting right.
2003-09-01 23:58:43 +00:00
Robert Reif b805f0f1b7 Split property sets into two types: buffer and private. 2003-08-20 18:18:23 +00:00
Robert Reif f5080c86e5 Added class factories for DirectSoundCapture, DirectSoundFullDuplex
and DirectSoundPrivate.
Added error checking to QueryInterface and CreateInterface.
Added some more functionality to property sets.
2003-08-06 22:57:24 +00:00
Robert Reif 8c37581dd7 Fixed a bug where a NULL primary buffer pointer is used when the
DirectSound object didn't create properly.
2003-07-28 19:01:20 +00:00
Robert Reif 9dacf206fe 3D buffer and listener reference counts should be fixed.
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.
2003-06-27 22:22:15 +00:00
Robert Reif a4ed8e7740 - make parameter checking and error notification consistent
- 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
2003-05-22 03:39:13 +00:00
Lionel Ulmer f5a4a9b60a Give the right ids to the DirectSoundCreate8 function (thanks to
Robert Reif).
2003-05-04 02:24:36 +00:00
Lionel Ulmer 6ad962142f - misc. tracing fixes
- handle IID_IDirectSound(8) as the default sound driver
2003-05-02 21:22:49 +00:00
Robert Reif abde7d0acf Reversed relationship between buffers and notifies.
Fixed notify reuse bug.
Minor documentation and error message cleanup.
2003-05-02 20:16:48 +00:00
Robert Reif e743e091ed Added partial property set support which is used by dxdiag.exe. 2003-04-29 22:49:52 +00:00
Alexandre Julliard c2ebe1ff93 Removed uses of the non standard ICOM_VTBL macro. 2003-04-10 18:17:34 +00:00
Robert Reif fa13d013e8 Fixed a problem when multiple devices are present and a device other
than the first one is used.
2003-04-05 05:11:02 +00:00
Robert Reif aeddf2c409 Added wide character enumeration of sound devices. 2003-04-03 18:03:01 +00:00
Robert Reif 89b469fefe Added support for multiple direct sound devices. 2003-03-15 00:54:11 +00:00
Robert Reif 8c2ec131a8 Added a configuration option for setting the hardware acceleration
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.
2003-03-06 22:46:34 +00:00
Robert Reif 15cc17fbcf Fixed code to handle full duplex properly.
Added support for capture driver (disabled).
Fixed direct sound capture test to handle notifications properly.
2003-03-04 02:12:34 +00:00
Robert Reif 5be7f69d72 Added support for direct sound capture and a real direct sound capture
driver. Capture now works with some skipping. Full duplex does not but
I will be working on that next.
2003-02-15 00:01:17 +00:00
Francois Gouget 6bbce6cd22 Initialize the pwave array whenever we don't have a hardware buffer.
Always create the wineoss thread.
Change the mmap ERR into a TRACE: there are normal circumstances where
mmap will fail and we can deal with them.
2003-01-15 00:44:50 +00:00
Francois Gouget 32140adefa DSB.SetFormat:Trace the requested format as soon as possible in case
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).
2003-01-11 20:54:56 +00:00
Francois Gouget 112cf22a12 Always open the device in the default 22050x8x2 format, and let it
report the actual device format to us.
2003-01-07 19:43:18 +00:00
Alexandre Julliard 26d648887a Back out the aRts volume patch, this is not user-friendly at all. 2002-12-05 19:20:36 +00:00
Francois Gouget ee4d9c5e29 Return an error if dwSize is not valid.
No need to dump dwFlags before it is initialized.
2002-12-05 19:00:56 +00:00
Ove Kaaven 4774477b2b Fix for soundcards that can't do 8-bit audio, only 16-bit (also
checked for soundcards that can't do stereo while I was at it).
2002-09-29 18:01:33 +00:00
Jerry Jenkins 062425aee4 Added waveOutSetVolume when opening sound driver. Otherwise, there is
no sound if we use aRts.
2002-09-17 01:29:01 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Patrik Stridvall d016f819f1 Added include protection for unistd.h and sys/time.h. 2002-08-17 00:43:16 +00:00
Michael Stefaniuc bacc1b3b58 - Converted HWAVE, HWAVEIN, HWAVEOUT to void*.
- Fixed some HMIDI{IN,OUT}16 to HANDLE conversions.
- midiOutCacheDrumPatches16 called itself recursively in an infinite
  loop.
2002-08-02 19:02:49 +00:00
Alexandre Julliard 7015ce3096 No need to call GetModuleFileName16 now that GetModuleFileNameA
handles 16-bit tasks.
2002-07-05 01:28:10 +00:00
Ove Kaaven 935e3df35c Support DirectSound 8 interfaces. Split interface implementations into
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.
2002-06-13 19:15:06 +00:00