Commit Graph

306 Commits

Author SHA1 Message Date
Travis Nickles
bc9a7c3e65 Change priority of output threads 2019-01-09 04:24:29 -06:00
Travis Nickles
cceaa31404 Send output packet at least once every 4 seconds
Best attempt at resolving issue #399.
2019-01-09 03:45:39 -06:00
mika-n
853b1ac650 Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2019-01-02 21:45:41 +02:00
Travis Nickles
6156d66ffb Added comment noting Scuf Vantage entry 2018-12-26 23:38:37 -06:00
Travis Nickles
e570c1c89e Added info for Scuf Vantage gamepad
Related to issue #524
2018-12-26 23:33:38 -06:00
mika-n
94d5f83db1 Added config options of sixaxis steering wheel emulation and calibration btn to config GUI form (Options). If controller is calibrated via this config screen then there is no need to define "calibrate" special action key. Improved >360 turn range calculation. Added possibility to map SA steering values to L2+R2 trigger axis (Z-axis). For example in ETS2/ATS game controller settings it is possible to use that axis for steering if triggers are not used for throttling and braking (this would leave all axis of L and R thumbstick available for other purposes). 2018-12-07 00:09:09 +02:00
mika-n
1eed418022 Added support for 180/360/720/900/1440 turn range (or any other turn range between 90-3240 degrees). New SASteeringWheelEmulationRange profile option with int32 value (default 360). 2018-12-04 00:50:37 +02:00
mika-n
09c74e9979 Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2018-11-19 11:40:53 +02:00
Travis Nickles
c2edbdf946 Increased timeout for tracking second instance exclusive mode workaround 2018-11-17 18:47:13 -06:00
mika-n
a933eae0a9 New "360 degree gyro steering wheel emulation" functionality. This works best if the DS4 controller is mounted on a "DoItYourself steering wheel rig" (ie. controller attached at a tip of a plastic or wooden pipe which acts as a "steering shaft". This way the controller turns around like a steering wheel and gyro sensor values are more consistent).
At this point there is no GUI to enable this, so you should edit a profile XML file (fex default.xml profile) with Notepad and add <SASteeringWheelEmulationAxis>LXPos</SASteeringWheelEmulationAxis> entry.
Accepted values are None, LXPos, LYPos, RXPos, RYPos) which indicates which X360 axis is used for steering wheel values (ie. gyro tilt converted as steering wheel turning range values). The normal behaviour of this axis should be set as "unmapped" to avoid conflicting values. If steering wheel axis is LX then LY axis is still available for other purposes.
2018-11-17 01:41:21 +02:00
Travis Nickles
dedb1c9ad9 Manually calculate device latency average 2018-11-16 05:24:47 -06:00
Travis Nickles
db859fb4db Changed test rumble check to remove implicit data coercion 2018-11-11 04:56:10 -06:00
Travis Nickles
6db6315d72 Added extra calibration check. Might be useful in some cases where people have reported crashes. 2018-11-05 04:49:23 -06:00
Travis Nickles
49d24fce7d Testing new output report copying thread for USB and SONYWA 2018-10-26 20:58:43 -05:00
Travis Nickles
e3ed777682 Removed unnecessary array copy for USB and SONYWA connections 2018-10-26 01:37:51 -05:00
Travis Nickles
32605524ff Added flag to allow skipping a lock when applicable 2018-10-25 02:51:50 -05:00
Travis Nickles
ce78793dea Removed old unused field 2018-10-25 01:37:26 -05:00
Travis Nickles
60a0f3fda0 Fixed device event queueing 2018-10-15 03:01:13 -05:00
Travis Nickles
af4425763d Added some optimizations 2018-10-11 03:38:52 -05:00
Travis Nickles
1019499612 Resolve name collision with Log class and Diagnostics namespace
Makes app snappier
2018-09-29 04:42:22 -05:00
Travis Nickles
13005458f1 Increase timeout for exclusive attempt process 2018-09-18 03:39:59 -05:00
Travis Nickles
ac360c426d Fixed issue with SONYWA connections having invalid calibration data 2018-08-20 13:14:34 -05:00
Travis Nickles
6f5b17ac37 Remove ui thread from unplug routine
Hotplug routine was starting before removal routine
was being started. No blocking was happening anyway
2018-08-20 04:35:41 -05:00
Travis Nickles
5a4ed6c440 Merge branch 'jay' into udpserver 2018-07-23 00:06:16 -05:00
Travis Nickles
a6e6b5279c Added unsafe back to sixaxis method 2018-07-22 02:52:42 -05:00
Travis Nickles
d1f124870f Revert "Use unsafe for accessing gyro and accel arrays"
This reverts commit e99e0afe17.
2018-07-22 01:23:16 -05:00
Travis Nickles
e6ac109616 Revert "Removed extra fixed block. Moved method call"
This reverts commit f906178b5b.
2018-07-22 01:22:42 -05:00
Travis Nickles
5c9aec9bd1 Revert "Lower latency buffer to 10 items"
This reverts commit 11c7f03244.
2018-07-22 01:22:13 -05:00
Travis Nickles
11c7f03244 Lower latency buffer to 10 items 2018-07-21 00:55:16 -05:00
Travis Nickles
f906178b5b Removed extra fixed block. Moved method call 2018-07-20 05:05:20 -05:00
Travis Nickles
e99e0afe17 Use unsafe for accessing gyro and accel arrays 2018-07-20 04:52:45 -05:00
Travis Nickles
239b9bceba Merge branch 'jay' into udpserver 2018-07-17 23:53:14 -05:00
Travis Nickles
f44cc21688 Minor tweak 2018-07-10 01:18:27 -05:00
Travis Nickles
1171a56a6b Make sure calib routine can be skipped on update serial routine
Might not be needed
2018-07-10 00:57:55 -05:00
Travis Nickles
cfa2bea4be Minor tweak for skipping calibration that .NET likes better
Related to issue #330.
2018-07-10 00:46:25 -05:00
Travis Nickles
8d4c7d0c57 Merge branch 'jay' into udpserver 2018-06-24 21:04:20 -05:00
Yuki-nyan
3ae386cb7c Add support for the Nacon Revolution Pro Controller 2 & disable SixAxis calibrations for Nacon controllers as a preliminary fix for broken support. 2018-06-23 22:04:29 +01:00
Travis Nickles
8989333cdc Add device info for a generic DS4 gamepad
Related to issue #312
2018-06-10 17:25:53 -05:00
Travis Nickles
25b2adc8e5 Corrected stick angles and stick dir unit values 2018-06-05 16:12:11 -05:00
Travis Nickles
a855e67b1a Use rs angle used for RY 2018-06-05 15:46:33 -05:00
Travis Nickles
b596d82573 Merge branch 'jay' into udpserver 2018-06-04 14:08:57 -05:00
Travis Nickles
3d5909a0e4 Change lookup device name for DS4 v2 audio device 2018-05-29 23:51:06 -05:00
Travis Nickles
5cd84ecb5a Added some const 2018-05-28 15:06:48 -05:00
Travis Nickles
d3fafbb32a Fix issue with USB sending constant output reports. Only copy relevant output bytes for BT.
Related to issue #290.
2018-05-28 03:09:55 -05:00
Travis Nickles
f11095fb5e Merge branch 'jay' into udpserver 2018-05-24 14:40:15 -05:00
Travis Nickles
a6b9fb0f4e Re-added unneeded call.
.NET causes performance degradation without it
2018-05-07 01:59:11 -05:00
Travis Nickles
d4ba92b5db Merge branch 'jay' of https://github.com/jdfeng/DS4Windows into jdfeng-jay 2018-05-07 00:06:05 -05:00
Travis Nickles
2f526fa60d Remove unneeded call 2018-05-06 21:31:18 -05:00
Travis Nickles
d925452ed8 Initial commit with UdpServer change 2018-05-06 02:10:49 -05:00
Travis Nickles
1c1a3f747c Fixed timeout disconnect 2018-05-06 01:59:45 -05:00
Travis Nickles
3137983b9c Removed sending output report when charging status changes for SONYWA
Another Windows 7 only bug. Old workaround might not
be needed anymore due to recent changes.
Related to issue #262
2018-04-22 01:47:40 -05:00
jdfeng
565c7b7ea4 Add VID + PID for Hori PS4 Mini 2018-04-21 19:52:46 -07:00
Travis Nickles
bfdb81edd0 Trim USB output report generation. Only grab audio volume when output report data changes.
Possibly related to issue #261
2018-04-21 16:44:49 -05:00
Travis Nickles
87182d3b60 Make sure to use sync write for SONYWA 2018-04-16 05:20:48 -05:00
Travis Nickles
dad4606558 Use synchronous write operations for USB and SONYWA connections again
Threaded version caused random device disconnects on Windows 7.
Related to issue #244
2018-04-16 05:03:47 -05:00
Travis Nickles
a9348d1488 Send output report to SONYWA controller when charging status changes 2018-04-13 05:33:59 -05:00
Travis Nickles
33aef3a4c6 Change sync output report method to add extra lock for recent changes 2018-04-01 00:36:33 -05:00
Travis Nickles
a1d0836091 Tweaks to improve hotplug detection
Check status of first output report before adding
device to the list
2018-03-25 23:36:46 -05:00
Travis Nickles
0410a27f51 Only copy touchpad packet data when changed 2018-03-18 18:32:47 -05:00
Travis Nickles
ace46f1011 Make sure to use profile lightbar color when syncing controller to Sony adapter
Related to issue #238
2018-03-17 03:10:39 -05:00
Travis Nickles
1b85b9bf6d Make sure to start imu data copying from proper offset 2018-03-07 00:16:55 -06:00
Travis Nickles
c56f1a7235 Fix accel data copying 2018-03-06 23:54:37 -06:00
Travis Nickles
37bb576aa6 Use unsafe memory pointers for copying imu data 2018-03-06 23:20:26 -06:00
Travis Nickles
60847ee54e Minor tweak 2018-03-06 18:01:57 -06:00
Travis Nickles
cc4bc7f05c Use output thread for USB connections again 2018-03-06 17:41:16 -06:00
Travis Nickles
63688885cd Use unsafe memory pointers for BT output report 2018-03-06 17:16:46 -06:00
Travis Nickles
f3a019742d Use unsafe memory pointers for detecting output report changes 2018-03-06 17:01:18 -06:00
Travis Nickles
895539c787 Minor tweak 2018-03-06 16:21:24 -06:00
Travis Nickles
c228b4348c Removed use of rectangular array for CRC32
Now use one dimensional array instead
2018-03-06 11:47:24 -06:00
Travis Nickles
59dbe6f956 Comment out failed message for now 2018-03-05 18:14:50 -06:00
Travis Nickles
efaafeb235 More pointer usage in CRC32 routine 2018-03-05 17:13:27 -06:00
Travis Nickles
564df12b94 Give attribution to Crc32 project 2018-03-05 16:07:59 -06:00
Travis Nickles
92c7b50d6d Re-add delay on device disable 2018-03-05 15:53:40 -06:00
Travis Nickles
8be2f9f271 Use unsafe blocks in project
Memory pointer access is needed to improve performance
with basic input report copying as well as CRC32
validation
2018-03-05 08:57:30 -06:00
Travis Nickles
f5f6002cdc Removed another loop for known array size in CRC32 method 2018-03-05 05:52:59 -06:00
Travis Nickles
a8b6213c0c Minor tweak for CRC32 method 2018-03-05 02:25:39 -06:00
Travis Nickles
284acc128a Added CRC32 check when obtaining gyro calibration data 2018-03-04 22:43:49 -06:00
Travis Nickles
c7f7537f25 Experimental CRC32 validation
Needs more work but I don't want to lose progress made
so far. Related to issue #228.
2018-03-04 14:37:47 -06:00
Travis Nickles
531b79dcc3 Changed when delay is performed for exclusive mode routine
Keep an eye on this
2018-02-28 15:09:29 -06:00
Travis Nickles
fece01e9e5 Explicitly close HID device when stopping service
Do not wait for runtime to close the HID device
2018-02-21 12:46:08 -06:00
Travis Nickles
4c0bbb5bf8 Take off portion of device name that is susceptible to localization 2018-01-15 17:42:47 -06:00
Travis Nickles
be10ab29b2 Minor tweak 2018-01-15 01:12:12 -06:00
Travis Nickles
b9bc51e873 Changed headphone volume curve to more closely resemble control outside of program
Related to issue #168.
2018-01-15 00:06:28 -06:00
Travis Nickles
b71b3ec820 Comment out exception throw when device fails to disable
Seems to be necessary so DS4 does not get permanently disabled.
Experienced while running Broforce. Related to issue #172.
2018-01-10 15:27:39 -06:00
Travis Nickles
f906554743 Use proper delta time for trackball mode
It had been using the previous poll delta time instead
2018-01-03 03:55:40 -06:00
Travis Nickles
09e5d20bb0 Reuse Touch instances for DS4Touchpad rather than creating new instances 2017-12-22 02:31:14 -06:00
Travis Nickles
e6bab70de2 Break out of TouchUnchanged case more quickly 2017-12-14 20:54:32 -06:00
Travis Nickles
41fa8cac82 Use delegate method of grabbing struct reference
Might replace the delegate with a class method later
but this method works pretty well as is
2017-12-11 03:57:48 -06:00
Travis Nickles
05def00614 Add lock usage for USB again
The version without it seems a bit wonky
2017-12-11 00:33:38 -06:00
Travis Nickles
619b73d40b Clear up naming issue for IDE. Use only one output array for USB and SONYWA 2017-12-10 06:16:40 -06:00
Travis Nickles
567aa393ae Changes to how output reports are sent. Mainly affects USB and SONYWA 2017-12-10 05:09:15 -06:00
Travis Nickles
132d411b24 Use event callback to get audio endpoint volume 2017-12-10 02:05:56 -06:00
Travis Nickles
852a9fe524 Lower latency queue to hold 20 items 2017-12-07 17:18:57 -06:00
Travis Nickles
dd6e2edadf Minor tweak 2017-12-01 21:31:05 -06:00
Travis Nickles
12aedd3724 Minor change to sync output report 2017-11-21 03:29:46 -06:00
Travis Nickles
500c870647 Minor change in pending count 2017-11-18 15:01:00 -06:00
Travis Nickles
45c0b9945c Fix output report updating 2017-11-18 13:15:15 -06:00
Travis Nickles
0d10004624 Output thread tweaks 2017-11-15 19:57:58 -06:00
Travis Nickles
a894179c98 Restart pending output report count when a change is detected 2017-11-15 02:58:16 -06:00
Travis Nickles
9045d18092 Add additional lock to use when writing output reports 2017-11-15 02:14:20 -06:00