Jacek Caban
80b996c53c
winepulse: Move pulse_release_capture_buffer to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Jacek Caban
459e911b65
winepulse: Move pulse_get_capture_buffer to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Jacek Caban
42d826bc8c
winepulse: Move pulse_get_current_padding to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Jacek Caban
30c17619e5
winepulse: Move pulse_get_latency to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Jacek Caban
af84907cca
winepulse: Move pulse_get_buffer_size to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Jacek Caban
a5997bece7
winepulse: Move pulse_set_event_handle to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:10 +02:00
Jacek Caban
24a7c33fc1
winepulse: Move release_render_buffer to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:08 +02:00
Jacek Caban
8cb88173d8
winepulse: Move pulse_get_render_buffer to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:06 +02:00
Jacek Caban
505d4b8b14
winepulse: Move pulse_reset to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:32:02 +02:00
Jacek Caban
638455136b
winepulse: Move pulse_start to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-19 10:31:57 +02:00
Jacek Caban
13cac6287c
winepulse: Move timer loop to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:07 +02:00
Jacek Caban
d7b957654d
winepulse: Move pulse_write to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:05 +02:00
Jacek Caban
8ea23d0d44
winepulse: Move mult_* functions to separated file.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:03 +02:00
Jacek Caban
0b0ae164f4
winepulse: Set pulse master volume to 0 when session is muted.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:05:00 +02:00
Jacek Caban
131b7fd5e1
winepulse: Adjust pulse stream volumes for session volumes.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:04:58 +02:00
Jacek Caban
8060e56b26
winepulse: Adjust pulse stream volumes for master volume.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:04:56 +02:00
Jacek Caban
bca0706f3a
winepulse: Store volume levels in pulse_stream.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:04:53 +02:00
Jacek Caban
b1ddfca16e
winepulse: Move pulse_stop to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:04:51 +02:00
Jacek Caban
a5d4079c82
winepulse: Move pulse_read to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 22:04:48 +02:00
Jacek Caban
ebd344f292
winepulse: Move pulse stream initialization to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:45 +02:00
Jacek Caban
0eeefec6c5
winepulse: Move pulse stream destruction to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:43 +02:00
Jacek Caban
5477f2b015
winepulse: Introduce pulse_stream struct.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:41 +02:00
Jacek Caban
fa097243e0
winepulse: Store channel count directly in ACImpl.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:38 +02:00
Jacek Caban
8df72bade5
winepulse: Move pulse main loop to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:36 +02:00
Jacek Caban
e264ec9c71
winepulse: Move pulse_test_connect to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:33 +02:00
Jacek Caban
d3673fcb03
winepulse: Move synchronization functions to unix lib.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-12 19:06:24 +02:00
Jacek Caban
ac23adbdec
winepulse: Use nameless unions.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-24 20:46:23 +01:00
Torge Matthies
6dd96842fe
winepulse.drv: Make timer delay more accurate.
...
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 22:22:19 +01:00
Torge Matthies
b07c33cac4
winepulse.drv: Make timer thread time-critical.
...
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-15 22:22:19 +01:00
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
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
Andrew Eikum
a10824a03c
winepulse: Don't rely on pulseaudio callbacks for timing.
...
Contains contributions from Mark Harmstone and Zhiyi Zhang.
Some devices, especially USB devices, have very irregular timing or
very long periods. Some Windows applications (The Witcher 3) are built
to expect regular, short period times, and so would underrun when the
device timing didn't match their expectations. This patch decouples
the Windows-side timing from the OS-side timing so we can meet those
applications' requirements.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-18 21:40:02 +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
Gabriel Ivăncescu
1a7026136b
winepulse.drv: Add support for A-law and u-law formats with volume changes.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-28 20:12:22 +02:00
Gabriel Ivăncescu
cad249b688
winepulse.drv: Adjust the buffer volume before sending it to PulseAudio.
...
Only fixes the PulseAudio driver for the first bug, not ALSA.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38182
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46450
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-28 20:11:57 +02:00
Michael Stefaniuc
bfb4de3cd9
winepulse.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-08-14 10:16:02 +02:00
Andrew Eikum
2157afff48
winepulse: Wake all threads when operations are completed.
...
If threads A and B queue operations simultaneously, it would
previously be possible for B's operation to complete and wake thread A
from cond_wait, which would fail its condition check and then deadlock
as only thread B is awoken when A's operation completes.
This change wakes all threads waiting on the cond var, and each thread
already checks its condition before choosing to continue.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-13 22:38:59 +01:00
Andrey Gusev
d9131acb89
winepulse.drv: Remove redundant comparison.
...
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>
2017-10-17 17:05:13 +02:00
Michael Stefaniuc
703080afb4
winepulse: Avoid casting a COM object to an 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-11-23 22:59:44 +01:00
Michael Stefaniuc
b7e066eb30
winepulse.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:42 +09:00
Andrew Eikum
ee2310f767
winepulse.drv: Don't hold PA-owned buffer between capture callbacks.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 12:42:47 +09:00
Andrew Eikum
87754283be
winepulse.drv: Downgrade failed server connection message to WARN.
...
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-26 10:53:25 +09:00
Michael Stefaniuc
cd9aa35f68
winepulse: Remove a redundant NULL check before HeapFree().
...
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-07-09 11:03:46 +09:00
Andrew Eikum
0766334d04
winepulse.drv: Check that the server connection actually succeeded.
...
When there is no PA server running, some older PulseAudio versions
have pa_mainloop_iterate fail instead of setting the connection state
to failed. So, we should also check the connection state after exiting
the loop to ensure it really succeeded before continuing.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-07 13:16:26 +09:00