Some games with support for the haptic feedback and speaker features of the Sony DualSense controller select the controller's audio output by filtering on the ContainerId IMMDevice property to find one that matches the controller's HID's. This MR, together with !359, adds support for exposing such a ContainerId to applications.
I marked this MR as a draft because I understand that the way the ���guid��� is generated is far from ideal. Furthermore, I will need to map from sysfs to container Id in other components as well (`winebus` for the HID device, and possibly `winealsa` and other audio drivers), so moving that part elsewhere would make sense. However, I think I will need help with those tasks.
--
v2: winepulse: Add support for containerId property from sysfs path
winepulse: Store PulseAudio device's sysfs path when available
https://gitlab.winehq.org/wine/wine/-/merge_requests/360
Nikolay Sivov (@nsivov) commented about include/d2derr.h:
> #ifndef __WINE_D2DERR_H
> #define __WINE_D2DERR_H
>
> +#define D2DERR_NOT_FOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
I don't see in 10.0.2200.0 SDK. Where does it come from?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/388#note_3514
Chip Davis (@cdavis5e) commented about dlls/scrrun/filesystem.c:
> if((attrs == INVALID_FILE_ATTRIBUTES) || !(attrs & FILE_ATTRIBUTE_DIRECTORY))
> return CTL_E_PATHNOTFOUND;
>
> + _wsplitpath(source, src_drive, src_dir, file_name, file_ext);
> + len = lstrlenW(destination);
> +
> + if (destination[len-1] == '\\') {
What about `'/'`? I know that's a valid separator to the Win32 API. Is it one to this API?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/391#note_3508
--
v3: regedit: Directly use RegQueryValueExW() instead of a helper function.
regedit: Correctly calculate REG_MULTI_SZ size before reading from the buffer.
regedit: Remove unneeded valueDataLen override for DWORD values.
https://gitlab.winehq.org/wine/wine/-/merge_requests/392
I'll have a look at the time failures, I was seeing them locally but not on the testbot run so I assumed they were flukes caused by some decoder differences, looks like it may be something else after all.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/393#note_3477
On Wed Jul 6 17:52:44 2022 +0000, **** wrote:
> Zebediah Figura replied on the mailing list:
> ```
> On 7/6/22 05:08, R��mi Bernon (@rbernon) wrote:
> >> So yes, we could not block in IWMReader::Stop(), but that's not
> >> ultimately going to help anything. We do still need to wait for the
> >> streaming thread to stop at some point.
> >
> > Well we could then call `Stop` and wait for the WMT_STOPPED callback
> notification with a condition variable, releasing the filter_cs so the
> callbacks are free to enter it to make the thread-safety obviously correct.
> Unfortunately we can't release the filter CS while waiting for the
> thread to stop. We need to protect the whole operation.
> ```
I opened https://gitlab.winehq.org/wine/wine/-/merge_requests/393#note_3473 to make WM async reader state transitions asynchronous, so that we can then do the right thing here and wait for the callback notifications while entering the CS and avoiding the deadlock.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/140#note_3475