Commit Graph

336 Commits

Author SHA1 Message Date
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
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
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
Jacek Konieczny 3d57cc2863 winealsa.drv: Send MIDI events to port subscribers.
This way changes to the port connections made by other applications will be
honoured.

Signed-off-by: Jacek Konieczny <jajcus@jajcus.net>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 20:36:38 +01:00
Jacek Konieczny 1875887000 winealsa.drv: Allow external MIDI port connection changes.
That is generally the expected behaviour of any ALSA sequencer client.

Signed-off-by: Jacek Konieczny <jajcus@jajcus.net>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 20:36:35 +01:00
Andrew Eikum 983354c3f6 winealsa.drv: Clean up midiOpenSeq.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 20:36:32 +01:00
Rémi Bernon a8e7523ff1 winealsa.drv: Increase buffer size to fix format-overflow warning.
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>
2019-11-14 21:03:56 +01: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 9d48b3294c winealsa.drv: Adjust the buffer volume before sending it to ALSA.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38182
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:39 +02:00
Michael Stefaniuc edf2df3679 winealsa.drv: Remove useless cast to self.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 20:25:02 +01:00
Fabian Maurer 20e5920135 winealsa.drv: Don't crash when getting NULL event from midi.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46170
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-29 17:48:53 +01:00
Michael Stefaniuc 05a6b3049d winealsa.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
Andrey Gusev f4131cbe97 winealsa.drv: Fix uninitialized variable warning.
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-07-18 20:43:34 +02:00
Bruno Jesus 53454ce935 winealsa.drv: Fix handling of system real time MIDI messages.
Signed-off-by: Bruno Jesus <00cpxxx@gmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-07 17:00:32 +01:00
Michael Stefaniuc 383cc92197 winealsa.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:30 +09:00
Andrew Eikum b8753ada42 winealsa.drv: Default to Stereo instead of 5.1 Surround.
Some popular ALSA plugins claim support for a large number of channels
because they have the capability to mix that down to the actual hardware
configuration.

Instead of defaulting to 5.1 Surround sound for these plugins, let's
fall back on the much more common Stereo configuration.  Users with
actual 5.1 Surround setups can tell us about it in winecfg.
2015-05-19 19:24:20 +09:00
Nikolay Sivov 8095210d2c winealsa: Fix a leak of a silence buffer (Valgrind). 2015-04-13 15:04:59 +09:00
Michael Stefaniuc 8fcfa67a56 winealsa.drv: The result of a comparison is already a BOOL. 2015-04-01 17:02:34 +09:00
Mark Harmstone dcf8767b58 winealsa: Do not destroy remapping info on IsFormatSupported. 2015-01-13 17:51:30 +01:00
Mark Harmstone a3f33daa6a winealsa: Support up to 6 channels. 2015-01-05 16:28:03 +01:00
Mark Harmstone acccdce4c4 winealsa: Return PKEY_AudioEndpoint_PhysicalSpeakers device prop. 2014-12-29 22:20:30 +01:00
Andrew Eikum d301254e72 mmdevapi: More accurately track device position. 2014-12-17 17:10:20 +01:00
Mark Harmstone a73669aed8 winealsa: Implement GetPropValue and return device path. 2014-12-04 22:16:38 +01:00
Mark Harmstone 8fe52db332 winealsa: Disable channel remapping for capture devices. 2014-11-10 19:23:32 +09:00
Sebastian Lackner ef1aad985d winealsa.drv: Avoid endless loop if registry keys are not accessible. 2014-11-04 16:11:26 +09:00
Andrew Eikum b950b9a835 mmdevapi: Don't stop sending event signals after IAudioClient::Stop. 2014-06-30 10:32:36 +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