Commit Graph

293 Commits

Author SHA1 Message Date
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
Travis Nickles
508c2b2067 Rename new hotkey option. Some optimizations for Options form. 2017-04-26 14:51:15 -07:00
Travis Nickles
2a20350b6b Some minor changes 2017-04-25 20:07:02 -07:00
Travis Nickles
ea3b1401f0 Only update battery status for one controller instead of entire controller list
Event is also executed async now.
2017-04-25 02:24:14 -07:00
Travis Nickles
00b6c5e1ea Add new byte mapping and xy axis mapping methods 2017-04-24 07:16:42 -07:00
Travis Nickles
e34e8115ad Fix some button mapping issues. Style changes. Change runStartupPanel 2017-04-24 02:43:56 -07:00
Travis Nickles
ade55d3b9f Change methods to check for null thread objects
It looks like there are cases when the stop update
methods could be called before the thread objecs are
created
2017-04-22 19:46:50 -07:00
Travis Nickles
3e4a5c0562 Fixes for Quick Charge mode
Resolves issue #19.
2017-04-22 07:49:01 -07:00