Commit Graph

546 Commits

Author SHA1 Message Date
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
Francois Gouget 7433202199 Check that modifying the secondary buffer volume/pan does not change
the primary buffer's volume and pan.
2004-07-23 22:58:46 +00:00
Francois Gouget 18aeb90165 Fix the volume and balance of primary buffers so it is the system's
volume and balance, like on Windows.
2004-07-23 19:06:31 +00:00
Robert Reif 73bd3be8c8 Downgrade tests to DX8 level so it can build on all windows
platforms.
2004-07-22 20:35:36 +00:00
Robert Reif 0e3629c3d4 Dump DirectSound capabilities flags. 2004-07-22 19:42:11 +00:00
Robert Reif aa60b5ec0d Removes dsconf IIDs from dxguid.lib.
Fixes propset files for missing IIDs.
2004-07-22 19:40:44 +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
Francois Gouget cc3a95c6e9 Make the listener/sound position update duration and TIME_SLICE
independent.
Set the sound and listener velocity and increase the sound source
velocity so we may get some doppler effect.
Added some traces so one can monitor the listener/sound positions with
WINETEST_DEBUG=3.
2004-07-19 21:20:38 +00:00
Robert Reif 3ce9c5f4b8 Do initialization to match windows behavior (with test). 2004-07-19 20:06:22 +00:00
Robert Reif 429d3059b1 Fixes the right bugs and keeps intent of test.
Adds more reference count checks.
2004-07-19 19:34:44 +00:00
Francois Gouget b5ee682cae Don't try to create a IDirectSound3DBuffer, partly to keep this test
simple and partly because it's going to fail since we did not request
DSBCAPS_CTRL3D. Fixes a crash on Windows.
Don't request unneeded caps.
2004-07-17 00:04:17 +00:00
Francois Gouget 57aa9ebc38 Get and print the DirectSound primary buffer volume. 2004-07-16 23:42:44 +00:00
Francois Gouget 910b695822 Keep track of how much has been played and get rid of last_pos. This
fixes a bug where buffer_service() would not detect that everything
had been played.
Check that the actual sound duration was within 10% of the expected
value.
Make BUFFER_LEN and TIME_SLICE independent, make sure TIME_SLICE does
not divide BUFFER_LEN to spice things up a bit.
2004-07-16 23:42:32 +00:00
Francois Gouget 4c64f9bdf9 Call IDirectSound::Initialize() as per MSDN before using the
DirectSound object. Fixes a crash on Windows.
2004-07-16 23:21:46 +00:00
Francois Gouget acb7207a9d On Windows GetPan() may not return the value that was just set with
SetPan().
2004-07-16 23:21:33 +00:00
Robert Reif 605cc1b029 Remove DirectSound reference counts by buffers and add Destroy
functions to buffer components and DirectSound to allow proper
destruction even with outstanding references.
Remove trailing white space.
Add tests for proper release even with active buffers.
2004-07-13 23:35:09 +00:00
Robert Reif ed9d91e6a1 - Create IDirectSound and IDirectSound8 objects using the
CoCreateInstance COM function to test the Class Factory interfaces.
- Create IDirectSound and IDirectSound8 objects using CreateDirectSound
  and CreateDirectSound8 using a NULL device GUID.
2004-07-12 19:45:28 +00:00
Robert Reif f66807f248 Better error checking and recovery. 2004-07-09 19:25:39 +00:00
Francois Gouget ca942f1625 Assorted spelling fixes. 2004-07-08 20:16:23 +00:00
Robert Reif 84e292c614 Fix IDirectSoundBuffer8_Initialize function prototype and use. 2004-07-06 19:27:00 +00:00
Robert Reif 5d8997d881 Create DirectSound or DirectSound8 depending on riid. 2004-07-06 19:25:59 +00:00
Robert Reif 33e4506cda Get certification for VerifyCertification from driver to match
GetCaps.
Change OSS driver to report certified.
Change OSS driver to show message name rather than number in traces.
2004-07-06 18:43:57 +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
Francois Gouget de9af2414b Split the 'dsound' test into two parts:
- the sound format test. Plays a 5 second reference tone to help
  debug issues with the tone duration and help detect stutter issues.
  Prints explanations describing the sound format interactive
  test. Then plays a 1 second test tone for each supported sound
  format.
