Commit Graph

76 Commits

Author SHA1 Message Date
Rémi Bernon 2e1934598d mmdevapi: Support new AUDCLNT_* creation flags.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=25173
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45700
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-13 21:22:11 +02:00
Andrew Eikum 227c47e7a0 mmdevapi: Return E_INVALIDARG for invalid share mode argument.
Matches Windows 10 behavior.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:16:56 +01:00
Andrew Eikum 3c1ee2f80d mmdevapi: Set data pointer to NULL on IAudioCaptureClient::GetBuffer failure.
Matches Windows 10 behavior.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:16:53 +01:00
Andrew Eikum b56d19d3a0 mmdevapi: Avoid reporting odd numbers of channels.
Fixes sound in Touhou Luna Nights with some surround sound
configurations.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-10 23:20:41 +02:00
Alexandre Julliard 3d6febc997 include: Get rid of the DPRINTF() macro.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-08 19:34:44 +02:00
Andrew Eikum be0c18b2b1 winecoreaudio.drv: Remove useless cast to self.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 20:25:07 +01:00
Michael Stefaniuc 5e7c892811 winecoreaudio.drv: Use debugstr_guid() to trace a guid.
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-08-08 21:51:49 +09:00
Andrew Eikum 8efa49375a winecoreaudio.drv: Ensure divide-by-zero SSE exceptions are masked before calling AudioConverterNew.
AudioConverterNew can trigger a divide-by-zero exception. Normally this
is masked by the default SSE mask flags. However, iRacing disables this
mask, leading to a crash when it tries to initialize a recording device.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 22:30:02 +09:00
Charles Davis 4a00695db6 winecoreaudio.drv: Don't print 32-bit values as long integers (Clang).
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-23 23:15:25 +09:00
Francois Gouget 04a260faa2 winecoreaudio.drv: The drv_keyW variable is unused so remove it. 2015-03-13 21:57:32 +09:00
Sebastian Lackner 26eed57018 winecoreaudio.drv: Avoid endless loop if registry keys are not accessible. 2014-11-05 13:15:50 +09:00
Andrew Eikum 46928d381e winecoreaudio.drv: Use AUHAL API instead of AudioQueue. 2014-07-02 15:55:18 +02:00
Andrew Eikum b950b9a835 mmdevapi: Don't stop sending event signals after IAudioClient::Stop. 2014-06-30 10:32:36 +02:00
Andrew Eikum d5b597fee5 mmdevapi: Standardize period sizes. 2014-06-30 10:32:08 +02:00
Marcus Meissner eddf841ab3 winealsa/wineoss/winecoreaudio: Calculate frequency in 64bit (Coverity). 2014-06-17 09:07:34 +02:00
Andrew Eikum 0e84a59d89 mmdevapi: Clock rate should be in bytes for shared mode. 2014-05-19 16:01:07 +02:00
Andrew Eikum b634666e13 mmdevapi: Make buffer size divisible by number of periods. 2014-05-19 16:01:03 +02:00
Andrew Eikum f53dd40ad8 winecoreaudio.drv: Don't return 0 absolute position if AudioQueue call fails.
Some failures are temporary, for example if the user reconfigures their
audio setup while playing audio. Returning 0 could have bad "going
backward in time" effects which can break audio even after the call
starts to succeed again.
2013-11-22 11:34:47 +01:00
Andrew Eikum a5975bb601 mmdevapi: Fill buffer with silence in IAudioRenderClient::GetBuffer. 2013-11-12 19:06:09 +01:00
Andrew Eikum 927324ce8f winecoreaudio.drv: Rewrite capture mode. 2013-08-21 19:55:32 +02:00
Jeff Klein 9d79ca02d3 winecoreaudio.drv: Implement IMarshal for IAudioClient. 2013-08-02 11:36:34 +02:00
Andrew Eikum 0746767d91 winecoreaudio.drv: Fix copy-paste typo. 2013-07-11 15:53:50 +02:00
Alexandre Julliard d47d03d26a winecoreaudio.drv: Don't bother to delete critical sections at process exit. 2013-05-16 12:56:38 +02:00
Jörg Höhle b18c5e811f mmdevapi: SetEventHandle is allowed only once. 2012-12-18 16:30:36 +01:00
Andrew Eikum af20740d07 winecoreaudio.drv: Improve IsFormatSupported handling. 2012-12-04 00:02:28 +01:00
Andrew Eikum e84f05bcbc winecoreaudio.drv: Convert some OSStatus errors to HRESULT. 2012-12-04 00:02:22 +01:00
Andrew Eikum e87cb774d1 mmdevapi: Use device GUIDs as unique identifiers. 2012-04-04 17:25:25 +02:00
Andrew Eikum 98815f399c winecoreaudio.drv: Use device GUIDs as keys. 2012-04-04 17:24:59 +02:00
Andrew Eikum 57bb0898f3 winecoreaudio: Improve underrun handling. 2012-02-01 16:56:04 +01:00
Jörg Höhle f489cc97c7 winecoreaudio: Fix the Start/Stop/Reset cycle. 2012-01-31 15:37:35 +01:00
Jörg Höhle 4b888861f9 winecoreaudio: Implement a lock-free callback design. 2012-01-31 15:37:21 +01:00
Jörg Höhle c995011974 winecoreaudio: Avoid deadlock in AudioClient_Stop. 2012-01-31 15:37:13 +01:00
Jörg Höhle 89eaa56a2f winecoreaudio: GetNextPacketSize returns 0 when no data is available yet. 2012-01-16 13:48:28 +01:00
Jörg Höhle ee5f6f229e winecoreaudio: Fix AudioCaptureClient Get/ReleaseBuffer protocol. 2012-01-13 18:17:32 +01:00
Jörg Höhle 999423d34e dsound: Vista/XP SP2 reworked the Speaker Configuration. 2012-01-13 18:17:31 +01:00
Jörg Höhle fcc9b74cb2 mmdevapi: Round buffer size like native in shared mode. 2012-01-09 15:34:47 +01:00
Jörg Höhle 9bd61f4337 winecoreaudio: Fix latency calculation. 2012-01-06 19:24:18 +01:00
Jörg Höhle acd8d60faa mmdevapi: GetDevicePeriod returns constants. 2012-01-06 19:24:17 +01:00
Jörg Höhle 38f9ba0070 mmdevapi: Enforce limits on period and duration. 2011-12-19 20:15:43 +01:00
Jörg Höhle 7c5b90006c mmdevapi: SHAREDMODE_EXCLUSIVE + EVENTCALLBACK is too ... exclusive for now. 2011-11-22 18:24:53 +01:00
Andrew Eikum 2da60016af winecoreaudio.drv: Make driver sample accurate. 2011-11-22 17:17:34 +01:00
Andrew Eikum ca18b8ffb3 winecoreaudio.drv: Fix latency calculation. 2011-11-22 17:17:32 +01:00
Francois Gouget 1c3617a2c6 winecoreaudio.drv: Don't unset Spare[0] when deleting static critical sections. 2011-11-15 19:37:35 +01:00
Francois Gouget cfce8ab459 winecoreaudio.drv: Give a name to the midi and mmdevapi critical sections. 2011-11-08 09:49:30 +01:00
Jörg Höhle 00684f84a5 mmdevapi: IsFormatSupported EXCLUSIVE mode never returns S_FALSE. 2011-10-28 12:49:44 +02:00
Jörg Höhle 41c6ffea44 winecoreaudio: Release buffer memory. 2011-10-28 12:47:43 +02:00
Ken Thomases 7eadf7bb9f winecoreaudio: Improved tracing. 2011-10-21 12:12:43 +02:00
Ken Thomases cf39023208 winecoreaudio: Avoid an extra copy/conversion of a string. 2011-10-21 12:12:36 +02:00
Ken Thomases 4bceee9e15 winecoreaudio: Fix a test for allocation failure (copy/paste error). 2011-10-21 12:12:29 +02:00
Ken Thomases 9162c3d32d winecoreaudio: Fix a leak. 2011-10-21 12:12:23 +02:00