Commit Graph

69 Commits

Author SHA1 Message Date
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
Andrew Eikum ad009330f5 winecoreaudio.drv: Don't fail if setting volume fails.
Some audio input devices don't support setting the device volume, while
others do. So attempt to set the volume, but don't return an error code
if it fails.
2011-10-13 19:57:18 +02:00
Andrew Eikum f7364dfb4b mmdevapi: Don't fail if dwChannelMask is not set correctly. 2011-09-28 21:04:33 +02:00
Andrew Eikum a773b16d79 winecoreaudio.drv: Remove wave, mixer, and dsound driver code. 2011-09-26 18:34:53 +02:00
Jörg Höhle 08dd823c7c mmdevapi: Use UINT32 for a number of frames and UINT64 to sum them. 2011-09-08 20:08:09 +02:00
Jörg Höhle 57cbb01f0c winecoreaudio: Fix AudioRenderClient Get/ReleaseBuffer protocol. 2011-09-07 18:13:29 +02:00
Jörg Höhle df201d3ef3 mmdevapi: Accept up to 8 channels. 2011-09-07 18:13:29 +02:00
Andrew Eikum c4b94b1ba4 mmdevapi: Automatically select the correct driver. 2011-09-01 18:06:37 +02:00