- the 3D sound tests. Performs the volume, panning, moving listener
  tests, etc.
2004-06-17 23:03:11 +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
Patrik Stridvall 070db4e5de Fixed some issues found by winapi_check. 2004-05-17 21:08:31 +00:00
Ivan Leo Murray-Smith 10778aa761 Updated the version info of all DirectX dlls to the version numbers of
DirectX 9.0b for Windows 2000/XP.
2004-05-14 21:37:32 +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 92b48ba8f6 Fixed deadlock in capture callback.
Fixed capture test to check all notifications.
Added better debug messages to capture test.
2004-04-06 20:08:54 +00:00
Alexandre Julliard 9e4ed6460c .spec.c files are no longer used for 32-bit dlls. 2004-03-24 03:36:44 +00:00
Robert Reif 14a7c6ddca Remove unused lock. 2004-03-17 01:44:15 +00:00
Alexandre Julliard 589e115233 We no longer use the .exe.spec.c files. 2004-03-02 21:16:37 +00:00
Robert Reif 41b89ddd53 Properly release hardware primary buffer when changing formats. 2004-02-13 20:22:02 +00:00
Robert Reif 9fde8228e1 Fallback to software buffer if failed to create hardware buffer.
Minor code cleanups.
2004-02-06 05:25:56 +00:00
Robert Reif 7ecf3d03c2 Fallback to software buffer if duplicating hardware buffer fails. 2004-02-06 05:21:37 +00:00
Robert Reif 2ea305b02c Actual buffer format may be different from requested format so use
returned one for calculation.
2004-02-06 05:20:28 +00:00
Alexandre Julliard 20b4585e3c Only link against libdxguid where necessary. 2004-01-27 00:11:16 +00:00
Francois Gouget 998cc56773 Add trailing '\n's to ok() calls. 2004-01-20 21:49:35 +00:00
Robert Reif 370a18f786 Reduce the use of the dsound global variable by passing address to
functions.
2004-01-12 21:02:22 +00:00
Robert Reif 7dd637467a Added some missing defines and a struct.
Fixed some const * arguments.
2004-01-09 22:06:54 +00:00
Robert Reif 58fe9f1fc0 Initialize buffer reference count. 2003-11-17 20:03:42 +00:00
Robert Reif 3f1498fc6c Fixes more use before set races.
Work around for queue reordering feature.
Stop recording on reset.
Better debug info.
Dsound callback capture state fix.
2003-11-14 21:03:24 +00:00
Oleg Prokhorov de12a97041 Another portion of HeapReAlloc fixes. 2003-10-14 05:24:20 +00:00
Dimitrie O. Paun fbdfd910c1 Remove SYMBOLFILE and LDDLLFLAGS from Makefiles. 2003-10-11 01:09:15 +00:00
Robert Reif 93d3492f7f Make capture more reliable by submitting all buffers before start.
Added support for non pcm formats.
Added more property set support.
2003-10-08 22:35:26 +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 3237c5a875 Remove capture tests from dsound.c and place them in a new file
capture.c.
2003-09-27 02:21:12 +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 f4866fed8b Added better tests for volume and pan.
Added capture notification test.
Fixed capture query notification test bug.
2003-09-15 20:08:26 +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 e9ebbfc0ff Now that reference counting is correct, there is no need to check if
the base object goes away.
2003-09-02 00:56:14 +00:00
Robert Reif 28651e8187 Added more tests and restructured tests for easier debugging. 2003-09-01 23:59:03 +00:00
Robert Reif 5ec32cecf2 Added SecondaryBuffer and DirectSoundCaptureNotify COM objects to get
reference counting right.
2003-09-01 23:58:43 +00:00
Dimitrie O. Paun 4ff79add63 Remove some unneeded __WINESRC__ tests from the headers.
Miscellaneous cleanups and fixes.
2003-08-27 02:07:02 +00:00
John K. Hohm 3af19f3e78 Implement DllRegisterServer and DllUnregisterServer for dsound.dll,
and add OleSelfRegister version string.
2003-08-23 23:03:28 +00:00
Robert Reif 0611f902db Added tests for buffer property sets. 2003-08-20 18:18:39 +00:00
Robert Reif b805f0f1b7 Split property sets into two types: buffer and private. 2003-08-20 18:18:23 +00:00
Robert Reif fe09afb7cc Fixed bug where last tests were not executed.
Print out sound device info.
2003-08-18 19:52:56 +00:00
Duane Clark 852a37bc64 Move declarations to compile with older compilers. 2003-08-07 20:11:45 +00:00
Alexandre Julliard 21c01853b6 Added propset.ok. 2003-08-07 03:07:26 +00:00
Robert Reif b5d2f84f87 Added some COM and property set tests.
Added LIBUUID to makefile.
2003-08-06 22:57:48 +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
Alexandre Julliard 20698b22df Make the DllRegisterServer, DllRegisterServerEx, DllUnregisterServer,
DllGetClassObject and DllCanUnloadNow functions private (suggested by
Jon Griffiths).
2003-07-30 03:48:55 +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
Francois Gouget 56aaea2f43 Spelling fixes. 2003-07-09 02:52:57 +00:00
Francois Gouget 14a5d168e9 Fixed some common spelling errors. 2003-07-02 04:37:26 +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 05fb2c89e1 Fixed a reference counting bug I introduced. 2003-06-18 19:31:44 +00:00
Duane Clark 8ed6df97a2 Fix compile error. 2003-05-22 20:56:04 +00:00
Robert Reif 1024fb924d Add 3d primary and secondary buffer tests.
Check reference count at object release.
Remove redundant cooperative level setting.
2003-05-22 03:39:32 +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
Robert Reif 772539a84a Move all tests to outside the loop when setting volume.
Add traces to functions.
2003-05-02 21:23:16 +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 92bfe2269b Don't use Wine debugging API in tests. 2003-04-13 01:09:23 +00:00
Robert Reif 26ba64b563 Fixed PCM format evaluation bug.
Properly clean up partially created sound buffers.
2003-04-11 23:59:19 +00:00
Robert Reif db68f33a5e Changed capture format printing to hex. 2003-04-11 00:35:50 +00:00
Alexandre Julliard c2ebe1ff93 Removed uses of the non standard ICOM_VTBL macro. 2003-04-10 18:17:34 +00:00
Robert Reif deeb2abd96 Changed DLL version to 8. 2003-04-09 23:34:49 +00:00
Jerry Jenkins 5f4e4a5094 Align data to proper size. 2003-04-07 23:18:31 +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
Alexandre Julliard c7bebba198 Warning fixes. 2003-04-04 22:13:02 +00:00
Robert Reif aeddf2c409 Added wide character enumeration of sound devices. 2003-04-03 18:03:01 +00:00
Robert Reif 3569c2344f Added entry for DirectSoundFullDuplexCreate. 2003-04-02 22:35:05 +00:00
Rok Mandeljc ce7a2bab97 Framework for the doppler effect. 2003-03-31 01:34:08 +00:00
Alexandre Julliard 114a31a2a8 Take advantage of new winebuild syntax to remove redundant function
names in spec files.
2003-03-20 03:53:12 +00:00
Ove Kaaven 6fb0277699 Somewhat more reliable dsound position notifications. 2003-03-17 21:23:12 +00:00
Robert Reif 89b469fefe Added support for multiple direct sound devices. 2003-03-15 00:54:11 +00:00
Rok Mandeljc 7da6e5c9a5 - implemented panning
- implemented coning
- many minor fixes
2003-03-10 19:06:02 +00:00
Robert Reif 5a1439cf23 Fixed a bug where a capture device was used after it failed to open
due to a missing driver.
Added tests to try all possible combinations of sample rate, sample
size and mono/stereo.
2003-03-07 20:36:47 +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
Rok Mandeljc 53b5a4746f Changed some stuff so distance attenuation works for both 3d
processing modes.
2003-03-05 02:47:39 +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 490d2a7bc2 Fixed a problem getting the GUID to compile under windows and wine. 2003-02-24 20:42:59 +00:00
Michael Stefaniuc f85440466b Add missing LeaveCriticalSection's in error path. 2003-02-24 20:39:22 +00:00
Rok Mandeljc 22b09a10f0 Reimplemented distance attenuation formula.
Removed coning formula since i believe it's inappropriate.
2003-02-17 01:46:46 +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
Gerald Pfeifer 61e9670d31 #include <stdlib.h> instead of the non-standard <malloc.h>. 2003-01-20 23:27:27 +00:00
Francois Gouget 8e9dcb6655 Use the same 8/16bit conversion routines as in pcmconverter.c.
Reorder the two ifs in the first part of cp_fields to simplify the
code.
2003-01-16 00:20:07 +00:00
Francois Gouget 336d8fe298 SetFormat may not change the primary buffer format as requested.
Dump the effective format and prepare the tone signal accordingly.
Play tones from the secondary buffers at -3dB rather than -12dB.
Always print the volume the tone is going to be played at.
Remove the gamedev URL.
2003-01-16 00:19:49 +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
Rok Mandeljc 5438df173e Added cone support. 2003-01-14 19:31:08 +00:00
Enrico Horn 6b83bb622b Add version info to dll/dsound. 2003-01-13 20:40:45 +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 8325deaa33 Fix latent deadlock in DSOUND_callback. 2003-01-11 20:53:43 +00:00
Rok Mandeljc 438985f3dd 3d sound diminishes with distance. 2003-01-10 01:46:36 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +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
Rok Mandeljc 1b3ce0d571 - 3d buffers produce sounds
- some other small fixes
2003-01-04 01:24:59 +00:00
Rok Mandeljc 5b918db643 - cleaned *Set* functions
- added initial code for 3d buffer recalculating
- added some auxiliary functions
2003-01-04 01:22:51 +00:00
Francois Gouget 3b761a6b39 Add the ability of playing a test tone when in interactive mode.
Test both primary and secondary buffers.
2003-01-02 23:08:57 +00:00
Rok Mandeljc f3128dad92 Implementation of IDirectSound3DListenerImpl_Set*(). 2002-12-13 23:20:58 +00:00
Francois Gouget a542770c55 Extend the test by creating a PrimaryBuffer object and perform a few
basic tests such as querying its characteristics and changing its
format.
Changing the format requires that we call SetcooperativeLevel first,
which means we need an hwnd. So the test must now link with
user32.dll.
2002-12-13 20:27:36 +00:00
Francois Gouget 78561f3eb3 IDirectSoundBuffer.GetCaps should fail if caps.dwSize is not set. 2002-12-13 20:26:23 +00:00
Rok Mandeljc 553dded48a Implemented IDirectSound3DBufferImpl_Set*(). 2002-12-13 00:31:06 +00:00
Rok Mandeljc 17c8b8e271 Implemented IDirectSound3DListenerImpl_Get*() functions. 2002-12-12 23:01:05 +00:00
Rok Mandeljc dcc5b4fe53 Implemented some stubs. 2002-12-12 22:27:15 +00:00
Alexandre Julliard dbf8b78acd Added .spec.def files. 2002-12-12 22:04:04 +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 d523a45bd0 A simple test for IDirectSound.GetCaps. 2002-12-05 19:19:41 +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
Alexandre Julliard b34fb35b31 Fixed warnings caused by conversion to -DSTRICT. 2002-10-18 23:48:57 +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 1f6ce57b24 Removed ordinal 0. 2002-07-24 19:05:50 +00:00
Steven Edwards 6aa9ccb102 Need to import ntdll. 2002-07-05 22:48:33 +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
Alexandre Julliard 77afd6c47e Made some more spec file entries optional or unnecessary.
Fixed a few DLLName/DLLFileName mismatches.
2002-06-21 19:15:45 +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
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Johan Gill 7c61a61616 Only enumerate DirectSound devices if the first sound device in the
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".
2002-05-28 22:45:58 +00:00
Alexandre Julliard 2ab7625934 Removed most imports of ntdll since we no longer import Wine internal
functions from there.
2002-05-17 03:37:12 +00:00
Alexandre Julliard ad53383f9b Added winebuild support for generating a .dbg.c file containing the
debug channels definitions.
Made win32 the default type for spec files.
Ignore C compiler in winebuild so we can simply pass it $(DEFS).
Removed type win32 and debug_channels from spec files.
Fixed winebuild to always generate correct C identifiers (reported by
Vincent Béron).
2002-05-14 20:54:58 +00:00
Alexandre Julliard 67371bcc8d Added -res option to specify resources on winebuild command-line.
Added -exe mode to generate a .spec.c for an exe without having to
provide a .spec.
Removed some no longer needed spec files.
Removed .dll extension in makefiles import specifications.
2002-05-11 23:06:32 +00:00
Joris Beugnies ff60a9a27b Make defines configurable at run-time. 2002-05-11 22:53:00 +00:00
Alexandre Julliard 32459912dc Moved imports specification from the .spec into the Makefile so that
it can be used on platforms that don't build a .spec.c file.
2002-05-09 00:05:48 +00:00
Johan Gill 8fc98cdef8 DirectSoundEnumerateA() now passes a GUID to the callback if the first
call returned TRUE.
2002-05-01 18:05:30 +00:00
Alexandre Julliard 5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Eric Pouech c745b52803 A bit more robust against wave???Open failures. 2002-04-22 22:36:18 +00:00
Chris Morgan ace56c62a3 Dsound will now try as many devices as are available when trying to
open a waveOut device in DirectSoundCreate().
2002-03-25 20:52:17 +00:00
Chris Morgan 9b0ba7ca2b Added aRts driver. 2002-03-21 01:38:19 +00:00
Alexandre Julliard c1bfca04e1 Changed builtin dlls file names to make it clear they are not normal
Unix libraries, and install them in $libdir/wine instead of $libdir to
avoid name conflicts in /usr/lib.
2002-03-20 22:19:06 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Patrik Stridvall 74e4d21ebe Avoid wildcards in .cvsignore. 2002-01-29 03:05:12 +00:00
Ove Kaaven f250b6b5fa Further unified HAL and HEL mixing, and added some more intelligence
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.
2002-01-02 21:46:54 +00:00
Ove Kaaven fdebace998 Fix buffering problems in HEL mode. 2001-09-10 23:08:11 +00:00
Patrik Stridvall 2344798c46 Fixed some warnings. 2001-07-26 21:44:44 +00:00
Patrik Stridvall 3ca9823941 Documentation ordinal fixes. 2001-06-20 23:03:14 +00:00
Patrik Stridvall 8b216b3d02 Documentation ordinal fixes. 2001-06-19 18:20:47 +00:00
Marcus Meissner 9c0ae56d39 Added definitions for IKsPropertySet, small stub implementation for
IDirectSound3DBuffer. Fixed one pointer reference.
2001-06-13 19:36:10 +00:00
Andreas Mohr c2bc22b91c Spelling fixes. 2001-05-24 18:44:25 +00:00
Francois Gouget e76218dd61 Add '\n' at the end of traces. 2001-05-09 17:31:31 +00:00
Ove Kaaven ed739334f4 Fixed sound disappearing after on-the-fly sample rate changes and
after certain underrun conditions.
Compilation fixes for when USE_DSOUND3D is defined.
2001-03-19 19:14:39 +00:00
Alexandre Julliard ddf825660e Chris Jacobson
Small bug fix.
2001-03-03 00:19:29 +00:00
Ove Kaaven 62510ddbf6 Fixes for various underrun-related problems. Also added a mechanism
for the sound driver to request that a Stop should close and reopen
the device.
2001-01-13 01:00:00 +00:00
Johan Gill d8dea427c1 Added a more truthful message about what really is wrong. 2001-01-06 00:36:14 +00:00
Eric Pouech ad250aac34 Now using manifest constant instead of raw values for all the
DRV_QUERY??? values.
2001-01-04 19:53:51 +00:00
Ove Kaaven 865cf3752c Bugfix for sound dropping out, and workaround for Half-Life's
braindead secondary sound buffer management.
2001-01-02 21:02:32 +00:00
Ove Kaaven 0c7c94b956 More intelligent DirectSound prebuffering. By tracking the
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.
2000-12-22 20:31:06 +00:00
Marcus Meissner eba8cee584 Handle errors for IDsDriver_GetPosition.
Report DSERR_UNINITIALIZED on non-opened WineOSS audio device.
2000-12-21 20:49:26 +00:00
François Gouget 44a182229b winuser.h now requires that we include winbase.h first. 2000-12-19 04:53:20 +00:00
Alexandre Julliard 5be8e7d8e0 Created a small static library in ole/libuuid.a that contains all the
UUID definitions (with the help of Francois Gouget).
2000-12-06 01:50:47 +00:00
David Elliott ea186796eb Remove libXXXX.so.1.0 lines from .cvsignore files. 2000-11-30 19:57:34 +00:00
Alexandre Julliard 27939f00fd Start using import tables for dlls that can already support it. 2000-11-12 03:50:10 +00:00
Alexandre Julliard eb58e1d597 Declare debug channels in all dlls that need them; added imports of
ntdll where necessary.
2000-11-05 04:53:07 +00:00
Andreas Mohr 49b3cec137 Reimplement patch by Marcus Meissner ('98) to "fix" problems with
DSCAPS_EMULDRIVER flag for games like Quake 2 and Unreal Tournament.
2000-10-25 20:30:31 +00:00
Patrik Stridvall a9f6a9daec Explicitly initialize structures. 2000-10-24 02:22:16 +00:00
Alexandre Julliard 83f52d11c1 Moved all Win16 definitions out of the standard Windows headers. 2000-09-26 22:20:14 +00:00
James Abbatiello 26d6c1f557 Don't use copies of critical sections made by memcpy()
Added missing WINAPIs
2000-09-01 01:22:21 +00:00
Andreas Mohr 349655636b - made the MIDI sequencer error message much better for confused users
to be found on #WineHQ
- use strerror instead of errno at important places
- got rid of HAVE_STRERROR macro
- removed some #include:s (hopefully I didn't break anything)
2000-08-26 20:31:48 +00:00
Alexandre Julliard bea617be47 Moved GUID definitions to their respective dll. 2000-08-03 04:22:35 +00:00
Alexandre Julliard 6c9d83aa4c Added imports of user32/gdi32/kernel32 wherever necessary. 2000-08-03 00:04:24 +00:00
Ove Kaaven fddc3e15d8 Added a few C++ operators to Direct3D structures, and made some unions
'nameless'.
2000-07-23 14:19:19 +00:00
Patrik Stridvall 6314ad696b Fixed some warnings. 2000-07-15 21:33:38 +00:00
Ove Kaaven 9405793109 Fix a couple of problems with underruns and stopping/restarting. 2000-07-08 11:45:39 +00:00
Ove Kaaven 849c930481 Implemented the DirectSound HAL mode for DMA primary buffers, with a
10ms latency (not noticeable), and about 300ms of prebuffering. Fixed
a few bugs. Added a Wine-only WINMM flag for waveOutOpen for
DirectSound to use (so drivers like wineoss have some way of knowing
what to prepare itself for).
2000-06-24 12:54:49 +00:00
Ove Kaaven 353c776a66 Restructure DirectSound. Remove dsound thread, use MM timers
instead. Implemented the DirectSound HEL, with the ability to
prebuffer 300ms of sound, while maintaining play latency of 40ms, and
the exact playposition (Starcraft cinematics are lip-synched).  Some
initial HAL support.
2000-06-23 15:45:05 +00:00
Alexandre Julliard 6953d6756c For dlls, derive SPEC_SRCS from MODULE and ALTNAMES. 2000-06-20 20:24:14 +00:00
James Abbatiello 625653f96d Add a few more flags to those recognized when doing trace+dsound. 2000-06-11 19:59:10 +00:00
Patrik Stridvall 330cd693b0 Fixed some warnings. 2000-06-03 20:43:06 +00:00
Peter Hunnisett f5a1027595 - Added DirectSoundCapture and DirectSoundCaptureBuffer interfaces
- Added some SoundCapture stubs
- Changed REFIID to LPCGUID in a few places as per MS header file
2000-06-01 22:47:35 +00:00
Peter Hunnisett 4dce07ea94 - Fixed some initialization/destruction and reference counting
- Added a little more debugging information
2000-05-30 20:49:37 +00:00
Peter Hunnisett 62f32331dd - Add another way to create a 3d listener interface.
- Fix up some reference counting bugs and interface creation bugs
- Add DirectSoundEnumerateW stub
- Add DirectSoundCaptureEnumerate{A,W} stubs
2000-05-30 20:07:31 +00:00
Eric Pouech 8cfea6e292 Make internal buffers size multiple of 4. 2000-05-10 21:39:24 +00:00
Marcus Meissner b2dd2c5cee DSOUND_MixerNorm: do not compare unrelated pointers. 2000-04-16 17:05:06 +00:00
Marcus Meissner 3347bee15c Make audiodevice blocking directly after the non-blocking open, since
we use the write(2) also for synchronization.
2000-04-06 19:32:33 +00:00
Marcus Meissner 502e15b6e7 open() the OSS sounddevice non-blocking in case another process has it
open already.
2000-03-30 20:22:12 +00:00
Niels Kristian Bech Jensen c9742b3204 - Fix some compiler warnings.
- Remove superfluous #include statement.
2000-03-28 20:44:59 +00:00
Andreas Mohr f15473f5f3 Fixed debug formatting. 2000-03-26 18:18:26 +00:00
Patrik Stridvall fcfacb95a7 Added/fixed some documentation reported by winapi_check. 2000-03-24 20:46:04 +00:00
Alexandre Julliard d0edc5fecd Moved dll-specific make rules to a separate Makedll.rules file. 2000-03-04 22:31:27 +00:00
Marcus Meissner f8e4fb0888 Made the buffer list in the directsound object thread-safe. 2000-02-20 19:16:12 +00:00
Alexandre Julliard 383da68cf9 Optimized debugging API to reduce code size. 2000-02-10 22:15:21 +00:00
Jeremy White d3e22d9d55 Removed #include of wingdi.h and windef.h from winuser.h (and resolved
the resulting compilation failures).
2000-02-10 19:03:02 +00:00
Alexandre Julliard 318f4cefd2 Build most dlls as separate shared libraries. 2000-01-31 05:02:49 +00:00
Francois Gouget f82a723a43 The COM virtual tables must use the
'ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE' macro to provide padding in C++.
2000-01-30 02:55:16 +00:00
Alexandre Julliard 681c75bf17 Added debugstr_guid function and used it to replace
WINE_StringFromCLSID in all debugging messages.
2000-01-18 05:09:49 +00:00
Todd T. Fries f84e8eaf8a Add HAVE_SOUNDCARD_H to support OpenBSD. 2000-01-15 22:19:56 +00:00
Eric Pouech 5f6080ee05 Removed suicide code when playback thread's father dies. 1999-11-14 23:53:41 +00:00
Francois Gouget 01c9ac401f Generalized the use of the new ICOM_VFIELD and ICOM_VTBL macros. 1999-10-31 01:59:23 +00:00
Eric Pouech 68944c205c Split the multimedia/ directory into dlls/ subdirectories. 1999-10-24 18:42:42 +00:00