Commit Graph

85 Commits

Author SHA1 Message Date
Jacek Caban e19d97ff4e winepulse: Allocate ACImpl volumes when channel count is known.
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-25 21:13:00 +02:00
Jacek Caban 4432b66e37 winepulse: Simplify IAudioStreamVolume::GetChannelVolume implementation.
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-25 21:13:00 +02:00
Jacek Caban 6a6296562f winepulse: Simplify IAudioStreamVolume::SetChannelVolume implementation.
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-25 21:13:00 +02:00
Jacek Caban aba40bd50a winepulse: Move pulse_is_started to unix lib.
And move pulse_stream to pulse.c since it's accessed only from unix lib now.

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-25 21:13:00 +02:00
Jacek Caban bf74f36350 winepulse: Simplify checks for stream being initialized.
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-25 21:13:00 +02:00
Jacek Caban 1518e73b23 winepulse: Move pulse_get_position 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-25 21:13:00 +02:00
Jacek Caban 44e4132489 winepulse: Move pulse_get_frequency 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 a6131544e8 winepulse: Move pulse_get_next_packet_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 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
Jacek Caban b39b9eea39 include: Don't default to WINE_NO_NAMELESS_EXTENSION for Wine build.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 21:48:38 +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