Commit Graph

935 Commits

Author SHA1 Message Date
Andrew Eikum 1671a83f55 dsound: Fix rolloff factor calculation.
We should treat the rolloff factor as a factor of the distance of the
buffer. For example, a rolloff factor of 2 should treat the buffer as if
it were twice as far away from the listener as it is.

The previous calculation would instead double the decibels of
attenuation.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-29 16:52:31 +01:00
Michael Stefaniuc 48b32c78d2 dsound: Avoid casts from COM object to interface.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-09 16:39:09 +01:00
Michael Müller 6fd36314d0 dsound: Pretend that the driver is certified.
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-21 21:33:05 +09:00
Andrew Eikum b25e1aefc7 Revert "dsound: Allow inactive devices to change the primary format.".
This reverts commit 4fbe6f3e76.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 23:08:37 +09:00
Nikolay Sivov 9567813ec4 dsound: Fix its vs it's typos.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-05 09:08:38 -05:00
Detlef Riekenberg 443130c4cf dsound: Mark a multiplication factor as float.
Signed-off-by: Detlef Riekenberg <wine.dev@web.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:27:38 +09:00
Andrew Eikum 7300f1b75d dsound: Capture all available data on each period callback.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-16 11:29:52 +09:00
Nikolay Sivov d597ea8f03 dsound: Remove redundant null pointer check (Coverity).
IAudioClient instance could be expected to be valid at this point.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-06 22:18:14 +09:00
Andrew Eikum 1def346bab dsound: Support downmixing quadraphonic to stereo.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:42:06 +09:00
Andrew Eikum 88dd3b4f6e dsound: Support downmixing 5.1 to stereo.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:42:02 +09:00
Andrew Eikum 4fbe6f3e76 dsound: Allow inactive devices to change the primary format.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:41:53 +09:00
Maarten Lankhorst db316c1243 dsound: Remove unconditional memory allocation in mixing thread.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:36:56 +09:00
Maarten Lankhorst 5b0914ece9 dsound: Remove state machine from render buffer.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:36:54 +09:00
Maarten Lankhorst 2fb97be187 dsound: Prevent reopening device from leaving dsound object in invalid state.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-18 10:36:52 +09:00
Maarten Lankhorst 0adf2af7ff dsound: Fixup IDirectSoundCaptureBuffer_QueryInterface.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 11:51:43 +09:00
Maarten Lankhorst a330b01143 dsound: Fixup DSOUND_WaveQueue checks.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-17 11:51:41 +09:00
Sebastian Lackner 65bab6a5fe dsound: Get rid of no longer needed mix_buffer_len field.
This was missing in 09890d7142.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-16 22:59:11 +09:00
Maarten Lankhorst 09890d7142 dsound: Mix float natively.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 14:39:52 +09:00
Maarten Lankhorst 95287ac2df dsound: Use AudioClient for position.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 14:39:52 +09:00
Maarten Lankhorst 569ed159b0 dsound: Use AudioClient buffer statistics.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-14 14:39:52 +09:00
Andrew Eikum f461610e6c dsound: Handle default case in dsound3d mode switch (Coverity).
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 12:17:58 +09:00
Andrew Eikum 468477b694 dsound: Avoid NULL pointer dereference (Coverity).
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 12:17:55 +09:00
Michael Stefaniuc bb72548f38 dsound: Use a better name for IDirectSoundBufferImpl_Create().
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-22 13:50:45 +01:00
Michael Stefaniuc d51d55bab8 dsound: Simplify error handling when creating a sound buffer.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-22 13:50:42 +01:00
Michael Stefaniuc 0e5dcc2c84 dsound: Fail to create a version 8 3d buffer with DSBCAPS_CTRLPAN.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-21 19:50:29 +01:00
Michael Stefaniuc e69d9ec3c4 dsound: A version 1 3d secondary buffer allows SetPan().
For version 8 DSBCAPS_CTRL3D and DSBCAPS_CTRLPAN are mutually exclusive
and a sound buffer cannot be created when both flags are set.

Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-02 23:45:17 +09:00
Michael Stefaniuc 25d23d4432 dsound/tests: Test Pan for 3D secondary buffers too.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-02 23:45:14 +09:00
Michael Stefaniuc 72d67a2d4e dsound/tests: Version differences in flag handling for 3d buffers.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-02 23:45:10 +09:00
Francois Gouget 413c6f60cf Assorted spelling fixes.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-02 12:59:52 +09:00
Andrew Eikum ff25b25a49 dsound: Don't set very low limits on HW buffers. 2015-05-11 15:19:05 +09:00
Andrew Eikum 2edb4bf320 dsound: Apply rolloff factor to distance attenuation. 2015-04-29 12:23:46 +09:00
Andrew Eikum 582b54329d dsound/tests: Don't perform ALAW test on secondary buffers.
win2k supports it, winxp gives one error, vista+ gives another. This
isn't interesting behavior to test.
2015-04-15 16:22:10 +09:00
Igor Kotrasinski 65e19a096d dsound: Fix conning formula to correctly interpolate volume. 2015-04-14 16:51:25 +09:00
Andrew Eikum a9a80b56b1 dsound: Stricter validation for formats in secondary buffers. 2015-04-14 16:50:15 +09:00
Stas Cymbalov c1c108f58c dsound: Fix angle to sound source calculation. 2015-04-06 23:29:19 +09:00
Alexandre Julliard 8427c7816d dsound: Fix an error return code. 2015-03-27 11:33:50 +09:00
Aric Stewart 0aea30e44c dsound: Do not wait on mixer thread exit on dsound release.
This fixes a loader deadlock if the dsound object is being released
during a dll unload.
2015-03-18 19:35:43 +09:00
Francois Gouget 359fbe829a dsound: Remove unneeded NONAMELESSXXX directives. 2015-03-11 22:10:31 +09:00
Mark Harmstone 55ed98cb88 dsound: Pipe audio data through DMOs. 2015-03-11 13:18:08 +09:00
Mark Harmstone 862d7dae75 dsound: Implement GetObjectInPath. 2015-03-10 23:53:43 +09:00
Mark Harmstone 17056b9f30 dsound: Implement SetFX. 2015-03-10 23:53:40 +09:00
Mark Harmstone e6ae73359f dsound: Keep track of locked bytes. 2015-03-10 23:53:17 +09:00
Michael Stefaniuc 91e59d99f9 dsound: Avoid comparing BOOL variables with TRUE (PVS-Studio). 2015-03-09 22:06:45 +09:00
Mark Harmstone b472e5574c dsound/tests: Add GetObjectInPath tests. 2015-03-03 23:16:45 +09:00
Marcus Meissner a83e8e88ea dsound: If 3d sound is disabled, just return (Coverity). 2015-03-02 23:00:31 +09:00
Mark Harmstone 265ffd4368 dsound/tests: Add a test for SetFX. 2015-02-25 16:18:33 +09:00
Mark Harmstone 1c73ce1ee7 dsound: Fix 3D positioning bug with head-relative buffers. 2015-02-03 16:30:55 +09:00
Francois Gouget 57582b37b3 dsound: Make some DirectSoundDevice_*() functions static. 2015-01-20 11:12:04 +01:00
Francois Gouget dfaef5306f dsound: Reorder the interfaces to remove the need for forward declarations. 2015-01-20 11:12:01 +01:00
Francois Gouget 82c298ee6e dsound: Make DSOUND_FindSpeakerConfig() static. 2015-01-20 11:11:52 +01:00
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