Commit Graph

357 Commits

Author SHA1 Message Date
Robert Reif a2f1fd3aca Add multiple DIRECTSOUND object support (multiple sound cards can play
at the same time).
Fix CoCreateInstance when no sound card is present.
Fix create bug found by Mike Hearn.
2005-05-31 09:31:37 +00:00
Robert Shearman 54160222a0 Rename MODULENAME_Dll* functions to Dll* for better consistency and
type checking.
2005-05-17 14:41:37 +00:00
Alexandre Julliard 34fa35dc99 Added rules for building import libraries in the individual dll
makefiles, and added support for building a .def.a static import
library too.
2005-05-09 14:42:30 +00:00
Robert Reif 70fe39e42c Remove dead code and redundant variables from DSOUND_CalcPlayPosition
and callers.
2005-05-09 09:23:54 +00:00
Alexandre Julliard d62356aa1e Added rules to build import libraries in the individual dll makefiles.
Generate import libraries with the right name right away instead of
using an intermediate .spec.def file.
2005-05-07 12:39:52 +00:00
Robert Reif 6ec5b351bb Move initialization to IDirectSound_Initialize.
Fix error paths to handle a failed IDirectSound_Initialize.
Add tests for IDirectSound_Initialize.
2005-05-06 19:33:32 +00:00
Francois Gouget f5c9da6860 Assorted spelling fixes. 2005-05-06 15:44:31 +00:00
Robert Reif ed2a6e4aae Set driver type properly. 2005-05-04 09:46:41 +00:00
Robert Reif bc3ad87998 Fully implement WAVEDEVICEMAPPING property set. 2005-04-13 14:39:49 +00:00
Robert Reif ff77f1343e Initialize primary buffer on open. 2005-04-11 13:00:00 +00:00
James Hawkins fd6d3567de Remove nonstandard type LPLPVOID. 2005-04-11 12:52:00 +00:00
Robert Reif 2a438aa033 Keep dsound8.c and dsound.c in sync. 2005-03-30 10:21:44 +00:00
Peter Berg Larsen e732fc023d Janitorial: Get rid of strncpy/strncpyW. 2005-03-28 14:17:51 +00:00
Jakob Eriksson e4fea46b94 Test fix. 2005-03-22 21:16:04 +00:00
Robert Reif 1e17a784c6 Fix block align error message to show length before fix up. 2005-03-19 17:09:33 +00:00
Robert Reif c90c9c7473 waveInPrepareHeader and waveInUnprepareHeader are not really needed
because the contents don't change.
2005-03-16 11:30:17 +00:00
Robert Reif 9329e8f831 Unconditionally free memory. Should make smatch happy. 2005-03-15 19:31:55 +00:00
Robert Reif 7f6536c504 Change some global variable names.
Cleanup usage of global dsound variable to not use local variable of
same name.
Almost ready to add support for more than one sound card at the same
time.
2005-03-15 15:40:35 +00:00
Robert Reif 1a843b93b6 Private property sets do not exist in early versions of Direct Sound
so skip tests if not supported.
Add tests for A, W and 1 variations of data.
2005-03-14 10:04:07 +00:00
Robert Reif ea7fa3c7db Add missing functionality.
Add more and better error messages.
Add checks for failed HeapAlloc.
2005-03-14 10:03:54 +00:00
Robert Reif aa35787dc7 Don't consider no sound device a failure. 2005-03-05 11:15:27 +00:00
Robert Reif c3f06fb2e6 Print dsound.dll version from file versioninfo resource. 2005-03-05 10:49:08 +00:00
Robert Reif 3b78212f1d Add secondary buffer SetFrequency test. 2005-02-25 19:17:11 +00:00
Robert Reif 2a052044fe Use nBlockAlign rather than calculating it.
Add a buffer length alignment error message.
2005-02-25 19:16:57 +00:00
Robert Reif f1d4443435 Change SetCooperativeLevel FIXME to WARN. 2005-02-25 16:50:57 +00:00
Robert Reif c9e7bad85b Try old buffer description structure on failure with new one. 2005-02-24 17:02:42 +00:00
Robert Reif 3cab60997f Fix tests for win9x and old versions of DirectX. 2005-02-23 12:43:38 +00:00
Robert Reif 99faf74774 Fix capture test to pass on windows 98 when no sound card present or
device already in use.
2005-02-18 12:52:14 +00:00
Robert Reif 2b30370796 Fix block align test. 2005-02-18 12:51:43 +00:00
Robert Reif c50038542a Some block align cleanups. 2005-02-16 16:26:13 +00:00
Robert Reif b8d6b310f9 Fixed invalid buffer size by rounding up to next multiple of
nBlockAlign.
Added test to verify buffer rounding behavior.
2005-02-16 16:09:02 +00:00
Robert Reif f8833daef1 Removed printing of thread id for AddRef and Release because
WINEDEBUG=+tid gives the same result.
General consistency cleanup.
2005-02-11 11:49:05 +00:00
Francois Gouget 9ee0586cfb Don't link with DirectSoundCreate8 as this prevents running with older
versions of DirectX.
2005-02-10 21:21:13 +00:00
Robert Reif 50dc513b0f Print info about primary buffer format. 2005-02-10 20:26:20 +00:00
Robert Reif 0e0544aa72 Signed/unsigned fix and code cleanup. 2005-02-10 17:10:54 +00:00
Robert Reif 249bc5caea Always allocate an empty buffer. 2005-02-10 17:09:20 +00:00
Robert Reif 098817950d Fill new software buffers with silence. 2005-02-09 14:05:00 +00:00
Robert Reif e70f3e85d8 Fix primary buffer memory leak. 2005-02-01 18:47:23 +00:00
Robert Reif 7d92b5d8b4 Fix structure member name to match windows headers and fix up all
uses.
Nameless struct fix for dsound/propset.c to compile on both windows
and wine.
2005-01-28 17:21:07 +00:00
Robert Reif 47f55d6a28 Don't allow other threads to access the primary buffer while the
format is being changed.
2005-01-24 13:35:57 +00:00
Robert Reif 364c0d53f9 Remove unused includes. 2005-01-24 13:31:27 +00:00
Robert Reif ef847a0303 Use Windows memory functions. 2005-01-24 12:40:45 +00:00
Robert Reif b0d74e6bf3 Fixed memory leak in mixer code. 2005-01-24 11:27:05 +00:00
James Hawkins 6847d5956a Return CLASS_E_NOAGGREGATION if pUnkOuter is non-null. 2005-01-14 15:12:43 +00:00
Robert Reif 202c28f8b8 Remove unneeded includes. 2005-01-10 12:25:56 +00:00
Robert Reif 409e7fb172 Don't need to worry about windows messages. 2005-01-09 17:27:44 +00:00
Eric Pouech cf1d00bb08 Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
2005-01-09 16:42:53 +00:00
Robert Reif 56dbf7fb21 Initialize and uninitialize COM properly. 2005-01-09 16:34:00 +00:00
Michael Stefaniuc 5ad7d858e0 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2004-12-23 17:06:43 +00:00
Eric Pouech 4056d7ef8c Fixed some errors in function prototypes. 2004-12-13 21:19:01 +00:00
Alexandre Julliard ebe3c529b1 Janitorial: C booleans must not be compared against TRUE. 2004-12-09 14:07:59 +00:00
Tomas Vanek 342451b2dd Fixed no memory condition test in IDirectSoundImpl_Create. 2004-12-07 14:23:46 +00:00
Robert Reif d7292751e0 Return the actual device interface name.
Fixes some memory leaks.
2004-12-06 20:37:00 +00:00
Robert Reif 373ab78519 Always create a property set for secondary buffers. 2004-12-06 11:42:58 +00:00
Tom Wickline 5c38e1b561 Version resources cleanup. 2004-11-23 13:59:34 +00:00
Robert Reif aab3aa05b6 Remove trailing white space introduced in previous patch.
Fixed IDirectSoundCaptureBuffer_Stop to allow another Start to
succeed.
Removed OSS centric buffer recreation hack when doing hardware
acceleration.
Cleaned up error reporting and tracing.
2004-11-19 17:56:56 +00:00
Robert Reif b46a106ab1 Remove redundant GUID check. 2004-11-09 20:10:46 +00:00
Robert Reif 50e67ce558 VerifyCertification is not always implemented. 2004-10-26 21:17:37 +00:00
Robert Reif 0a16d361e2 Don't consider a device in use a failure. 2004-10-25 21:45:51 +00:00
Robert Reif b50347d452 Don't consider a bad format an error unless the capabilities say it
should be supported.
Don't consider a device already in use an error.
2004-10-22 19:51:54 +00:00
Robert Reif d4c9f92c65 Trailing white space cleanup.
Add IClassFactory->CreateInstance aggregation checks.
IID_IDirectSoundCapture and IID_IDirectSoundCapture8 are same so
remove redundant check.
Allocate capture buffer for hw driver if necessary.
2004-10-21 20:57:26 +00:00
Robert Reif b80d1d5d92 Don't consider a device that is already in use a test failure. 2004-10-21 19:51:10 +00:00
Robert Reif 3dcbaaa4cc Don't consider failure with DSERR_NODRIVER a test failure. 2004-10-19 21:10:41 +00:00
Robert Reif 097e281294 Fix some places where no driver present causes problems. 2004-10-18 19:36:42 +00:00
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Robert Reif 8a8ee786ee Cleanup reference counting.
AddRef and Release return ULONG.
2004-09-17 18:10:59 +00:00
Robert Reif b970aeb4b7 Cleanup reference counting. 2004-09-16 19:08:04 +00:00
Robert Reif adc6948c4c Remove lock name from lock debug structure before deletion so it gets
freed properly.
2004-09-10 22:30:05 +00:00
Robert Reif 6f9d41673f Return error from low level driver when necessary. 2004-09-10 19:34:01 +00:00
Alexandre Julliard 314b99c48f Removed some more uses of the non-standard ICOM_THIS macro. 2004-09-09 20:17:07 +00:00
Francois Gouget 7c89759e88 Make the dsound tests run with DirectX < 8. 2004-09-08 19:08:14 +00:00
Francois Gouget e3fb36140a Remove the get_hwnd() implementation from propset.c and reuse the
common one.
2004-09-08 19:07:57 +00:00
Hans Leidekker fe442b21f7 Fix signed/unsigned comparison warnings. 2004-09-08 01:23:57 +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
Francois Gouget f3880a29ea Don't use DSBCAPS_{CTRLDEFAULT,CTRLALL} in capability-dumping
functions since they are nothing but a combination of other flags and
are thus redundant.
2004-08-31 18:50:59 +00:00
Robert Reif f01b871898 DirectSound8 doesn't accept 3D stereo secondary buffers but
DirectSound does.
Added tests.
2004-08-25 02:09:00 +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 1bd7986c93 Only print format info when in interactive mode for capture test.
Cleanup error and info messges.
2004-08-23 17:50:31 +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
Robert Reif b6abcb51a8 Cleanup messages. 2004-08-18 20:53:40 +00:00
Robert Reif dfe3c1c579 Allocate wave format structure dynamically based on format.
Remove format checks to allow driver to decide if format supported.
Code cleanups.
2004-08-18 00:30:37 +00:00
Robert Reif cae33167d2 Cleanup some more messages. 2004-08-18 00:30:12 +00:00
Robert Reif 1d3c40d577 Delete buffer array when releasing last buffer. 2004-08-16 19:59:54 +00:00
Robert Reif eba298017d Allow proper release while capturing. 2004-08-16 19:59:37 +00:00
Robert Reif 9d5b0873a0 More dsound tests error message cleanups.
Only display verbose information when in interactive mode.
2004-08-13 19:44:29 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Robert Reif 101599e902 Speed up mixing and unmixing by moving sample size and buffer wrap
tests to outside the loop.  The code is not as compact or pretty but
it should be faster.
2004-08-12 20:01:32 +00:00
Alexandre Julliard 0467ce9fd7 Get rid of the non-standard ICOM_VFIELD macro. 2004-08-12 19:52:49 +00:00
Robert Reif 74662974f6 Start cleaning up error messages.
Don't print verbose info unless in interactive mode or debugging.
2004-08-12 03:29:39 +00:00
Robert Reif 704e16c32d Fixed a bug where freqAdjust was not being updated properly when the
primary buffer format changed.
2004-08-11 00:18:13 +00:00
Francois Gouget 4d73f22245 Remove the assert()s that checked that IDirectSoundBuffer_Lock() is
given two distinct pointers.
2004-08-09 22:56:45 +00:00
Hans Leidekker dbb3e14748 Fix signed/unsigned comparison warnings. 2004-08-09 18:52:18 +00:00
Robert Reif fbce110be4 Test different primary buffer formats while keeping the secondary
buffer format constant.
2004-08-09 18:50:06 +00:00
Robert Reif 7ef15a607c Adds debug name to remaining critical sections. 2004-08-06 17:30:00 +00:00
Robert Reif 7bf7bce0da Add CRITICAL_SECTION debug info. 2004-08-04 18:14:21 +00:00
Gerald Pfeifer 0ba37e23d9 Avoid using round(), which is unportable. 2004-08-02 18:47:09 +00:00
Francois Gouget 1426632839 Check the return value of IDirectSoundImpl_Create() to detect errors.
Always set *ppDS to NULL in case of error.
2004-08-02 18:27:16 +00:00
Robert Reif 4c3d661781 Refactored common test code into subroutines.
Added tests for correct Compact behavior.
Added tests for all possible IDirectSound[8] creation modes with good
and bad arguments.
Split dsound.c and ds3d.c into separate files for IDirectSound and
IDirectSound8 interfaces and added code to not execute IDirectSound8
tests when run with a dsound.dll of version 7 or earlier.  We should
now be able to run these tests on a Windows system with DX7 or earlier
(untested).
2004-07-30 18:42:51 +00:00
Robert Reif b6ab40e977 Added error checking to IDirectSound_Compact.
Fixed IDirectSoundImpl_Create to return DSERR_NODRIVER for a bad
device IID.
2004-07-30 18:42:23 +00:00
Francois Gouget 9f40a12ed6 Small cleanup in IDirectSoundBufferImpl_SetPan(). 2004-07-23 22:58:59 +00:00