Commit Graph

306 Commits

Author SHA1 Message Date
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
Travis Nickles
ecb271cfb1 Fixed readout of battery status
ds4drv showed that the method used before was not
correct
2017-04-22 07:00:12 -07:00
Travis Nickles
23ee6f9d8a Minor style changes and excess removed 2017-04-22 00:26:44 -07:00
Travis Nickles
52c5fde941 Some minor changes 2017-04-21 21:22:36 -07:00
Travis Nickles
9173ab72fe Cache control to state field information to speed up some methods 2017-04-21 02:48:13 -07:00
Travis Nickles
32cbd77708 Minor edits to improve readability 2017-04-20 20:09:08 -07:00
Travis Nickles
6c83ca2470 Calculate stick angles for each state change 2017-04-16 02:54:34 -07:00
Travis Nickles
92b4e2da24 Trim more property usage 2017-04-15 23:22:04 -07:00
Travis Nickles
beadb313ff Only access length property once in for loop 2017-04-11 19:26:08 -07:00
Travis Nickles
0f705e667e Remove unneeded warn field usage 2017-04-09 01:17:52 -07:00
Travis Nickles
da3efd2589 Fix idle disconnect for Sony Dongle connections
Related to issue #13
2017-04-08 16:13:56 -07:00
Travis Nickles
f050df5f81 Change input delay warning status depending on connection type.
No longer use a fixed interval
2017-04-07 08:59:15 -07:00
Travis Nickles
7ae8e0deb8 Allow idle disconnect for sony dongle 2017-04-06 20:24:16 -07:00
Travis Nickles
6ae80efad4 Make sure idle disconnect can work 2017-04-06 13:05:16 -07:00
Travis Nickles
a239f50192 Remove unnecessary timer and add some minor tweaks 2017-04-06 11:58:47 -07:00
Travis Nickles
a65dfa0624 Only attempt device removal on exit when using Sony dongle 2017-04-06 08:30:41 -07:00
Travis Nickles
51cbe22a90 Tweak disconnect routine 2017-04-06 01:19:12 -07:00
Travis Nickles
5c74a00d90 Allow disconnect routines to work with Sony Dongle.
The main routine was made by aspalmer.
2017-04-05 18:37:38 -07:00
Travis Nickles
bfbcc15df5 Detect the Sony Wireless Adaptor as its own connection type 2017-04-05 16:51:20 -07:00
Travis Nickles
a0cff7ba30 Fixed issue with an unreleased lock blocking device removal. Fixed chance for duplicate log entries for device removal.
Resolves issue #7.
2017-03-29 17:44:10 -07:00
Travis Nickles
a2fb603d72 Minor enhancements. Update changelog link. Add sleep period to reEnableDevice method. 2017-03-29 07:26:07 -07:00
Travis Nickles
a167132c0a Merge https://github.com/ondr3j/DS4Windows into ondr3j_audio 2017-03-29 02:12:37 -07:00
Travis Nickles
7d6e33ba2f Remove some property usage and minor improvements 2017-03-28 01:48:02 -07:00
Travis Nickles
d363257205 Use plain for loop instead of foreach.
There is a noticeable speed difference.
2017-03-27 08:19:10 -07:00
Travis Nickles
82c3d4beff Try getting around wait yet again 2017-03-25 01:29:25 -07:00
Travis Nickles
156b7103e6 Make ds4 threads background threads. Still trying to make output thread exit gracefully.
The switch to using background threads reduced input lag.
2017-03-24 08:06:01 -07:00
Travis Nickles
9d190fcaf7 Correct issue when two threads try to abort ds4Output thread simultaneously 2017-03-24 01:08:31 -07:00
Travis Nickles
4e33578686 Remove some property usage and use explicit getter methods instead.
This shouldn't have been necessary but testing with optimized
release builds has shown that the overhead of using properties
frequently introduces undesired input lag.
2017-03-23 19:32:33 -07:00
Travis Nickles
3e0e5bebfc Change interval used for warnings depending on protocol 2017-03-23 01:12:50 -07:00
Travis Nickles
bd73978204 More testing of threading changes. 2017-03-22 23:39:31 -07:00
Travis Nickles
d295c1af2a Change thread priority back to AboveNormal. Change how threads are killed. 2017-03-22 19:35:18 -07:00
Travis Nickles
7f1a7485a7 Rename static property 2017-03-22 02:41:04 -07:00
Travis Nickles
5dbc193351 Reduced input lag by implementing overlapped IO and changing threading 2017-03-22 00:52:54 -07:00
Travis Nickles
0dd442f813 Use Highest thread priority
It does improve input lag slightly with
no real impact on CPU usage
2017-03-20 15:17:43 -07:00
Travis Nickles
2b00244c62 Raise thread priority.
Using AboveNormal priority for now. Test Highest priority
at some point.
2017-03-19 07:09:57 -07:00
Travis Nickles
1f42e17996 Merge tracking branch 'lag_reduce' into jay 2017-03-19 00:45:28 -07:00
Travis Nickles
36cc2c5012 Add flags to reduce input lag 2017-03-09 16:07:17 -08:00
Travis Nickles
57da16278e Simplify interpreting dpad state 2017-02-18 02:58:44 -06:00
Ondrej Patrovic
2a0cc058e7 Fix disappearing audio with DS4 wireless dongle 2016-11-21 20:06:38 -05:00
Anders Fischer-Nielsen
02c0c6564b Added PID for new DS4 controller. 2016-10-05 18:18:59 +02:00
Jays2Kings
1bfc69ee37 Version 1.4.5
Added support for the New DS4 USB Adapater (Thanks to boganhobo and
Chamilsaan)
Implemented teokp's amazing fix for hide ds4 not working on the
anniversary update of Windows 10: when a controller fails to enter
exclusive mode, DS4Windows will ask for admin privilages to fix the
issue.
Now (near)unlimited Special Actions can be made from the previous limit
of 50
Special Action Xbox Game DVR is now no longer limited to Windows 10,
renamed multi action button: Assign a macro to single tap, double tap,
and holding down a button
Added option for White DS4Windows Icon in the notification tray (While
not merged from, thanks to tehmantra)
Added option to temporarily turn off DS4Windows when using a certain
program (togglable in the Auto Profiles Tab) (Same case as above but
thanks to dedChar to bring to light)
Fixed Options crashes in certain locales where decimal points are
repesented with commas, such as German (Thanks to kiliansch)
Added/Updated translations for many languauges, now including Japanese,
Slovenian, Hungarian, Greek, Finnish, Czech, Indonesian, and Ukrainian
2016-09-21 21:38:38 -04:00
Jays2Kings
fa639ba31c Version 1.4.321
Changed the Rainbow button to an actual button
For using the sixaxis as a mouse, changed none to Always on, also better
movement for the gyro when the sensitivity is lowered
Updated Hebrew, Chinese (Traditional), Itilian, Chinese (Simplified)
2015-12-13 16:30:54 -05:00
Jays2Kings
8d9f69db44 Version 1.4.3
Complete rehaul of the profile settings, bigger workspace to edit
controls, and all the settings are on the side now
Added option to change the lightbar color, regardless of the profile's
lightbar setting (useful for using one profile on the same controller).
to change click the colored button beside edit in the main tab
Can now set the Gyro as an 1:1 absolute mouse, in this mode the mouse
now moves as the controller is moved
Removed the experimental exclusive connection button if on the newest
Windows 10 build (1511/TH2)
Finally updated all the translations and added some new ones (such as
Chinese and Polish, the translations sheets have been merged to one so
it's easier for me to update
2015-11-28 00:47:26 -05:00
jays2kings
86079b029e Version 1.4.266
Flash Lightbar when at high latency now has the option to choose what
you decide is high latency
Show Notifications now has the option to only show warnings, such as
when a controller cannot be grabbed exclusively
Speaking of bad news for Windows 10 users: Hide DS4 has now been
disabled, until i can figure out why this is, it will be disabled, this
means some games that rely on this may not work properly or at all,
sorry about that
As for good news for Windows 10, did you know you can press Windows + G
to open a game bar which can record games. For Windows 10 users, there's
a new special action: Xbox Game DVR. Pick a trigger (only one button)
and tapping/holding/or double tapping does various things, such as
start/stop recording, save an ongoing recording, take a screenshot (via
the xbox app's option or your own hotkey ie form steam), or just open
the gamebar
Much of the code has been updated with c# 6.0
Added manifest so DS4Windows can notice Windows 10 and high DPIs, also
reorganized files
2015-07-30 23:34:22 -04:00