Ivo Ivanov
b3faad66cf
winebus.sys: Use SDL_HAPTIC_INFINITY for the infinity durations in the SDL backend.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51922
Signed-off-by: Ivo Ivanov <logos128@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Rémi Bernon
3ed121bffa
winebus.sys: Send PID effect state reports for SDL devices.
...
Checking for effect state updates periodically, as well as whenever the
device state changes but not more than once every 10ms.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52062
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:39 +01:00
Rémi Bernon
b431dceeca
winebus.sys: Rotate directions to match the backend conventions.
...
The first direction in HID PID reports seems to be in polar space,
rotated by 90° compared to the spherical coordinate space used in
dinput. We need to fixup the directions to match Linux FF or SDL
direction coordinate space.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51922
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:39 +01:00
Ivo Ivanov
31a668439b
winebus.sys: Support arbitrary effect parameter updates.
...
DInput will only send the output reports that have been modified, we
need to support sparse effect updates.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52061
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 22:20:50 +01:00
Rémi Bernon
fca0f18d08
winebus.sys: Avoid unnecessary scaling of effect parameter values.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:38 +01:00
Rémi Bernon
3495bd4492
winebus.sys: Implement PID device gain for SDL devices.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:12 +01:00
Rémi Bernon
fd47d58e8c
winebus.sys: Add a PID device gain output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:25:51 +01:00
Rémi Bernon
5b735572c1
winebus.sys: Use +hid debug channel.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 11:16:55 +01:00
Alexandre Julliard
ef6e33f89f
include: Don't include wine/port.h in Unix libraries.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-03 21:06:48 +01:00
Rémi Bernon
3ad0c002da
winebus.sys: Drop the hid_report channel.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:49 +02:00
Rémi Bernon
25bc909283
winebus.sys: Map SDL joystick axes the same way as UDEV evdev.
...
And increase the arbitrary absolute axis count limit.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40658
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-21 11:21:54 +02:00
Francois Gouget
c4d5010fbf
winebus.sys: Add a trailing linefeed to a couple of FIXME()s.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 18:58:30 +02:00
Rémi Bernon
2369cdc180
winebus.sys: Only use SDL_JoystickRumble as a fallback.
...
If nothing else is supported, and pass the duration_ms parameter too.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 18:36:30 +02:00
Rémi Bernon
38059e7ecf
winebus.sys: Fix inverted SDL joystick hat switch y axis.
...
SDL_HAT_UP should work as SDL_CONTROLLER_BUTTON_DPAD_UP.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40658
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:31:45 +02:00
Rémi Bernon
1c4523a9d4
winebus.sys: Add a PID set ramp force output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 15:27:25 +02:00
Rémi Bernon
4a2db9f29e
winebus.sys: Add a PID set constant force output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 15:27:25 +02:00
Rémi Bernon
c263fea14f
winebus.sys: Add a PID set condition output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 15:27:25 +02:00
Rémi Bernon
4b653ae043
winebus.sys: Add a PID set envelope output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 15:27:25 +02:00
Rémi Bernon
6f2e66963c
winebus.sys: Add a PID set periodic output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 15:27:25 +02:00
Huw Davies
43cd5d8a2d
winebus.sys: Convert the product strings to Unicode on the Unix-side.
...
This avoids keeping two copies of each string.
It also fixes a regression on macOS from commit 9d4b70473c
that incorrectly treated a CFStringRef as a char ptr.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:51:04 +02:00
Rémi Bernon
2dd369044d
winebus.sys: Implement PID effect update for SDL devices.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:33:30 +02:00
Rémi Bernon
12d91995fd
winebus.sys: Add a PID effect update output report.
...
Advertising support of the periodic effect types only for now.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:33:19 +02:00
Rémi Bernon
8f0f2fab72
winebus.sys: Implement PID effect control for SDL devices.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 11:02:00 +02:00
Rémi Bernon
3b3228e9c7
winebus.sys: Add a PID effect control output report.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 11:01:56 +02:00
Rémi Bernon
eeb97fa605
winebus.sys: Implement PID device control for SDL devices.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:37:43 +02:00
Rémi Bernon
903c7ea75d
winebus.sys: Add a PID device control output report.
...
And include it in the HID report descriptor when SDL device has support
for any haptic effect, or when UDEV lnxev device has any FF bit set.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:37:17 +02:00
Rémi Bernon
ef36885b1e
winebus.sys: Remove unused SDL_memset function pointer.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-24 21:55:19 +02:00
Rémi Bernon
c3ee32e846
winebus.sys: Check for SDL_JoystickRumble presence at runtime.
...
It's been introduced in SDL2 2.0.9, released on 2018/10/31.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-24 21:55:19 +02:00
Rémi Bernon
78f67d5c08
winebus.sys: Handle feature and output reports in hid_device.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:45 +02:00
Rémi Bernon
777a8fbda8
winebus.sys: Add support for joystick device rumble.
...
Some devices, such as the DualShock 4 only have support for haptics
through the SDL_JoystickRumble API. Let's use it as a fallback if none
of the more detailed API are supported.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:42 +02:00
Rémi Bernon
04b19a969b
winebus.sys: Use report ids in crafted HID reports.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:39 +02:00
Rémi Bernon
9cf1e8353c
winebus.sys: Factor out setting HID report values.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:33 +02:00
Rémi Bernon
c6df23fed3
winebus.sys: Factor out HID report buffers allocation.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 10:28:21 +02:00
Rémi Bernon
9d5e9b5f42
winebus.sys: Use the computed element offsets to create reports.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:48:10 +02:00
Rémi Bernon
fa3905bafa
winebus.sys: Introduce a new raw_device / hid_device abstraction.
...
For any device which requires building HID reports.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:48:02 +02:00
Rémi Bernon
12b5bc87db
winebus.sys: Rename SDL bus device to struct sdl_device.
...
And use impl everywhere instead of inconsistent private / ext / device.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-22 21:47:48 +02:00
Rémi Bernon
8375753952
winebus.sys: Simplify SDL controller report descriptor creation.
...
Now that we have xinput.sys for translation there's no need to keep this
compatible.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:07 +02:00
Rémi Bernon
4a15cc9eb9
winebus.sys: Simplify SDL joystick report descriptor creation.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:02 +02:00
Rémi Bernon
8221229498
winebus.sys: Always add padding after button blocks.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:40:58 +02:00
Rémi Bernon
593c4d5149
winebus.sys: Move hats before buttons and use one byte each.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:40:54 +02:00
Rémi Bernon
d7c4867257
winebus.sys: Enforce all axis values to be 32bit.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:40:43 +02:00
Rémi Bernon
059764e87e
winebus.sys: Remove the bogus SDL "unknown" HID report constant.
...
It was used for XInput compatibility and is not needed anymore.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:40:40 +02:00
Rémi Bernon
7608538b40
winebus.sys: Remove unnecessary internal bus ids.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:49 +02:00
Rémi Bernon
5bbf1d1095
winebus.sys: Use new unixlib subsystem.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 10:45:46 +02:00
Rémi Bernon
cc2f669390
winebus.sys: Use a pthread_mutex_t instead of CRITICAL_SECTION.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 10:45:43 +02:00
Rémi Bernon
8f6932fd35
winebus.sys: Avoid process heap allocations on the unix side.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 10:45:41 +02:00
Rémi Bernon
e54ff70e5d
winebus.sys: Build with msvcrt.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 10:45:38 +02:00
Rémi Bernon
39ca4de665
winebus.sys: Use Rtl CS functions.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 10:50:39 +02:00
Rémi Bernon
35a6148acf
winebus.sys: Use Rtl heap functions.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 10:50:37 +02:00
Rémi Bernon
0017b5eb63
winebus.sys: Load SDL bus mappings before calling bus_init.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 10:50:36 +02:00