Ryochan7/DS4Windows

Multiple mouse inputs can't both be active at the same time

TheLadForTheJob opened this issue · 1 comments

Using at least 2 of gyro touchpad or stick all outputting mouse, they can't all be active and seem to override each other. Haven't tested with 3 but stick + gyro and touchpad + gyro cause this issue.

For the most part, that is intentional. It works a bit differently between the SendInput event generator and FakerInput. IIRC, with SendInput, the Gyro or Touchpad could end up sending a mouse delta event early before the stick controls are processed; there is the chance for multiple mouse events to be fired in one gamepad poll. With FakerInput, the event data is queued up until a Sync event happens at the end of the mapping routine to send the final mouse delta event to the system. The desired behavior is to only produce one mouse delta event in a gamepad poll so the FakerInput implementation is closer to what I want.

The only change that might be useful would be to check which movements are larger and use the largest event produced in the mapping routine rather than using the most recent event generated. It would be a bit of extra overhead but I have no motivation to do it regardless. Just tweaking this app a bit more before pushing the .NET 8 release and then I am out.