Commit Graph

206 Commits

Author SHA1 Message Date
Andrew Eikum db87636c91 mmdevapi: Support older version of the AudioClientProperties structure.
Warframe when using a win10 prefix uses an xaudio2_9redist.dll which
uses the older AudioClientProperties structure (missing the Options
member).

Based on a patch by Alistair Leslie-Hughes.

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-20 21:13:53 +01:00
Brendan Shanks 1fc8a8f234 winecoreaudio.drv: Only read 'length' bytes from received MIDIPackets.
The Core MIDI MIDIPacket struct is declared with a 256-byte data array,
but this is just for convenience. There may be only one accessible byte,
or there may be more than 256.
Only read 'length' bytes from the packet, and correctly handle a
length > 256.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-09 20:15:11 +01:00
Andrew Eikum 6314a75006 mmdevapi: Stub implement IAudioClient3.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:59:28 +02:00
Andrew Eikum d8ae98d421 mmdevapi: Implement SetClientProperties.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:58:45 +02:00
Andrew Eikum 530c79fba2 mmdevapi: Implement IsOffloadCapable.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:58:42 +02:00
Andrew Eikum 370a538e54 mmdevapi: Stub implement IAudioClient2.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-02 09:58:40 +02:00
Alexandre Julliard a9a08dbc3d libwine: Remove wine/library.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-08 16:26:17 +02:00
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 2170cce2af winecoreaudio.drv: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-16 16:33:11 +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
Charles Davis c8e87bd878 winecoreaudio.drv: Don't use pointer constants with an integer type (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 11:55:15 +09:00
Andrew Eikum 387fbdc7a1 winecoreaudio: Handle sysex MIDI messages.
Originally submitted by "tinez <tinez@tlen.pl>".

Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-11 19:39:23 +09:00
Ken Thomases f634faaae3 winecoreaudio: Fix build by importing advapi32.
This was missed in commit 3494fb7f72.
2015-06-12 21:22:42 +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
Alexandre Julliard cf0e96c6d0 configure: Rename substituted variables to a standard _CFLAGS and _LIBS format. 2014-01-30 14:51:33 +01:00
Ken Thomases d3488325ae winecoreaudio: Remove some no-longer-used code. 2014-01-16 10:55:19 +01:00
Alexandre Julliard 5e7416e5c8 makefiles: Get rid of the MAKE_DLL_RULES variable. 2014-01-02 12:08:18 +01: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
Ken Thomases 9a7993045e winecoreaudio: Fix a potential leak. (Clang). 2013-10-21 10:46:48 +02: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 b95910ccbc winmm: More compatible midiIn/Out[Un]Prepare MHDR_* flag handling. 2013-02-13 17:19:43 +01: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
Nikolay Sivov d05757d29a winecoreaudio: Fix variable types so pointer is not truncated on 64bit. 2012-08-21 11:46:03 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02: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
Alexandre Julliard 9ac28c8f36 winecoreaudio: Fix spec file parameters. 2012-02-07 21:27:56 -06: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