[Bug 52062] dinput HID joystick doesn't implement effect state reports.

WineHQ Bugzilla wine-bugs at winehq.org
Thu Nov 25 00:54:02 CST 2021


https://bugs.winehq.org/show_bug.cgi?id=52062

--- Comment #2 from Ivo Ivanov <logos128 at gmail.com> ---
(In reply to Rémi Bernon from comment #1)
> I wrote (and sent upstream) a few tests for these functions and as far as I
> can see, Microsoft PID driver isn't trying to read the effect state reports
> using IOCTL_HID_GET_INPUT_REPORT at all, but expects the reports to come
> alongside the device state input reports.
> 
> In any case, not having the reports implemented doesn't seem to be much of
> an issue, and DInput returns some default flags depending on the operations
> and the effects is knows have been created and started.

I thought the same. There is no sign of any Get_Input_Report requests in the
captured usb traffic from Windows, either.

IMO it would need the start time (GetTickCount64(), etc.) and loop count from
Start(), and duration from SetParameters(). Also if start delay is confirmed by
a conformance test to be separate from the duration, it should be added to the
equation as well. Probably would need a flag for the paused state too.
Then there is the Solo mode in Start(), and the various FFB commands in
SendForceFeedbackCommand(), which would need enumeration of the created effects
and resetting (zeroing, etc.) their start times and probably the other state
parameters.

Slightly more complicated look the Pause and Continue commands from
SendForceFeedbackCommand(), which by documentation should pause the effect
timers by their current step, and then continue playing for the remaining time.
They would need enumeration of the created effects on Pause and clearing the
start time, start delay, and reducing the duration to the remaining time, while
flagging them as paused. Then Continue would set the start time of the paused
effects, etc. All of this while also considering the Infinity duration and loop
count.

This could be implemented as backup for the other method.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list