Commit Graph

175 Commits

Author SHA1 Message Date
Michael Stefaniuc 37df4671cb dsound: Merge IDirectSound3DListener into the primary buffer object. 2012-01-16 12:45:33 +01:00
Michael Stefaniuc 044edbb625 dsound: Get rid of some LPDIRECTSOUNDBUFFER usage. 2012-01-16 12:45:33 +01:00
Alexander E. Patrakov 663bc47602 dsound: Always resample buffers in mixer thread. 2011-12-29 17:56:48 +01:00
Andrew Eikum 287a6e8473 dsound: Validate format in primary buffer's SetFormat(). 2011-12-05 12:23:37 +01:00
Andrew Eikum c59ecdcefb dsound: Don't specify period size for the IAudioClient.
We don't actually care what period size gets used (in fact, docs say the
parameter is entirely ignored in Shared mode).
2011-11-15 19:37:37 +01:00
Andrew Eikum c60583ab8b dsound: Fix type conversion problems. 2011-10-18 15:11:32 +02:00
Andrew Eikum 9d29d9f766 dsound: Request a more exact buffer size from MMDevAPI. 2011-10-13 19:57:18 +02:00
Andrew Eikum 6c33e87259 dsound: Eliminate leftover driver structures. 2011-09-28 10:59:31 +02:00
Andrew Eikum e786998daf dsound: Reimplement rendering devices on mmdevapi. 2011-09-27 16:53:51 +02:00
Andrew Eikum 7fae5f4f9f dsound: Validate buffer pointers in Unlock methods. 2011-09-26 18:38:11 +02:00
Andrew Eikum b1fdaa81b0 dsound: Remove hardware acceleration support. 2011-09-26 18:38:07 +02:00
Michael Stefaniuc a2bc634eaa dsound: Handle primary buffers in IDirectSoundBufferImpl_SetFormat. 2011-08-31 19:43:06 +02:00
Michael Stefaniuc 3747fb74a1 dsound: Move the primary buffer description into the buffer object. 2011-08-31 19:43:06 +02:00
Michael Stefaniuc c0565143f9 dsound: Don't delete the primary buffer if a sub iface is still in use. 2011-08-31 19:43:05 +02:00
Michael Stefaniuc ffb51208e9 dsound: Use the same struct for the primary buffer object as for the secondary. 2011-08-31 19:43:05 +02:00
Andrew Eikum ca4ee7f60f dsound: Request that WinMM perform audio conversion if the hardware doesn't support the requested format. 2011-07-14 14:39:51 +02:00
Nick Bowler 681d544620 dsound: Restore old format on SetFormat failure. 2010-10-04 15:00:05 +02:00
Alexandre Julliard 5da782ac53 dsound: Fix an invalid pointer cast. 2009-12-31 12:12:15 +01:00
Francois Gouget ff0717766c dsound: Make DSOUND_PrimarySetFormat() static. 2009-12-02 14:19:47 +01:00
Jörg Höhle dc3471ca0e dsound: Enforce invariant about BlockAlign and nAvgBytesPerSec. 2009-10-06 16:13:17 +02:00
Michael Stefaniuc e1d59b94fb dsound: Arguments 3,4,5 of a CALLBACK are of type DWORD_PTR.
(LPWAVEHDR)->dwUser is also a DWORD_PTR.
2009-02-12 11:53:42 +01:00
Jeff Zaroyko aff1dbe531 dsound: Check for invalid parameter when locking primary and secondary buffers. 2009-01-02 12:48:15 +01:00
Jeff Zaroyko 14db70036d dsound: Check for invalid parameter when unlocking primary buffers. 2009-01-02 12:48:09 +01:00
Reece Dunn ce06de4208 dsound: Correct the dsound fraglen calculations. 2008-12-22 14:56:19 +01:00
Maarten Lankhorst a4a9d50dd9 dsound: Fix volume and panning for primary buffer.
Fixes failing dsound tests in wine.
2008-10-06 13:08:46 +02:00
Rob Shearman 7af7e8ece5 dsound: Add explicit "!= S_OK" to expressions that use HRESULTs as booleans. 2008-09-12 16:50:10 +02:00
Maarten Lankhorst dc22442141 dsound: Tune some parameters to make pulseaudio work. 2008-08-22 10:41:16 +02:00
Andrew Talbot e8aebfcb4b dsound: Assign to structs instead of using CopyMemory. 2008-03-31 12:50:30 +02:00
Maarten Lankhorst 021019ff8f dsound: Add an option to mix sound buffers in the mixer again. 2008-03-17 14:44:46 +01:00
Maarten Lankhorst 4d1129f785 dsound: Use a 2 stage mixing/normalization for sound. 2007-11-09 12:24:06 +01:00
Maarten Lankhorst 3230ea026a dsound: Make sure device buflen is initially set to ds_hel_buflen. 2007-10-15 14:52:30 +02:00
Maarten Lankhorst 6ad603d219 dsound: Release buffer before reopening when buffer is too small. 2007-10-09 17:52:46 +02:00
Maarten Lankhorst 3bafbb22b8 dsound: Use smaller buffers for wavein capture. 2007-10-01 12:42:42 +02:00
Maarten Lankhorst 6506dff8b8 dsound: Check if hardware buffer is big enough before accepting it. 2007-09-27 11:08:05 +02:00
Maarten Lankhorst d65ae3ffe9 dsound: Support arbitrarily sized buffers for waveout. 2007-09-11 12:38:04 +02:00
Maarten Lankhorst 0c4ec8a1cc dsound: Fix overshot calculations. 2007-09-11 12:38:01 +02:00
Maarten Lankhorst 7a04c24e63 dsound: Fix detection of different sample rates in setformat. 2007-09-10 15:29:47 +02:00
Francois Gouget a116879507 Assorted spelling fixes. 2007-08-30 12:26:02 +02:00
Maarten Lankhorst 5d0b1fabd3 dsound: Update DSOUND_PrimarySetFormat to follow flags and return values more precisely. 2007-08-27 19:28:03 +02:00
Maarten Lankhorst 7519326d03 dsound: Add a function to (re)open sound device to avoid code duplication. 2007-08-27 19:27:47 +02:00
Maarten Lankhorst 3838a770c1 dsound: Make sure waveOutClose is only called when using mmsystem. 2007-08-27 12:25:52 +02:00
Maarten Lankhorst 2ececbeda9 dsound: Transparantly fall back to software mode if hardware mode is unavailable. 2007-08-23 12:37:47 +02:00
Maarten Lankhorst 4ef6e8eaa0 dsound: Move assignment of DSBCAPS_LOC to primary buffer creation time. 2007-08-22 12:18:59 +02:00
Alexandre Julliard 3d30204156 dsound: Fix a compiler warning. 2007-08-21 12:43:15 +02:00
Maarten Lankhorst 9c469e1a94 dsound: Handle failing of IDsDriver_CreateSoundBuffer better. 2007-08-20 22:22:10 +02:00
Maarten Lankhorst 3f762d5d0b dsound: Sound acceleration fixes. 2007-08-06 13:56:20 +02:00
Michael Stefaniuc efe4573bc8 dsound: Remove redundant NULL check before HeapFree. Found by Smatch. 2007-08-06 12:18:08 +02:00
Maarten Lankhorst 36e9054629 dsound: Move resampling away from mixer thread. 2007-08-02 11:53:31 +02:00
Maarten Lankhorst 60f4db0345 dsound: Get rid of DS_HEL_FRAGS. 2007-07-31 22:20:21 +02:00
Maarten Lankhorst 7fcce036da dsound: Add a registry setting for hel buffer length. 2007-07-31 22:19:57 +02:00
Maarten Lankhorst bfa05bf232 dsound: Remove some more unused variables. 2007-07-30 23:37:58 +02:00
Maarten Lankhorst 34893a914b dsound: Silence the IDirectSoundBuffer_Initialize warnings. 2007-07-30 23:37:58 +02:00
Maarten Lankhorst de9cecaaa8 dsound: Reset state when stopping device. 2007-07-30 23:37:58 +02:00
Maarten Lankhorst 237b293829 dsound: Replace buffer critical section with a rw-lock. 2007-07-30 23:37:58 +02:00
Francois Gouget a3317a5c01 Assorted spelling fixes. 2007-07-05 19:56:34 +02:00
Maarten Lankhorst f4d5f127dd dsound/winealsa: Remove writelead for alsa directsound. 2007-06-28 12:16:14 +02:00
Alex Villacís Lasso 1a23836f91 dsound: Reset device playpos/mixpos on buflen change. 2007-06-26 11:54:51 +02:00
Michael Stefaniuc 2323e79e36 dsound: Fix missing unlock on an error path. Found by Smatch. 2007-06-25 11:43:44 +02:00
Maarten Lankhorst a7d6ed8ea6 dsound: Simplify mixing by removing remixing support, and fix its waveout breakage.
Based on a patch by Peter Dons Tychsen.
2007-06-22 12:23:18 +02:00
Maarten Lankhorst 9591246002 dsound: Give rougher estimates for fraglen to satisfy alsa. 2007-06-22 12:20:00 +02:00
Maarten Lankhorst 909ed9937a dsound: Fix buffer caps. 2007-06-04 12:55:41 +02:00
Maarten Lankhorst c83fd812f1 dsound: Fix stupid mistake. 2007-05-29 11:55:14 +02:00
Maarten Lankhorst 6e9276e970 dsound: Primary buffer isn't an IDirectSoundBuffer8. 2007-05-14 14:29:33 +02:00
Andrew Talbot 1e4c97175e dsound: Exclude unused headers. 2007-05-03 14:23:53 +02:00
Maarten Lankhorst 836776ae4f dsound: Make sure we're holding the lock on Drop And Stop. 2007-04-23 14:05:42 +02:00
Tomas Carnecky 9b4f99782e dsound: Update prototypes for IDirectSoundBuffer::Lock/Unlock. 2007-03-08 21:30:54 +01:00
Michael Stefaniuc 26bd2ec9c3 dsound: Win64 printf format warning fixes. 2006-11-13 12:49:04 +01:00
Alexandre Julliard 179a4e0a2e dsound: Make some functions static. 2006-08-02 13:26:14 +02:00
Alexandre Julliard bc99ac09d3 dsound: Don't use sizeof in traces to avoid printf format warnings. 2006-06-13 14:10:32 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Reif b06a06090a dsound: Check DirectSoundBuffer_Lock parameters.
Check DirectSoundBuffer_Lock parameters and return an error (like 
Windows) rather than fixing up the parameters.
2006-05-05 17:29:13 +02:00
Robert Reif 2d82fc42f0 dsound: Add DSOUND_PrimarySetFormat and use it to set primary format. 2006-01-14 17:06:22 +01:00
Robert Reif e49a5c22fb dsound: Refactor playback.
Replace references of IDirectSoundImpl with DirectSoundDevice to
remove one level of indirection and remove the problem of a three
object circular reference.
2006-01-06 12:35:20 +01:00
Robert Reif 0265676a27 dsound: Remove WINAPI from internal functions. 2006-01-03 17:32:50 +01:00
Robert Reif 6727c52f3b Include winuser.h so the code compiles cleanly on windows using
windows headers.
2005-10-17 09:24:50 +00:00
Alexandre Julliard 261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +00:00
Mike McCormack 4a5378efcd Fix some gcc 4.0 warnings. 2005-08-30 08:56:35 +00:00
Dmitry Timoshkov b67da5b946 Make more of the OLE interface vtables const. 2005-06-01 19:57:42 +00:00
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
Francois Gouget f5c9da6860 Assorted spelling fixes. 2005-05-06 15:44:31 +00:00
Robert Reif ff77f1343e Initialize primary buffer on open. 2005-04-11 13:00:00 +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 c50038542a Some block align cleanups. 2005-02-16 16:26:13 +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
Robert Reif 098817950d Fill new software buffers with silence. 2005-02-09 14:05:00 +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
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
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 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
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 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
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +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
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