Commit Graph

300 Commits

Author SHA1 Message Date
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
Travis Nickles
2f6498a37b Remove unused lock statement 2017-11-11 22:52:17 -06:00
Yuki-nyan
a9eefa9079 Resolved merge conflict by implementing Ryochan7's changes 2017-11-05 15:20:10 +00:00
Travis Nickles
bf11a6d297 Change device enumeration routine 2017-10-28 20:34:04 -05:00
Travis Nickles
c75cb3ba7b Added Razer Raiju VID and PID combination. Moved arrays.
Related to issue #136.
2017-10-28 20:03:55 -05:00
Travis Nickles
076b1d0839 Use array to specify compatible vids 2017-10-28 19:58:23 -05:00
Travis Nickles
677191e8b4 Change to keep lightbar from sticking in some situations
Hopefully resolves issue #126.
2017-10-27 02:09:42 -05:00
Travis Nickles
e07f902751 Only load profiles as needed rather than at program startup 2017-10-19 03:21:33 -05:00
Travis Nickles
036cfcb34d Use refresh calibration method when creating DS4Device instance 2017-10-11 18:57:11 -05:00
Travis Nickles
0df84e1fba Refresh calibration data when pairing to or disconnecting a device from the Sony dongle 2017-10-11 18:55:15 -05:00
Travis Nickles
3a09132805 Fix reading calibration report values. Take connection type into account 2017-10-11 18:48:52 -05:00
Travis Nickles
d1e0be33de Fix calibration report id for BT 2017-10-11 18:24:14 -05:00
Travis Nickles
320c3ee6f6 Make sure to add device serial to HashSet when DS4Device instance is created
Make sure USB charging does not create second DS4Device instance
2017-10-11 18:07:34 -05:00
Travis Nickles
73450834bc Remove unused field 2017-10-10 21:42:49 -05:00
Travis Nickles
b1cd3a76e9 First acceptable version of gyro calibration support
Related to issue #103.
2017-10-10 17:45:42 -05:00
Travis Nickles
957ad3b1d5 Tweak updating of pending output report 2017-10-07 00:55:14 -05:00
Travis Nickles
16f6f5be32 Change main device list to be dependent on device path rather than mac address
Should resolve issue #71.
2017-10-05 00:24:53 -05:00
Travis Nickles
22912dff50 Add headphone volume support for DS4 v2 controllers 2017-10-02 03:16:57 -05:00
Travis Nickles
39d0579f09 Change SixAxis routines
Hopefully I won't regret this later
2017-09-20 11:34:53 -05:00
Travis Nickles
ec3ebb73b5 Minor tweaks 2017-09-05 03:34:49 -05:00
Travis Nickles
699436565c Reduce latency queue capacity 2017-08-22 05:20:23 -05:00
Travis Nickles
5df34b8378 Trim event handler method. Add name for timeout threads.
Decent performance boost with this change
2017-08-21 05:25:18 -05:00
Travis Nickles
dce5c811f2 Raise timeout interval 2017-08-20 22:02:49 -05:00
Travis Nickles
684c8a73b2 Minor tweak 2017-08-15 21:27:11 -05:00
Travis Nickles
8f78d5850e Adding new gyro values
Not sure if I will ever use them
2017-08-10 02:45:11 -05:00
Travis Nickles
bd379e5c7e Add new accel fields 2017-08-09 03:24:24 -05:00
Travis Nickles
2ffc51c8e3 Changed variable name to better show current intent 2017-08-08 22:07:52 -05:00
Travis Nickles
8dca930400 Create separate output accel values 2017-08-08 20:19:17 -05:00
Travis Nickles
315797fe53 Minor changes to exclusive mode routine 2017-08-04 06:10:48 -05:00
Travis Nickles
f042120ede Add wait period after device is enabled.
Seems to be needed for exclusive mode to behave better
with recent Windows 10 update
2017-08-01 02:42:16 -05:00
Travis Nickles
473958ba1a Correct touchpad X coordinate. Change DS4State. 2017-07-27 05:41:44 -05:00
Travis Nickles
60a21a9fe3 Minor changes 2017-07-26 21:38:34 -05:00
Travis Nickles
436d0ed1ef No longer make unnecessary state object copies 2017-07-26 06:13:18 -05:00
Travis Nickles
8250f9be5c Attempt to use timestamp from ds4. Preserve changes. 2017-07-26 04:30:50 -05:00
Yuki-nyan
86d311b72a Merge pull request #5 from Ryochan7/jay
Update to Version 1.4.86
2017-07-21 19:35:49 +01:00
Travis Nickles
3dcd4d94b9 Added clamping for rotation. Fixed bug with identical dict keys 2017-07-20 04:25:15 -05:00
Travis Nickles
1b0ddfd910 Minor changes 2017-07-20 00:57:14 -05:00
Travis Nickles
8eb9d6391f Some optimizations 2017-07-18 15:37:01 -05:00
Travis Nickles
a335decc90 Move accel dead zone calculations 2017-07-18 14:21:03 -05:00
Travis Nickles
9972e85e13 More minor gyro changes 2017-07-16 19:42:43 -05:00
Travis Nickles
dba2b1bbb3 Tweaks to how imu data is used 2017-07-16 07:11:58 -05:00
Travis Nickles
887a4fbdbd Make imu data part of the DS4State 2017-07-16 03:30:49 -05:00
Travis Nickles
817505a989 Take poll time into account for gyro mouse 2017-07-16 02:22:21 -05:00
Travis Nickles
10621b8c69 Change trackbar value for gyro 2017-07-14 22:41:00 -05:00
Travis Nickles
56fff28f65 Try to correct some problems with imu data usage 2017-07-13 08:17:00 -05:00
Travis Nickles
c5dd97ebe5 Preserve minor optimizations before next test 2017-07-13 07:27:25 -05:00
Travis Nickles
6f069482a2 Minor optimizations 2017-07-12 08:04:37 -05:00
Yuki-nyan
48545207b4 Merge pull request #4 from Ryochan7/jay
Update to Version 1.4.84
2017-07-10 00:15:46 +01:00
Travis Nickles
089383b64e Simple comment update 2017-07-02 16:59:35 -07:00
Travis Nickles
eab3cdeaad Change output report for USB and Sony 2017-07-02 16:58:30 -07:00
Travis Nickles
0cf1956566 Change output report for BT 2017-07-02 10:14:15 -07:00
Travis Nickles
4ae72cfdb2 Removed more property usage 2017-07-02 08:29:55 -07:00
Travis Nickles
ee6a7fafd4 Improve response time for BT connections 2017-07-02 02:11:16 -07:00
Travis Nickles
ea69d69a6f Improve response time when using USB and Sony dongle 2017-07-02 01:52:55 -07:00
Travis Nickles
d74820dbf5 Add rotation routine for LS and RS 2017-06-30 01:42:19 -07:00
Travis Nickles
6c21572249 Minor changes 2017-06-29 06:16:02 -07:00
Travis Nickles
484337f42f Add gyro mouse smoothing routine 2017-06-28 21:42:16 -07:00
Travis Nickles
5f907de036 Expose full accel values for future experiments 2017-06-27 03:16:10 -07:00
Travis Nickles
4dfb2cf0db Minor performance tweaks for input thread 2017-06-24 19:10:09 -07:00
Travis Nickles
a4b540d62c Change variable name 2017-06-22 22:30:22 -07:00
Travis Nickles
19afe15937 Make lastActive field matter for USB connections again. Related to issue #45. 2017-06-22 22:14:58 -07:00
Travis Nickles
44aef8b90d Fixed distinction between one finger touchpad touch and two finger touch
Touch 2 being active does not necessarily mean two fingers
are currently on the touchpad
2017-06-22 03:24:51 -07:00
Travis Nickles
2d58034415 Allow gyro button triggers to disable gyro 2017-06-22 00:43:44 -07:00
Travis Nickles
bf774ba6f7 Correct some variables 2017-06-21 18:11:14 -07:00
Travis Nickles
f4302a752d Initial attempt at fixing gyro support. Related to issue #48.
It will be a mess for the forseeable future
2017-06-21 18:07:21 -07:00
Travis Nickles
328b2dc14c Attempt to smooth out mouse cursor for analog sticks 2017-06-19 08:50:28 -07:00
Travis Nickles
fc929d963e Fix mic device and volume detection 2017-06-17 09:06:33 -07:00
Travis Nickles
39930cf2e8 Small change
Hating the JIT compiler right now
2017-06-17 07:13:39 -07:00
Travis Nickles
712f470b9e Change scope of some variables 2017-06-14 07:42:29 -07:00
Travis Nickles
2cf33e1bba Test hotplug changes. Change mouse remainder cutoff 2017-06-11 08:15:45 -07:00
Travis Nickles
1fc77c5537 Take current stick direction into account for mouse offset 2017-06-10 17:48:34 -07:00
Travis Nickles
ab9c3abe05 Move Quick Charge check to input thread 2017-06-09 23:45:19 -07:00
Travis Nickles
63dddf4373 Changes to fix Quick Charge option 2017-06-08 13:52:47 -07:00
Travis Nickles
cda84e6499 Keep reference to hidden USB device while using BT and charging
Ensures that DS4 USB HID device is not seen by other applications
2017-06-07 17:52:09 -07:00
Travis Nickles
ce0ac4f04a Make sure multi-action button can work with touchpad area button 2017-06-05 01:31:29 -07:00
Travis Nickles
e207114339 Test using Queue instead of List for Latency stats
The Queue version is faster
2017-06-04 19:14:44 -07:00
Travis Nickles
6d4527a4c6 Use SpinWait instead of Sleep for Exclusive mode routine 2017-06-03 15:16:59 -07:00
Travis Nickles
f61cd593c5 Add timeout test to allow fallback disconnect method to work 2017-05-31 20:37:53 -07:00
Travis Nickles
05fd7316cf Keep small snippet for future reference 2017-05-26 20:14:48 -07:00
Travis Nickles
de8f1ae354 Change order of syncchange invoking 2017-05-26 19:03:35 -07:00
Travis Nickles
312d3b433e Change variable name and revert 2017-05-25 03:01:07 -07:00
Travis Nickles
c7a840194c Fix check for sync byte 2017-05-25 02:56:36 -07:00
Travis Nickles
5a0fb09291 Update serial for Sony dongle connection upon sync event
Related to issue #44.
2017-05-25 02:51:28 -07:00
Travis Nickles
1e2c57a08a Minor optimizations 2017-05-18 17:51:01 -07:00
Travis Nickles
2b741533bb Minor optimizations 2017-05-17 01:59:09 -07:00
Travis Nickles
ac23921978 Allow BT poll rate to be specified. Use thread action queue now. Some bug fixes 2017-05-16 23:02:12 -07:00
Travis Nickles
9b78668935 Test new action invocation on input threads.
Only used to transfer idle disconnect time but
it might be more useful in the future.
2017-05-13 19:31:39 -07:00
Travis Nickles
bca7850a36 Stop using Async methods for FileStream instance. Reduce CPU usage. Initial thread action queue.
No longer uses an application set timeout but it looks like
a timeout will be handled by the system
2017-05-13 15:01:43 -07:00
Yuki-nyan
2c2a7c1f2c Merge pull request #3 from Ryochan7/jay
Update to Version 1.4.70
2017-05-12 23:21:44 +01:00
Travis Nickles
edeaa30b59 Code clean up. Reset xinput mapping for more bound actions. 2017-05-12 07:48:58 -07:00
Yuki-nyan
e3f1d9dc1d Nacon Revolution Pro support 2017-05-12 00:57:02 +01:00
Travis Nickles
f3c9e08398 Minor changes 2017-05-11 08:13:51 -07:00
Travis Nickles
9e512deaeb Change timer usage for main form 2017-05-09 07:24:46 -07:00
Travis Nickles
6074445c03 Attempt at better clean up when removing devices
Use SynchronizationContext to run some tasks in main thread
as opposed to input thread
2017-05-09 03:11:50 -07:00
Travis Nickles
c3fcfbfddf Use getter instead of property to grab volume levels 2017-05-08 03:07:58 -07:00
Travis Nickles
907fed2f1d Fix output report so microphone does not get muted.
Related to issue #20.
2017-05-08 03:06:06 -07:00
Travis Nickles
3f190bb4bb Some file stream changes 2017-05-04 02:02:38 -07:00
Travis Nickles
272eba4432 Only read one touch packet 2017-05-02 06:29:46 -07:00
Travis Nickles
400ba4f293 Fix process starting issue when activating exclusive mode
Only one hotplug request should be processed at a time now.
Hopefully this fixes issues with devices staying disabled
2017-05-01 11:28:07 -07:00
Travis Nickles
4ce52da612 Test minor change of usb device removal 2017-05-01 03:40:37 -07:00
Travis Nickles
d35ba4db98 Add lock for DisconnectDongle 2017-05-01 02:50:02 -07:00
Travis Nickles
d37e0709c0 More log messages. Tweak DisconnectBT. Other minor changes. 2017-05-01 02:29:19 -07:00
Travis Nickles
3f68c9bcb8 Removed usage of some unused namespaces
The only real import one is remove System.Windows.Forms
for non GUI items
2017-04-30 06:42:09 -07:00
Travis Nickles
6716291a95 Found issue with IEnumerable in this case. Use temp list instead. 2017-04-29 21:37:28 -07:00
Travis Nickles
83c7bb7740 Minor optimization for device refreshing and profile switching 2017-04-29 01:19:45 -07:00
Travis Nickles
ca2074d76f Version 1.4.65 2017-04-28 11:57:33 -07:00
Travis Nickles
44501c24de Revert back to old disconnect bluetooth behavior 2017-04-26 18:39:33 -07:00