Huw Davies
bc70c4dabf
winealsa: Move release_capture_buffer to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 22:45:01 +01:00
Huw Davies
bb43ae25f9
winealsa: Move get_capture_buffer to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 22:44:58 +01:00
Huw Davies
08648f0213
winealsa: Move release_render_buffer to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 22:44:54 +01:00
Huw Davies
d6633f54ab
winealsa: Move get_render_buffer to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-09 22:44:51 +01:00
Huw Davies
f8b670f118
winealsa: Move set_event_handle to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:31:16 +01:00
Huw Davies
f3bd61add4
winealsa: Move reset to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:31:13 +01:00
Huw Davies
667241753e
winealsa: Move stop to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:31:10 +01:00
Huw Davies
1420d247a2
winealsa: Move start to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:31:06 +01:00
Huw Davies
c32898c722
winealsa: Move timer_loop to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:31:03 +01:00
Huw Davies
4195b3465c
winealsa: Add a temporary write_best_effort syscall.
...
This will allow the timing loop to move over without needing
to move "start" at the same time.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-03 21:30:59 +01:00
Huw Davies
45f1cbe476
winealsa: Move get_current_padding to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 18:38:07 +01:00
Huw Davies
5516e83f9a
winealsa: Move get_latency to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 18:38:04 +01:00
Huw Davies
413b3c59e5
winealsa: Move get_buffer_size to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 18:38:01 +01:00
Huw Davies
71d0cdde89
winealsa: Move create_stream and release_stream to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Huw Davies
7262da2afc
winealsa: Use NtAllocateVirtualMemory() to alloc the buffers returned to the user.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Huw Davies
9eb0ec9037
winealsa: Use a pthread mutex for the stream lock.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Huw Davies
123e748f1b
winealsa: Use the sessions lock to lock the client's data.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Huw Davies
a63ca0eb0b
winealsa: Keep a copy of the dataflow in the stream.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
02d0071724
winealsa: Pass a stream ptr to alsa_{read|write}_data().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
444d429fcc
winealsa: Store the session mute state in the stream volumes.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
4f8a2e456b
winealsa: Store the session master volume in the stream.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
a4de96a1f0
winealsa: Store the session channel vols in the stream.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
8130371614
winealsa: Remove an unnecessary check on the session channel count.
...
This must always be at least equal to any given stream's channels.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
f608d78910
winealsa: Store the channel volumes in the stream.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 22:33:54 +01:00
Huw Davies
10987172f4
winealsa: Use the stream ptr to indicate the init state.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:58:03 +01:00
Huw Davies
1ad8978f40
winealsa: Move the stream creation to AudioClient_Initialize().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:58:00 +01:00
Huw Davies
d2339bb4c9
winealsa: Move is_format_supported to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:57 +01:00
Huw Davies
7920275c56
winealsa: Move get_mix_format to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:54 +01:00
Huw Davies
2df122934e
winealsa: Move the pcm device opening to a helper.
...
This will allow GetMixFormat and IsFormatSupported to share
this code without needing a stream.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:49 +01:00
Huw Davies
04d01ee3c2
winealsa: Introduce a stream structure.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:45 +01:00
Huw Davies
10d44c9a8a
winealsa: Use the global lock to lock the session.
...
Mainly just for simplicity.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:41 +01:00
Huw Davies
8e13b4bd0c
winealsa: Explicitly store the name and channel count in the audio client.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-17 18:57:38 +01:00
Huw Davies
781277de62
winealsa: Move get_endpoints_id to the unixlib.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Huw Davies
60d6eb4df7
winealsa: Rewrite get_reg_devices() using the Nt registry api.
...
This code will move to the unixlib.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Huw Davies
dde06247a7
winealsa: Pass a unicode chunk2 to construct_device_id().
...
This makes construct_device_id() rather more sane.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Huw Davies
6b15b4e437
winealsa: Introduce a helper to retrieve the card name.
...
This is primarily to simplify the code. It does however add name
collision detection if there are two unknown cards.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Huw Davies
ab1d8e5b57
winealsa: Pass EDataFlow to alsa_try_open().
...
Part of the motivation for this patch is to eliminate variables
named "stream", in order to avoid confusion with audio streams.
It also avoids cases where both "flow" and "stream" are passed to
the same function, conveying the same information.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Huw Davies
14fc47b5e1
winealsa: Remove alsa-pulse handle underrun workaround.
...
Pulse-based systems should be using winepulse.drv.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:54 +01:00
Alexandre Julliard
f0cd33c69e
include: Add support for defining Win32 types as 'long' where possible.
...
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Masanori Kakura
c2b366f4c4
winealsa.drv: Fix a typo in TRACE() message.
...
Signed-off-by: Masanori Kakura <kakurasan@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-04 18:38:39 +01:00
Jacek Konieczny
240f2f3963
winealsa.drv: Use separate port for each output device.
...
This fixes use of multiple MIDI outputs while keeping the flexibility of
proper ALSA sequencer port subscriptions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52220
Signed-off-by: Jacek Konieczny <jajcus@jajcus.net>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-27 19:12:22 +01:00
Alexandre Julliard
13ec7952e0
configure: Assume that unistd.h is available on Unix.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Huw Davies
1acba9d959
winealsa: Don't acquire the sessions lock after the client lock.
...
This could lead to a deadlock with AudioSessionControl_GetState()
which acquires the locks in the other order.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Alexandre Julliard
ea2c743668
configure: Define _GNU_SOURCE in config.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-11 11:22:53 +02:00
Alexandre Julliard
6ba7773121
makefiles: Add a -mcygwin flag to specify the inverse of -mno-cygwin.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Jacek Caban
1610c80a39
winealsa: 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
Doug Kingston
a9c8196e97
winealsa: Add card number to duplicate device descriptions.
...
Devices with the same device description cannot be distinguished.
Add card number to the description of second and subsequent instances
of devices with the same description. This mimics Windows behavior.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Doug Kingston <dpk@google.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-15 21:11:28 +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