This MR is the first of at least three MRs adding support for the Bluetooth stack API in Wine:
1. The winebth.sys driver, which talks to BlueZ and implements several key IOCTLs for communicating with Bluetooth devices and radios.
2. A bthserv service, which is responsible for keeping track of the authentication agent, and relaying authentication requests and responses to and from the driver.
3. Userspace APIs (bluetoothapis.dll, bthprops.cpl, Windows.Devices.Bluetooth, etc).
winebth.sys is split into two "sub" drivers:
`winebth.sys`: The main entrypoint, loaded by winedevice. It listens for changes to Bluetooth devices and radios and authentication events on BlueZ, passing them on the bthenum. It also handles most IOCTL operations on Bluetooth radio PDOs.
`bthenum`: Responsible for creating nodes for discovered Bluetooth devices and associated services. It also tries to validate any IOCTLs relating to bluetooth devices before passing them to winebth.sys.
The unix code is split between dbus.c, unixlib.c and winebluetooth.c, where winebluetooth is a simple wrapper around unixlib for the sake of organization.
--
v11: dlls/winebth.sys: Implement IOCTL_WINEBTH_DEVICE_START_PAIR.
dlls/winebth.sys: Implement IOCTL command IOCTL_BTH_DISCONNECT_DEVICE.
dlls/winebth.sys: Add support for RequestAuthorization requests from BlueZ.
dlls/winebth.sys: Add support for RequestPasskey requests from BlueZ.
dlls/winebth.sys: Add support for DisplayPasskey requests from BlueZ.
dlls/winebth.sys: Add support for AuthorizeService requests from BlueZ.
dlls/winebth.sys: Add support for DisplayPinCode requests from BlueZ.
dlls/winebth.sys: Add support for RequestPinCode requests from BlueZ.
dlls/winebth.sys: Add support for RequestConfirmation requests from BlueZ.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6621
On Thu Mar 21 07:01:57 2024 +0000, Vijay Kiran Kamuju wrote:
> I will initially only add the ID3X11ThreadPump interface stubs and the
> D3DX11CreateThreadPump function, so that once the common code steps are
> further advanced, we can fill in the interface functions.
Have not seen the unification work, except for the pixel format changes. Is there more work done in proton tree?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5357#note_84832
Making all the windows handled by the driver to be either GL/VK client surfaces, or top-level windows. This avoids leaking host windows into the Win32 space, and makes it possible to get rid of some remaining NtUserMapWindowPoints in `map_event_coords` for mouse input.
--
v6: winex11: Get rid of the now unnecessary foreign windows.
winex11: Generate relative ConfigureNotify on parent ConfigureNotify events.
winex11: Use the new host windows to register foreign window events.
winex11: Keep track of the host windows children window rects.
winex11: Keep track of the host windows relative rects.
winex11: Keep track of the host window children of interest.
winex11: Create host windows recursively up to root_window.
winex11: Introduce a new struct host_window for host-only windows.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6649