Commit Graph

77 Commits

Author SHA1 Message Date
Andrew Eikum 7e64247a6e mmdevapi: Implement SpatialAudio features.
This makes car radio / ambient noises audible in Cyberpunk 2077.

Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 23:11:22 +01:00
Michael Stefaniuc 591f06d85e mmdevapi: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-25 21:39:18 +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 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 eae787f913 mmdevapi: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-11 08:27:51 +02:00
Michael Stefaniuc a486cd78a3 mmdevapi: 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-08-14 09:38:42 +02:00
Nikolay Sivov 054f1e8c1a mmdevapi: Fix pointer type cast.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-06 19:28:42 +01:00
Andrew Eikum ba858c28fd mmdevapi: Fix some DEVPKEY definitions.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-10 00:39:05 +09:00
Andrey Gusev 424e2addfa mmdevapi: Use debugstr_guid() in TRACE() message.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-23 12:06:40 +09:00
Nikolay Sivov c5b6e31438 mmdevapi: Use regular list iterator.
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-07-07 22:23:41 +09:00
Andrew Eikum 89de040e4f mmdevapi: Implement IAudioEndpointVolume::GetVolumeRange.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-10 11:26:09 +09:00
André Hentschel bbc42a2341 mmdevapi: Skip device if GetId fails (Coverity).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-23 16:32:15 +01:00
Nikolay Sivov 336cc78744 mmdevapi: Return interface pointers instead of impl pointers. 2015-06-01 14:52:40 +09:00
Andrew Eikum b55cc5e4c5 mmdevapi: Always use 64-bit registry keys. 2015-05-04 15:06:22 +09:00
Nikolay Sivov f4096a30ea mmdevapi: Fix returned format leak (Valgrind). 2015-04-13 15:05:03 +09:00
Michael Stefaniuc a514fe7642 mmdevapi: Don't check for IID_IDirectSoundCapture8, it is just a define (PVS-Studio). 2015-03-06 20:32:02 +09:00
Mark Harmstone e20307099f mmdevapi: Do nothing on property store Commit. 2015-02-03 16:30:57 +09:00
Mark Harmstone 7b8dbc4776 mmdevapi: Allow PKEY_AudioEndpoint_PhysicalSpeakers to be overridden. 2015-01-27 21:30:15 +01:00
Mark Harmstone acccdce4c4 winealsa: Return PKEY_AudioEndpoint_PhysicalSpeakers device prop. 2014-12-29 22:20:30 +01:00
Mark Harmstone b1ff68b803 mmdevapi: Allow GetPropValue function in audio drivers. 2014-12-04 22:15:34 +01:00
Frédéric Delanoy e50dfb69ee mmdevapi: Use BOOL type where appropriate. 2013-11-12 12:58:03 +01:00
Jeff Klein 5b47e9b382 mmdevapi: Correct MMDevPropStore_GetAt. 2013-10-02 13:04:25 +02:00
Thomas Faber 513f8286cb mmdevapi: Fix build with MSVC. 2013-09-30 20:35:03 +02:00
Andrew Eikum d4e9b26cbb mmdevapi: Send notifications to clients when the user-selected default device changes. 2012-12-15 16:33:31 +01:00
Andrew Eikum 8d775ec09b mmdevapi: Implement (Un)RegisterEndpointNotificationCallback. 2012-12-15 16:33:25 +01:00
Henri Verbeet 5e93aa38ab mmdevapi: Avoid a couple of dependencies on ddraw.h. 2012-11-05 11:30:30 +01:00
Jacek Caban 223105b9b3 mmdevapi: Use proper helpers for iface calls. 2012-08-15 12:18:39 +02:00
Francois Gouget 4a27f7bf27 mmdevapi: Make MMDevice_GetPropValue() static. 2012-06-12 11:11:29 +02:00
Michael Stefaniuc 5c47973c24 mmdevapi: Remove superfluous NULL pointer check before HeapFree (Smatch). 2012-04-16 11:51:24 +02:00
Andrew Eikum 06c1f255f8 mmdevapi: Indicate data flow direction in IMMDevice::GetId result. 2012-04-06 20:12:26 +02:00
Andrew Eikum e6638bd86f mmdevapi: Store device interface in registry. 2012-04-06 20:12:05 +02:00
Andrew Eikum e87cb774d1 mmdevapi: Use device GUIDs as unique identifiers. 2012-04-04 17:25:25 +02:00
Andrew Eikum edab3b13f7 mmdevapi: TRACE all COM method calls. 2012-03-28 19:05:06 +02:00
Andrew Eikum f7d37b38fe mmdevapi: Only return ACTIVE devices from GetDefaultAudioEndpoint.
This prevents invalid devices from being created if the user adds a
device, sets it as default, and then removes it.
2012-02-15 11:56:47 +01:00
Andrew Eikum 66724f617e mmdevapi: Attempt to determine default devices from the registry.
This uses a new, Wine-specific registry key
<HKCU\Software\Wine\Drivers\wine<driver>.drv> to determine the correct
device to use for the various defaults. The drivers still supply their
own defaults which will be chosen if no registry entry is defined. For
portability we use a driver-specific key in order to support default
devices for each of the driver backends.
2011-10-05 16:50:29 -05:00
Andrew Eikum 6adf21173c mmdevapi: Don't use invalid This pointer on static object. 2011-09-30 10:32:14 -05:00
Henri Verbeet 748efc34c4 mmdevapi: Add a TRACE to info_device_ps_GetValue(). 2011-09-02 10:11:34 +02:00
Henri Verbeet a4fddf5fc8 mmdevapi: Include space for the terminating zero in info_device_ps_GetValue(). 2011-09-02 10:11:25 +02:00
Andrew Eikum f6890ef0e2 winmm: Determine the driver from MMDevAPI.
This uses a half-implemented, Wine-specific IMMDevice object to extract
the driver name.
2011-09-01 18:06:37 +02:00
Andrew Eikum 23c26982e9 mmdevapi: Disable sound if the user explicitly selects no driver.
This also tweaks the no-driver behavior to report 0 active devices
instead of returning an error code.
2011-08-23 16:53:52 +02:00
Andrew Eikum f50829c36e mmdevapi: Don't crash if a driver fails to load. 2011-06-20 11:28:53 +02:00
Andrew Eikum bc10fd3ce6 mmdevapi: Sessions should be unique per-device. 2011-06-14 12:59:39 +02:00
Andrew Eikum 4e7d039722 mmdevapi: Add support for IAudioSessionManager in IMMDevice::Activate. 2011-06-06 21:49:19 +02:00
Andrew Eikum 91b684325f mmdevapi: IMMDeviceEnumerator::GetDevice should fail on unknown device ids. 2011-05-16 16:35:27 +02:00
Andrew Eikum 5014099928 mmdevapi: Reimplement using a driver system. 2011-04-25 17:24:50 +02:00
Francois Gouget fc4014454b mmdevapi: Reorder a couple of functions to avoid forward declarations and make MMDevice_SetPropValue() static. 2011-04-11 12:07:39 +02:00
Michael Stefaniuc 00d1915902 mmdevapi: Use ifaces instead of vtbl pointers in MMDevice. 2011-01-17 13:23:39 +01:00
Marcus Meissner acefa93cd6 mmdevapi: Fixed buffer size passed to RegEnumKeyExW. 2010-12-31 16:27:47 +01:00
Michael Stefaniuc 1df7dab115 mmdevapi: Standardize the COM usage in devenum.c. 2010-12-14 12:10:58 +01:00
Henri Verbeet 5c99f4ec6d mmdevapi: Remove the useless CINTERFACE definitions. 2010-08-17 11:55:33 +02:00