Commit Graph

935 Commits

Author SHA1 Message Date
Mark Harmstone d4d14cdef0 dsound: Pretend we have hardware buffers.
When running in Windows XP mode, XAudio2 will refuse to output surround sound
unless it can open a buffer with DSBCAPS_LOCHARDWARE.
2015-01-13 17:51:54 +01:00
Mark Harmstone b5aec2e40f dsound: Degrade speaker config if too many channels. 2015-01-13 17:51:38 +01:00
Mark Harmstone 77b2ab21f4 dsound: Support 5.1 sound. 2015-01-09 17:37:50 +01:00
Mark Harmstone 3ba100d81c dsound: Support quadraphonic sound. 2015-01-09 17:37:48 +01:00
Mark Harmstone 02f9edfd77 dsound: Do not use panning to set sound position. 2015-01-07 23:48:27 +01:00
Mark Harmstone c4e3079766 dsound: Parse speaker config. 2015-01-07 23:48:26 +01:00
Mark Harmstone 52345858d0 dsound: Get speaker config from mmdevice props.
Use PKEY_AudioEndpoint_PhysicalSpeakers to set the speaker config in dsound.
2015-01-05 16:27:55 +01:00
Mark Harmstone a48c7fe408 dsound: NOP on SetSpeakerConfig. 2015-01-05 16:27:34 +01:00
Marton Balint 6d009b988b dsound: Convert freqAdjust and freqAcc to integers.
Fixes resampling errors caused by truncating floating point numbers.
2014-12-29 22:20:30 +01:00
Mark Harmstone 25b13178de dsound: Use array for channel volumes. 2014-12-29 12:15:50 +01:00
Mark Harmstone b7a2f0879c dsound: Remove unused struct entries. 2014-12-29 12:14:56 +01:00
Andrew Eikum 29d1ccc7e2 dsound: Don't send notify events before played range. 2014-12-19 19:14:15 +01:00
Andrew Eikum ee126c96f1 dsound: Report buffer notifications in offset order. 2014-12-04 14:03:16 +01:00
Thomas Faber 78b96c8776 dsound: Do not call CoUninitialize if CoInitialize failed. 2014-07-28 17:21:38 -05:00
Nikolay Sivov d789495534 dsound/tests: Accept another error code. 2014-06-16 09:31:10 +02:00
Nikolay Sivov 8d178b185d dsound: Remove duplicated parameter check (Coverity). 2014-04-14 10:25:55 +02:00
Frédéric Delanoy 86e2f37ebc dsound/tests: Use wine_dbgstr_guid for printing GUIDs. 2014-02-12 19:15:20 +01:00
Alexandre Julliard 99ef0d6ff0 makefiles: Get rid of the MAKE_TEST_RULES variable. 2014-01-02 12:13:16 +01:00
Alexandre Julliard 5e7416e5c8 makefiles: Get rid of the MAKE_DLL_RULES variable. 2014-01-02 12:08:18 +01:00
Alexandre Julliard d08ff3ff19 makefiles: Use a single variable for all types of idl files. 2013-12-31 18:15:17 +01:00
Frédéric Delanoy 5ba7f79bad Assorted spelling fixes. 2013-12-03 19:41:53 +01:00
Andrew Eikum ace3c315b8 dsound: Don't change play position if IAudioClient methods fail. 2013-11-22 11:34:53 +01:00
Frédéric Delanoy c28d619286 dsound/tests: Use BOOL type where appropriate. 2013-11-13 11:23:17 +01:00
Alexandre Julliard c7803b885b makefiles: Add makedep pragmas for registration idl files. 2013-11-05 20:38:18 +01:00
Michael Stefaniuc 4dd5893ad7 dsound/tests: Compile with -D__WINESRC__. 2013-10-15 14:28:20 +02:00
Michael Stefaniuc 0e681027a2 tests: Compile the tests by default with -D__WINESRC__. 2013-10-02 11:04:02 +02:00
Michael Stefaniuc 9463dba830 tests: Use the explicit LoadLibraryA function. 2013-10-02 11:02:21 +02:00
Andrew Eikum d5e648dc2f dsound: For capture, use MMDevAPI event API instead of timers. 2013-08-21 19:55:59 +02:00
Andrew Eikum dcaeb6b4fd dsound: Allow multiple buffers to capture from the same device. 2013-07-27 11:56:39 -05:00
Michael Stefaniuc a158d42c0f dsound/tests: Fix copy&paste error in ok() message. 2013-07-02 10:04:15 +02:00
Andrew Eikum 892068f96c dsound/tests: Fix test that fails on older Windows 2000. 2013-05-31 19:15:56 +02:00
Andrew Eikum e60e09e2d1 dsound: Copy SetFormat format more directly if we're not in PRIMARYWRITE mode. 2013-05-29 19:59:56 +02:00
Andrew Eikum 508b0c9c44 dsound: Don't overrun capture buffer. 2013-05-16 17:31:31 +02:00
Alexandre Julliard 5c8ffb795a dsound: Don't bother to delete critical sections at process exit. 2013-05-16 12:56:04 +02:00
Marcus Meissner 81ea726e64 dsound: Do not test undefined behaviour (Coverity). 2013-05-09 19:24:21 +02:00
Michael Stefaniuc 624bbd980f dsound/tests: Mark some capture status as broken. 2013-04-23 15:35:13 +02:00
Michael Stefaniuc 7f65281056 dsound/tests: Skip tests if there is no default device. 2013-04-22 12:39:56 +02:00
Michael Stefaniuc 621d9e444a Revert "dsound/tests: Primary and secondary buffers use the same IDirectSoundBuffer vtbl.".
This reverts commit 7959778d3f.
This is not always the case on Windows.
2013-02-19 10:39:07 +01:00
Andrew Talbot 7805ff3291 dsound: Avoid signed-unsigned integer comparisons. 2013-01-16 12:21:35 +01:00
Maarten Lankhorst f5abeb8471 dsound: Use a thread instead of a timer for greater precision. 2012-12-27 18:47:53 +01:00
Andrew Talbot b0e95d27a9 dsound: Indentation fix. 2012-12-17 11:47:38 +01:00
Andrew Eikum 81d601f56f dsound: Always fill wValidBitsPerSample. 2012-12-14 17:37:48 +01:00
Maarten Lankhorst 79084be3c1 dsound: Set dwChannelMask when limiting channels. 2012-11-27 16:58:09 +01:00
Maarten Lankhorst 605cd62c7d dsound: Create a primary_pwfx separately from pwfx. 2012-11-22 14:53:14 +01:00
Marcus Meissner 8107290279 dsound: HeapFree secondaries (Coverity). 2012-10-29 10:54:59 +01:00
Maarten Lankhorst 21c4501603 dsound: Fix IDirectSoundCaptureBuffer Start/Stop, with tests. 2012-10-19 16:52:05 +02:00
Detlef Riekenberg b23450e38e dsound/tests: Handle broken E_FAIL of broken AC97 driver. 2012-10-16 11:52:27 +02:00
Detlef Riekenberg 45c56bcc80 dsound/tests: Handle broken E_FAIL in dsound8 for AC97. 2012-10-16 11:52:21 +02:00
Andrew Eikum 8ba4090fc3 dsound: Don't exit early in mixer thread. 2012-10-10 20:34:10 +02:00
Marcus Meissner b78744ce31 dsound: Skip unknown sizes in tests (Coverity). 2012-10-03 16:35:00 +02:00
Michael Stefaniuc cea6329483 dsound: DirectSoundDevice_RemoveBuffer() cannot fail. 2012-09-26 10:58:48 +02:00
Michael Stefaniuc 4e06eead8f dsound: Don't bother shrinking the secondary buffer list. 2012-09-26 10:58:43 +02:00
Andrew Eikum b202b9f72d dsound: Don't require WAVE_FORMAT_EXTENSIBLE for non-16-bit formats.
Fix proposed by Andrew Nguyen.
2012-09-18 10:19:15 +02:00
Michael Stefaniuc 1545645484 dsound/tests: Avoid a crash on a Win2k box. 2012-09-18 10:17:45 +02:00
Michael Stefaniuc 34b7e83357 dsound: Improve the IDirectSoundCaptureBuffer::GetObjectInPath stub. 2012-09-18 10:17:35 +02:00
Michael Stefaniuc bee1573cb7 dsound: Get rid of an unused macro. 2012-09-14 15:41:36 +02:00
Michael Stefaniuc 1440b25267 dsound: Inline some of the IDirectSound helpers. 2012-09-06 15:45:31 +02:00
Michael Stefaniuc ebf33fff47 dsound: Move the capture structs declarations to the .c file. 2012-08-31 09:54:47 +02:00
Jacek Caban 3f353e0025 dsound: Use proper helpers for iface calls. 2012-08-27 19:46:07 +02:00
Michael Stefaniuc 1555aebf1e dsound: Cleanup IKsPrivatePropertySetImpl_Create(). 2012-08-24 10:25:58 +02:00
Francois Gouget e2c50d762c dsound: Make dumpCooperativeLevel() static. 2012-08-21 17:47:47 +02:00
Michael Stefaniuc b522dc66f7 dsound: Move the QI implementation from IDirectSoundFullDuplex to IUnknown. 2012-08-16 11:40:01 +02:00
Michael Stefaniuc 0d33e204d1 dsound: Aggregate IDirectSoundCapture8 instead of wrapping it. 2012-08-16 11:39:54 +02:00
Michael Stefaniuc 850b294efa dsound: Add COM aggregation to DirectSoundCapture for internal use. 2012-08-16 11:39:49 +02:00
Michael Stefaniuc ac3cd73ca2 dsound: Aggregate IDirectSound8 instead of wrapping it. 2012-08-16 11:39:43 +02:00
Michael Stefaniuc 9cb53818e8 dsound: Add COM aggregation to DirectSound for internal use. 2012-08-16 11:39:36 +02:00
Michael Stefaniuc bd4c67396b dsound: Merge IUnknown into the main DirectSoundFullDuplex object. 2012-08-16 11:39:26 +02:00
Michael Stefaniuc 6692f97e01 dsound: Add an object refcount for DirectSoundFullDuplex. 2012-08-16 11:39:14 +02:00
Michael Stefaniuc 023a19d931 dsound: Pass the object instead of ifaces to helpers. 2012-08-16 11:39:08 +02:00
Michael Stefaniuc 8588260eef dsound: COM cleanup for the IDirectSoundFullDuplex iface. 2012-08-16 11:39:01 +02:00
Michael Stefaniuc f6f8123c6b dsound: Cleanup error handling in IDirectSoundFullDuplex::Initialize(). 2012-08-16 11:38:52 +02:00
Michael Stefaniuc 885e205ade dsound: Cleanup the DirectSoundFullDuplex create functions. 2012-08-16 11:38:44 +02:00
Michael Stefaniuc 0aeaa83a22 dsound/tests: Add DirectSoundFullDuplex COM tests. 2012-08-16 11:38:36 +02:00
Michael Stefaniuc 598cc8f44a dsound/tests: Refcount tests for IDirectSoundCapture / IUnknown. 2012-08-16 11:38:23 +02:00
Michael Stefaniuc 9383affe87 dsound: IDirectSoundCapture / IUnknown use separate refcounts. 2012-08-16 11:38:17 +02:00
Michael Stefaniuc b8ffb4930f dsound: Merge the DirectSoundCapture create functions. 2012-08-16 11:38:08 +02:00
Michael Stefaniuc b18bc659d6 dsound: Avoid a TRUE:FALSE conditional expression. 2012-08-14 11:59:26 +02:00
Francois Gouget 4d24132ea4 dsound/tests: Trace the number of tested DirectSound drivers. 2012-08-13 11:52:10 +02:00
Francois Gouget ed7faad1ed dsound/tests: Clarify some skip() traces. 2012-08-13 11:52:00 +02:00
Michael Stefaniuc 4c7e608d5c dsound: Get rid of the DSOUND_QueryInterface() helper. 2012-07-19 16:01:48 +02:00
Michael Stefaniuc 9cc62d321c dsound: Handle IDirectSound by the IDirectSound8 implementation. 2012-07-19 16:01:48 +02:00
Michael Stefaniuc 6fecd3d642 dsound: Merge IDirectSound8 into the main DirectSound object. 2012-07-19 16:01:47 +02:00
Michael Stefaniuc db5344e438 dsound: Drop a redundant 'IDirectSound8' from the method names. 2012-07-19 16:01:47 +02:00
Michael Stefaniuc bf4481d3f0 dsound: Merge the DirectSound create functions. 2012-07-19 16:01:46 +02:00
Michael Stefaniuc 8978a4b51b dsound: Merge IUnknown into the main DirectSound object. 2012-07-19 16:01:45 +02:00
Michael Stefaniuc 478191c059 dsound: Cleanup IDirectSoundImpl_Create() and move it. 2012-07-19 16:01:45 +02:00
Michael Stefaniuc a565c0fadf dsound: Rename the DirectSound object refcount to "numIfaces". 2012-07-19 16:01:44 +02:00
Michael Stefaniuc 4992e6a515 dsound: Merge the two IUnknown/IDirectSound implementations for DirectSound. 2012-07-19 16:01:43 +02:00
Michael Stefaniuc e236a3c2d5 dsound/tests: Add IDirectSound refcount and COM aggregation tests. 2012-07-19 16:01:43 +02:00
Andrew Eikum bf263a347d dsound: Fail if app requests 3D buffer interface on a non-3D buffer. 2012-06-14 18:20:29 +02:00
Andrew Eikum 1cc9ecb558 dsound: Don't use IAudioClock::GetPosition to determine buffer fullness. 2012-05-16 18:30:18 +02:00
Andrew Eikum 98c653bc8b dsound: Resample to float, not device format. 2012-05-15 16:26:31 +02:00
Andrew Eikum 20356f7458 dsound: Compute mix buffer's size more accurately. 2012-05-15 11:18:07 +02:00
Andrew Eikum 5cce1d9da2 dsound: Get rid of redundant primary_mixpos member. 2012-05-15 11:17:53 +02:00
Andrew Eikum e0ccd9e399 dsound: Change mix_buffer to float instead of INT. 2012-05-15 11:17:46 +02:00
Andrew Eikum 8327e6f423 dsound: Ensure primary buffer's buffer is large enough to hold the entire prebuffer. 2012-05-14 19:58:54 +02:00
Andrew Eikum 7dce1418ff dsound: Base fragment size off of the MMDevice's period. 2012-05-14 19:58:41 +02:00
Andrew Eikum 1053bfb48d dsound: Express buffer positions in terms of bytes, not fragments. 2012-05-14 19:58:32 +02:00
Andrew Eikum 2c6087457b dsound: Remove minlen, since we always mix full chunks anyway. 2012-05-14 19:58:24 +02:00
Andrew Eikum f0be44c82d dsound: Don't destroy primary buffer until device is released. 2012-05-09 17:49:33 +02:00
Alexander E. Patrakov 275dfb83f2 dsound: Added a windowed-sinc resampler. 2012-05-08 09:29:47 +02:00
Andrew Eikum 4354be123c dsound: Don't derive the secondary position from the primary position. 2012-05-02 12:00:02 +02:00
Andrew Eikum f393a98a8a dsound: Convert from fixed to floating point. 2012-05-02 11:59:58 +02:00
Alexander E. Patrakov 93a0ca7c6c dsound: Clean up channels. 2012-05-01 19:16:23 +02:00
Alexander E. Patrakov ab4ef6636d dsound: Clean up cp_fields. 2012-05-01 19:16:00 +02:00
Alexander E. Patrakov f88f3d4149 dsound: Replace convert() functions with get() and put(). 2012-05-01 19:15:49 +02:00
Alexander E. Patrakov 0195e01990 dsound: Clean up MixToTemporary(). 2012-05-01 19:15:12 +02:00
Andrew Eikum 3ef92af6a8 dsound: Map MMDevAPI error to DSound error. 2012-04-27 11:59:44 +02:00
Andrew Eikum 1b21fe827f mmddk.h: Remove unused, Wine-specific WinMM defines. 2012-04-03 17:53:37 +02:00
Andrew Eikum 552433cf9e dsound: Validate and correct wValidBitsPerSample in primary buffer SetFormat. 2012-04-02 18:27:14 +02:00
Michael Stefaniuc 0872572a6d dsound/tests: Fix the capture COM tests for older Win2k versions. 2012-02-15 19:17:37 +01:00
Andrew Eikum 9d06d41e37 dsound: Add some more DSCAPS flags. 2012-02-14 17:59:29 +01:00
Austin English c6bda4dc17 dsound: Remove an unnecessary assignment (LLVM/Clang). 2012-01-31 13:47:39 +01:00
Michael Stefaniuc 84d5317302 dsound: Remove the now obsolete IDirectSoundBufferImpl_Destroy(). 2012-01-20 13:34:20 +01:00
Michael Stefaniuc c7f5f10aab dsound: Merge IDirectSoundNotify into the secondary buffer object. 2012-01-20 13:33:33 +01:00
Michael Stefaniuc e0d81e55e2 dsound: Merge IDirectSound3DBuffer into the secondary buffer object. 2012-01-19 21:08:49 +01:00
Michael Stefaniuc a5d2120021 dsound: Get rid of some LPDIRECTSOUND3DBUFFER usage. 2012-01-19 21:08:49 +01:00
Michael Stefaniuc 3ec0b056d5 dsound: Support IKsPropertySet in the primary buffer too. 2012-01-17 11:53:25 +01:00
Michael Stefaniuc 48ca5924b4 dsound: Merge IKsPropertySet into the secondary buffer object. 2012-01-17 11:53:19 +01:00
Michael Stefaniuc fd04e770f1 dsound: Drop "Buffer" from the IKsPropertySet method names. 2012-01-17 11:53:05 +01:00
Andrew Eikum 9cf7f95483 dsound: Lock the source buffer during duplication. 2012-01-17 11:51:25 +01:00
Andrew Eikum 6d391df4aa dsound: Don't launch a separate thread for the mmdevapi enumerator. 2012-01-16 19:32:51 +01:00
Michael Stefaniuc 5959e1d48c dsound: Use AddRef to set the refcounts at object creation. 2012-01-16 12:45:33 +01:00
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
Jörg Höhle 999423d34e dsound: Vista/XP SP2 reworked the Speaker Configuration. 2012-01-13 18:17:31 +01:00
Michael Stefaniuc 66361f1bd5 dsound/tests: Add some COM tests for capture. 2012-01-12 15:52:51 +01:00
Michael Stefaniuc 93bfa2b5be dsound/tests: Sanitize START_TEST() in capture.c. 2012-01-12 15:52:50 +01:00
Michael Stefaniuc 4ac20cbc0f dsound/tests: Remove some returns in the capture buffer tests. 2012-01-12 15:52:50 +01:00
Michael Stefaniuc a3120ce80e dsound: Make capture behave like native in regards to COM aggregation. 2012-01-12 15:52:42 +01:00
Michael Stefaniuc 13a4b03b44 dsound: Merge IDirectSoundNotify into the capture buffer object. 2012-01-12 12:38:41 +01:00
Michael Stefaniuc 3dac0e5a4f dsound: Add an extra refcount for the capture buffer object. 2012-01-12 12:38:34 +01:00
Michael Stefaniuc e8f7ddf774 dsound: Drop "Capture" from the IDirectSoundNotify method names. 2012-01-12 12:38:28 +01:00
Michael Stefaniuc f1d7414971 dsound: COM cleanup for the IDirectSoundCaptureBuffer8 iface. 2012-01-12 12:38:21 +01:00
Jörg Höhle 35cdb8bb22 dsound: Fix the computation of the mixer position in bytes. 2012-01-03 19:27:16 +01:00
Alexander E. Patrakov 663bc47602 dsound: Always resample buffers in mixer thread. 2011-12-29 17:56:48 +01:00
André Hentschel 2b981177d3 dsound: Use if(0) instead of #if 0 to make sure code still compiles. 2011-12-27 16:55:06 +01:00
Francois Gouget c64ce9d0ff dsound: Remove mmErr(). It is not used anymore. 2011-12-06 17:52:54 +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
Francois Gouget 68dc1468cb dsound: Give a name to the critical sections, make them static and delete them when unloading the dll. 2011-11-15 19:37:35 +01:00
Francois Gouget 0caef81de2 dsound: Unset Spare[0] before deleting non-static critical sections. 2011-11-14 15:25:27 +01:00
Andrew Eikum c8c6cc97bc dsound: Always enumerate the default device first. 2011-10-21 12:11:39 +02:00
Andrew Eikum 9b15c17376 dsound: Don't claim to support hardware buffers. 2011-10-20 11:03:40 +02:00
Andrew Eikum 6a7c2f66e0 dsound: Don't make the capture buffer object address public until it is prepared. 2011-10-18 15:11:40 +02:00
Andrew Eikum c60583ab8b dsound: Fix type conversion problems. 2011-10-18 15:11:32 +02:00
Marcus Meissner 587cd82013 dsound: Remove dead code from mixer (Coverity). 2011-10-17 17:45:05 +02:00
Marcus Meissner 07d72eb570 dsound: Added missing LeaveCriticalSection (Coverity). 2011-10-17 17:45:03 +02:00
Andrew Eikum 9d29d9f766 dsound: Request a more exact buffer size from MMDevAPI. 2011-10-13 19:57:18 +02:00
Andrew Talbot 1f1a97a9b5 dsound: Remove unneeded address-of operator from function name. 2011-10-10 13:30:25 +02:00