Commit Graph

675 Commits

Author SHA1 Message Date
mika-n
79f6b29d50 Nowadays all output axies have "Enhanced Precision" output curve option in GUI dropdown list. Added EnchPrecision curveOutput==1 IF-THEN-ELSE block to l2/r2/sx/sz curve output code logic and curveOutput=6 is the new custom option in all axies. 2019-08-12 00:03:59 +03:00
mika-n
45bfd2043a Added new GUI options to "macro special action" screen (run on release, repeat, synchronized run, keep key state). Added tooltip explanation texts to these macro options. 2019-08-11 21:54:54 +03:00
mika-n
6815c53fde Added "run on key release" and "run synchronized" and "repeat while held" and "keep key state" support for macro special actions 2019-08-11 01:01:57 +03:00
Travis Nickles
d8421e02b9 Re-add old curve routines 2019-08-07 01:59:02 -05:00
mika-n
f59dce057a UseDInputOnly mode supports VJoy output axis of steering wheel emulation mode. VJoy output works even without virtual xbox360 or dualshock4 devices. 2019-07-27 23:34:38 +03:00
mika-n
f85e0d413a Pre-defined output curves initialized using a pre-fixed formula. Now only the "Custom" output curve goes through bezier curve logic, but at runtime all output curve options are mapped using a lookup table (better performance and easier code maintenance). 2019-07-27 22:23:48 +03:00
Travis Nickles
4ffda750f7 Use old routines for preset curves 2019-07-25 14:54:39 -05:00
mika-n
13150015f0 Custom curve GUI tweaks. 2019-07-19 01:49:22 +03:00
mika-n
7bb8d02c38 Changed EnhancedPrecision output curve option to use the original hard-coded axis ranges (as it was in V1.7.12 and earlier versions). However, mapping for this old curve goes through a lookup table nowadays as with true bezier curves. 2019-07-15 16:08:31 +03:00
mika-n
7015a4d1b9 Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay-bezierCurveOutput 2019-07-14 22:31:53 +03:00
Travis Nickles
f00a42bedd Slow down mouse wheel scrolling for analog stick 2019-07-14 02:29:38 -05:00
mika-n
22866d6a5c New customizable output curve functionality. User can create any kind of output curve via a bezier curve editor (external HTML web app in BezierCurveEditor folder). 2019-07-07 00:47:54 +03:00
Travis Nickles
1c869647ab Use pre-allocated buffer in UDP server 2019-07-02 02:06:32 -05:00
Travis Nickles
dfaecd474f Group trigger mod profile properties 2019-06-30 20:59:51 -05:00
Travis Nickles
a6ed8240df Group together stick zone modifiers 2019-06-30 00:40:24 -05:00
Travis Nickles
934947e3dc Lowered enhanced precision curves 2019-06-26 17:20:49 -05:00
Travis Nickles
157bb67951 Group square stick profile properties into a class 2019-06-26 01:35:41 -05:00
Kamilczak020
4b901b3489 Implemented square stick roundness selectability 2019-06-25 23:42:08 +02:00
Travis Nickles
132dce7845 Loosen enhanced precision curves 2019-06-18 01:46:51 -05:00
Travis Nickles
ddb4ca96ba Added easeout cubic curve option 2019-06-09 02:15:00 -05:00
mika-n
5767a1866d UPD listen host address or IP number option in UDP server settings. By default UDP server listens onlhy 127.0.0.1 loopback interface, so connections work only within a host computer. This new UDPServerListenAddress option allows to use specific IP or 0.0.0.0 (=all interfaces) as listen address to enable remote UDP connections. 2019-05-27 01:07:17 +03:00
Travis Nickles
d227e087d9 Retrieve ViGEMBus driver version string 2019-05-12 00:33:43 -05:00
mika-n
02f66981a7 Steering wheel emulation for the new dualshock4 controller option. Fine tuned anti-deadzone calculation for DS4 output controller. 2019-05-09 23:21:31 +03:00
mika-n
8a561d1cde Steering wheel emulation for the new dualshock4 controller output option. 2019-05-09 21:32:29 +03:00
Travis Nickles
e0b1b273fc Minor tweak 2019-05-03 17:50:06 -05:00
Travis Nickles
b73f706ec2 Enforce default X360 in more places
Related to issue #683
2019-05-02 20:18:59 -05:00
Travis Nickles
f4c05533fc Migrate status of TouchButton
Related to issue #670
2019-04-29 21:26:24 -05:00
Travis Nickles
8797892103 Finally add a note about Visual C++ 2017 in app 2019-04-29 01:30:08 -05:00
Travis Nickles
90045f7f50 Fixed Up-Left DPad direction for DS4 output device 2019-04-28 22:05:54 -05:00
Travis Nickles
9ffe0daa78 Merge branch 'jay' into ds4emulate 2019-04-24 03:19:58 -05:00
Travis Nickles
62258a3711 Link delegates to class instance rather than linking to interface
A decent boost
2019-04-24 03:19:06 -05:00
Travis Nickles
49165a4bac Change another unplug message 2019-04-24 01:36:36 -05:00
Travis Nickles
8a6c05bce7 Added device type strings to output devices 2019-04-23 21:53:41 -05:00
Travis Nickles
ab8dbd29f9 Merge branch 'jay' into ds4emulate 2019-04-23 21:07:19 -05:00
Travis Nickles
5da3db4b2a Merge branch 'jay' of https://github.com/mika-n/DS4Windows into mika-n-jay 2019-04-23 20:43:39 -05:00
Travis Nickles
206e1649cf Merge branch 'jay' into ds4emulate 2019-04-23 14:44:17 -05:00
Travis Nickles
0cce1db3a9 Reset some gyro mouse flags as a safeguard when changing toggle 2019-04-23 14:43:45 -05:00
mika-n
456145cf8e Fixed a bug described in #664 issue where gyro mouse doesn't get correct properties (for example toggle option) right after Startup or Hotplug LoadProfile calls. The mouse object was created after LoadProfile function even when LoadProfile function tries to set few properties of that mouse object. 2019-04-23 12:32:12 +03:00
mika-n
4f87d24ee3 Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2019-04-23 10:43:14 +03:00
mika-n
c168dabded ActionLoadProfile: Support for automatically untriggered (=unloaded) profiles when a regular action keys are released. LoadProfile special action has a new "automatically unload when a regular trigger released" option. This is sort of like "shift modifier for the whole profile" functionality. 2019-04-23 03:39:44 +03:00
Travis Nickles
27fc7f07a2 Merge branch 'jay' into ds4emulate 2019-04-22 18:54:15 -05:00
Travis Nickles
ee5ff50e79 Changed ViGEm Bus Driver check
Related to issue #667
2019-04-22 18:51:21 -05:00
Travis Nickles
d59cc370db Merge branch 'jay' into ds4emulate 2019-04-21 22:49:43 -05:00
Travis Nickles
5ae0c1ea5c Check for newer ViGEmBus device 2019-04-21 21:40:29 -05:00
Travis Nickles
6c72566e36 Merge branch 'jay' into ds4emulate
# Conflicts:
#	DS4Windows/DS4Forms/Options.resx
2019-04-21 02:07:28 -05:00
Travis Nickles
61a35ce328 Merge branch 'customSteamFolder' of https://github.com/Sander0542/DS4Windows into Sander0542-customSteamFolder 2019-04-21 01:10:02 -05:00
Travis Nickles
d59a11f36a Raised sixaxis dead zones. Updated TODO file 2019-04-21 00:13:09 -05:00
Sander Jochems
cffc167be6
Create two new properties (ScpUtil.cs) 2019-04-20 17:46:45 +02:00
Travis Nickles
0b345b8474 Update action string aliases in the GUI 2019-04-18 22:56:18 -05:00
Travis Nickles
1b58265c28 Added profile setting for controller type 2019-04-18 01:12:10 -05:00
Travis Nickles
dc5e34f1be Test DS4 emulation 2019-04-17 21:29:16 -05:00
Travis Nickles
28bc7a85b1 Use ref locals to curb array access for KB+M routines
Ref local reassignment is used as well. C# 7.3 is now
the minimum required version of C# that can be used as a
target.
2019-04-16 16:37:11 -05:00
Travis Nickles
480c93be0f Use wrapper method for MapVirtualKey for scan code option
Related to issue #655
2019-04-13 11:58:40 -05:00
Travis Nickles
8cab1f94b2 Tweak sensitivity axis scaling to reach max values
Related to issue #654
2019-04-11 18:01:06 -05:00
mika-n
1e82db0f9e Allow LoadProfile action key to be used without unload trigger in a loadProfile special action definition and without temp profile lockdown. This way loadProfile special actions can be linked to load unlimited number of profiles without unloading (=untrigger) the current temp profile first. 2019-04-07 14:33:42 +03:00
mika-n
746587ebbd Brute force timer fix to the "stuck rumble motor" bug in ViGem virtual gamepad driver. This rumble autostop timer should be removed when a signed ViGem driver has a fix to this issue. Existing autostop timer is 2 secs, so this assumes that game keeps on updating a rumble values at least once in 2 secs. If rumble-0 event is lost or game doesn't send a new rumble value within 2 secs then rumble motor is automagically stopped (=assumed it is stuck). Usually games keep on sending rumble values as long an effect needs it, so this autostop timer works reasonable good in most games. 2019-04-06 15:04:21 +03:00
Travis Nickles
4ec3cd1162 Minor string change 2019-04-03 20:58:32 -05:00
Travis Nickles
cba6a09f68 Disable force feedback for now.
Related to issue #616
2019-04-03 20:39:30 -05:00
Travis Nickles
2e62bad0f6 Revert to older ViGEm client API 2019-04-03 18:12:21 -05:00
Travis Nickles
d9873a7232 Added X360 related enums 2019-04-03 17:35:10 -05:00
Travis Nickles
aff365b28f Updated code to use newer ViGEm.NET client 2019-04-03 16:47:03 -05:00
Travis Nickles
839f03d538 Change to use method rather than property 2019-04-02 01:01:04 -05:00
Travis Nickles
79a90b828c Use runtime option for toggling touchpad.
Related to issue #637.
2019-04-02 00:54:29 -05:00
Travis Nickles
19854a00cf Removed set rumble to zero call for touchpad button up event
Related to issue #615
2019-03-22 16:39:44 -05:00
Travis Nickles
2c4ce7d672 Corrected force feedback motor values on SONYWA sync change 2019-03-22 15:13:18 -05:00
Travis Nickles
36a8382fdd Use SetDevRumble to avoid array checks 2019-03-21 20:56:49 -05:00
Travis Nickles
9614727566 Add feedback received handler before connecting virtual controller 2019-03-21 20:32:17 -05:00
Travis Nickles
d434834d3d Corrected force feedback motor values
Fixes issue #621
2019-03-21 20:25:35 -05:00
Travis Nickles
3e08da9705 Removed old ScpVBus related classes 2019-03-19 02:32:49 -05:00
Travis Nickles
acfd268397 Migrate 360 steering wheel code to use ViGEmBus 2019-03-19 02:18:50 -05:00
Travis Nickles
5a6859556c Removed old xinput ports setting
No longer relevant with ViGEmBus
2019-03-19 01:52:18 -05:00
Travis Nickles
575f157420 Changed method name to specify ViGEmBus 2019-03-19 01:33:41 -05:00
Travis Nickles
1c671e694f Changed branding in some old messages 2019-03-19 01:30:54 -05:00
Travis Nickles
22e212999d Merge branch 'jay' into vigem-udpserver 2019-03-17 21:18:59 -05:00
Travis Nickles
27a68196e4 Deprecate old mouse acceleration option. Make new default value false 2019-03-17 01:28:16 -05:00
Travis Nickles
489a36be00 Merge branch 'jay' into vigem-udpserver 2019-03-12 18:55:35 -05:00
Travis Nickles
a7192d2fbf Force Normal IO and Page Priority
More useful when run as Task but it seems to help normal
runs as well. Related to issue #487.
2019-03-12 16:34:24 -05:00
Travis Nickles
695d9b3e31 Raise SocketAsyncEventArgs buffer for UDP server
Related to issue #602
2019-03-11 12:48:16 -05:00
Travis Nickles
76b31245f8 Default use controller for mapping option to false
This has probably caused issues for other people
2019-03-11 11:54:55 -05:00
Travis Nickles
0ea8cef46e Merge branch 'jay' into vigem-udpserver 2019-03-10 09:33:00 -05:00
Travis Nickles
3bd0e44dc5 Removed unneeded device check 2019-03-08 17:09:36 -06:00
Travis Nickles
f1a10fb5ec Allow flash at to work at 0% battery
Related to issue #599
2019-03-08 14:29:58 -06:00
Travis Nickles
ef01b4d3b3 Altered controller readings to better represent mapped state
Related to issue #587.
2019-03-07 01:06:55 -06:00
Travis Nickles
923f487f39 Added dead check to skip some processes 2019-03-06 02:11:55 -06:00
Travis Nickles
8d4d4b0758 Fixed auto profile use for hotplugging
Related to issue #578
2019-03-05 05:14:39 -06:00
Travis Nickles
1dbf9abb02 Implemented square stick functionality
Related to issue #341.
2019-03-04 17:21:58 -06:00
Travis Nickles
6533585a07 Make sure to stop USB controller while suspending
Related to issue #595
2019-03-03 19:27:57 -06:00
Travis Nickles
425b1dd47a Change haptic changing routine to skip always searching for existing device 2019-03-03 00:35:17 -06:00
Travis Nickles
a4d7372e7b Do not reset custom led setting while switching profiles
Related to issue #596
2019-03-02 05:42:49 -06:00
Travis Nickles
c575b3b525 Merge branch 'jay' into vigem-udpserver
# Conflicts:
#	DS4Windows/DS4Control/ScpUtil.cs
2019-02-28 04:24:03 -06:00
Travis Nickles
231b418d4c Merge branch 'jay' of https://github.com/mika-n/DS4Windows into mika-n-jay 2019-02-27 01:48:27 -06:00
Travis Nickles
d7d593c997 Use implicit extra dead zones for special actions 2019-02-26 04:13:13 -06:00
mika-n
9cbd4d8a42 Updated Finnish resources.fi.resx translation (added missing translations). 2019-02-25 13:35:22 +02:00
mika-n
7026f8b1c4 SASteeringWheelEmulation: Improved deadzone handling (smooth range instead of just dead gap clipping). Fixed a bug in >360 turn range calculations. Small performance improvements. 2019-02-25 13:29:05 +02:00
Travis Nickles
68f8232441 Removed more boxing 2019-02-24 17:11:52 -06:00
Travis Nickles
2497ced5d5 Change main report routine to use custom delegate.
Remove the need to box and unbox data every gamepad poll.
Seems to help with performance.
2019-02-24 15:03:12 -06:00
mika-n
668ecafe6c Check synchronized state of controller before trying to load calibation values (SonyWA connected devices could be in non-sync state without a valid controller MAC address) 2019-02-24 00:27:48 +02:00
Travis Nickles
afea15f38f Output report len is constant
No need to pull from property every poll
2019-02-22 01:51:54 -06:00
mika-n
e70aa452e3 removed unnecessary using System.Draw reference. 2019-02-19 15:29:33 +02:00
mika-n
48bd457d66 merge 2019-02-19 15:19:45 +02:00
mika-n
4b0134faf9 merge 2019-02-19 15:19:10 +02:00
mika-n
7da6b3434a Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2019-02-19 15:09:00 +02:00
mika-n
8d087b01ff merge conflicts with base branch 2019-02-19 15:00:17 +02:00
Travis Nickles
a8c722d604 Replace old lock with ReaderWriterLockSlim instance 2019-02-19 04:24:52 -06:00
mika-n
27dbab06c5 Deadzone and anti-deadzone handling (the first rugged version, not perfect yet) and small performance improvements here and there. 2019-02-19 11:10:16 +02:00
Travis Nickles
40278c9d1b Use enumerator for settings iteration 2019-02-16 15:49:36 -06:00
Travis Nickles
a9e7a3cb5b More enumerator usage 2019-02-16 02:50:53 -06:00
Travis Nickles
61a5ab07ea Use enumeartor for KeyCollection as well 2019-02-16 02:25:54 -06:00
Travis Nickles
cd6742cf56 Found faster way to iterate over a ValueCollection 2019-02-16 02:16:56 -06:00
Travis Nickles
50109282f4 Added unchecked region 2019-02-15 21:58:00 -06:00
Travis Nickles
5b19dc76cd Re-added extra default axis mapping pass
Related to issue #579
2019-02-15 18:04:09 -06:00
Travis Nickles
6098c91e29 Use ref for more color struct routines 2019-02-12 01:31:18 -06:00
Travis Nickles
ce0ac67dcd Remove some struct copying from lightbar routine 2019-02-11 23:51:26 -06:00
Travis Nickles
42b75c717a Added unchecked blocks for populating field mapping arrays
Seems to help a lot
2019-02-09 21:33:58 -06:00
Travis Nickles
7631080d87 Add const variables to skip type casting 2019-02-09 11:30:06 -06:00
Travis Nickles
fc40e00846 Only take active binding into account for multiple binds. Fixes ATS profile. 2019-02-09 11:06:31 -06:00
Travis Nickles
49c7ee35cf Make remapping to xinput actions a two pass process again
Related to issue #570
2019-02-08 21:04:08 -06:00
Travis Nickles
e64c7f0455 Fixed double tap interval issue with Multi-Action Button special action
Related to issue #556
2019-02-07 22:56:07 -06:00
Travis Nickles
8c6cfa4c13 Fixed another action getter 2019-02-07 21:00:36 -06:00
Travis Nickles
3dd88e481c Fixed issue with xinput unplug routine on device removal
Related to issue #554
2019-02-07 16:40:24 -06:00
Travis Nickles
ce87d8c212 Added toggle option for Gyro Mouse activation
Not sure about this feature tbh. Related to issue #464.
2019-02-06 21:42:34 -06:00
Travis Nickles
09103dcea8 Use input field mapping instead of output field mapping for refactor 2019-02-01 05:08:53 -06:00
Travis Nickles
dd96beafbe Purged old state mapping code that required dictionary object 2019-01-31 16:19:08 -06:00
Travis Nickles
ff870230a6 Implemented user defined gyro mouse dead zone
Related to issue #338.
2019-01-31 10:59:00 -06:00
Travis Nickles
4a7e233bd1 Fixed bad refactor
Fixes issue #561.
2019-01-31 00:50:37 -06:00
Travis Nickles
7a35ca19cb Fixed sixaxis easeout quad 2019-01-29 22:11:01 -06:00
Travis Nickles
70909bdaa9 Added easeout quad curve option for other axes 2019-01-29 21:50:29 -06:00
Travis Nickles
63f7dcfdce Added easeout quad curves for LS and RS 2019-01-29 21:19:25 -06:00
Travis Nickles
bdea569582 Merge branch 'jay' into vigem-udpserver
# Conflicts:
#	DS4Windows/DS4Control/ScpUtil.cs
2019-01-26 21:34:43 -06:00
Travis Nickles
3fd9c4c612 Merge branch 'jay' into hidguardpropexe 2019-01-25 10:00:53 -06:00
Travis Nickles
0d89170d9c Minor tweaks 2019-01-24 06:20:55 -06:00
Travis Nickles
1a6327ecdc Tweaked a couple of axis midpoint methods. Removed unused method. 2019-01-24 04:54:40 -06:00
Travis Nickles
1f9cf16397 Minor control search optimization 2019-01-24 03:38:21 -06:00
Travis Nickles
719d6a0482 Merge branch 'jay' into vigem-udpserver 2019-01-22 18:05:25 -06:00
Travis Nickles
dc403100f1 Changed another portion to use 128 as stick axis midpoint 2019-01-22 18:04:54 -06:00
Travis Nickles
bf3f10d0ae Apply proposed changes for HG v.1 support 2019-01-18 15:38:13 -06:00
Travis Nickles
f37ac07a22 Merge branch 'jay' into vigem-udpserver 2019-01-13 19:02:22 -06:00
Travis Nickles
5ec6bcb11a Increased mouse stick offset value
Increasing it seems viable now
2019-01-13 15:06:26 -06:00
Travis Nickles
a8a55b46dc Start using 128 as proper axis midpoint. Changed some mapping routines.
Helps with mouse cursor in Civ 4
2019-01-13 13:32:38 -06:00
mika-n
13607ebc7c Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2019-01-13 21:26:50 +02:00
mika-n
abadfb137b Fine tuning vJoy output feeder 2019-01-13 21:25:42 +02:00
Travis Nickles
619cbbf53a Merge branch 'jay' into vigem-udpserver 2019-01-11 16:08:19 -06:00
Travis Nickles
2c471e6eff Change how haptic state changes happen 2019-01-10 18:15:14 -06:00
Travis Nickles
9dc23ebfc4 Added log notifications when using Load Profile special action
It now seems doable speed wise. Related to issue #540.
2019-01-07 19:35:30 -06:00
mika-n
853b1ac650 Merge branch 'jay' of https://github.com/Ryochan7/DS4Windows into jay 2019-01-02 21:45:41 +02:00
mika-n
5b49a8ed47 SA steering wheel emulation can now feed VJoy virtual joystick device (analog axies there). This leaves all original X360/DS4 analog axies for other purposes. Useful in games which support mapping controls to more than one controller (for example EurotruckSimulator/AmericalTruckSimulator). 2019-01-02 21:44:15 +02:00
Travis Nickles
23a25bc504 Raised number of ticks possible for analog mouse wheel
Related to issue #518.
2018-12-26 22:27:01 -06:00
Travis Nickles
8ae68ed7cf Use SuppressUnmanagedCodeSecurity attr for InputMethods class 2018-12-23 19:53:52 -06:00
mika-n
4678e14408 merge master branch 2018-12-23 13:14:22 +02:00
Travis Nickles
8be9e66f22 Change priority of bus thread.
Lower priority seems better
2018-12-22 16:41:36 -06:00