Hi,
On 11/03/2016 04:15 PM, Aric Stewart wrote:
Looking forward, the hope is that then we will be able to build RawInput support on top of HID, and also dinput and xinput support as well. As a fun challenge I have been working to get native dinput from DirectX 9 to work on Wine on top of HID and it is moving forward much better than I expect, with a lot of hacks at present. (native Dinput sees the gamepads and even start trying to read them, but current is not getting reports properly)
I'm glad to see so much progress on the HID functionality. As for Dinput and Xinput, last time I was active in the mailing list there was a discussion about how to correctly identify Xinput devices in programs that can enumerate both Xinput and Dinput controllers.
Have you thought about how to allow software to differentiate between Dinput-only and Xinput+Dinput devices? Roderick Colenbrander wrote that many old games that support Xinput+Dinput use WMI to identify Xinput devices. Apparently it's what the article on MSDN I found last time proposes too, I just didn't see the bit about it being WMI before: https://msdn.microsoft.com/en-us/library/windows/desktop/ee417014(v=vs.85).a...
I feel like there needs to be a layer between HID and Dinput/Xinput that checks whether a certain HID device is an XInput controller and fills in the correct info before passing it to DInput and XInput. Since we're just mapping HID devices, that "check" must know all possible mappings for XInput devices, so basically it must contain most of the functionality that several of us have implemented directly in xinput.dll in one way or another.
So tell me how things work! thanks, -aric
Best regards, Juan