(02-23-2014, 05:40 PM)HecticSeptic Wrote: Hi everyone,
Happy to release RC3 along with all of InhexSTER's changes over the last couple days (including Options/Share and rumble).
This version introduces Touchpad Custom Mapping. Included in this are the standard clicking of the pad, clicking to upper area of the pad, and clicking with two fingers. See below image:
Another added feature is Scan Code key presses. This is a more hardware friendly way of emulating key strokes and thus it is more compatible with games. Bare in mind that some games look specifically for a physical device and therefore make it very difficult to emulate the keys. Repeat Keys have been added again, which can be used alone or in combination with Scan Code. Touchpad buttons do not support Repeat Keys at the moment.
The way that custom mappings are saved has now been changed, partially in favour of InhexSTER's modifications, but also for more extensibility in future. If there is wide enough demand for there to be backwards compatibility then we can look at that, but for now please delete / rename your old Custom Mapping setting XML files.
Please let me know if you encounter issues
Great news -- I've gotten all of the most interesting features from my development branches integrated, and here is a build based upon the RC3, but with some significant changes:
* Jitter compensation has been drastically improved and the touchpad does not tend to "eat" input like before. It's much easier to move the mouse cursor and tap to click.
* Light bar battery indication is gradual and can show you the entire range of 10%->100%.
* Arthritis mode is in. You can remap the midpoint of your L2 and R2 triggers.
* Multiple controllers should work simultaneously as touchpads.
* HID queue flushing is optional per-controller.
Other than these changes, functionality should be identical.
My To Do for 1.2/1.3:
* Improve two-finger scrolling. Use cumulative mid-point location changes to determine scroll amount, rather than just the Y-delta of the left/first finger. If we scroll toward pure left or pure right, ignore it, otherwise go with whichever X direction the mid-point is pulling toward. Use the distance between both fingers as a scroll distance coefficient so you can move your fingers apart to scroll far or move your fingers closer together to scroll in fine increments.
* Jitter removal via sixaxis sensors. This will replace existing jitter removal for a large part, not augment it. Even before working on this, though, I can do better jitter removal for pushes on the touchpad by applying reduction coefficients to the critical push event similarly to the dejitter performed at the start of a tap gesture.
* Customization of every hard-coded variable (several in the touchpad related to distance, permit defining your exact on/off periods for each battery state from 10% to 100%.)
* Nine different virtual button areas on the touchpad, N/NW/Center/etc only activated on touchpad PUSH. If we drag around, then upon push, only the center button (what is currently left click) will now happen.
* Global configuration snapshots used by the touchpad, custom mappers, etc. There's just no reason to keep reinterpreting configuration data that hasn't changed. This should reduce any latency in the custom mapping path.
* Synthetic rumble events to indicate state changes.
* Touchpad mode switching.
* Controller switch-off via either L1+R1+PS button combination or via resting it on an "off" position (i.e. on the table shoulder down, or face down.)
For 1.3 only:
* Optional dead-zone fix-ups. X360 controller and DS4 have very different behaviors here.
* Try and expose audio.
* Rumble translation into light bar flashes for accessibility (not everyone can feel rumbles in their hands, or feel anything in their hands, despite being able to use a controller effectively.)
* Derive accurate gyrometer and moment of inertia values from the sixaxis sensors and expose these in a basic way. This is tricky for technical reasons because physics.
* Prototype some game-specific modality, i.e. motion controls mapped to thumbpad for sailing in Assassin's Creed 4: Black Flag.
* Associate settings with controllers by MAC address, not by device number.
* Stop stealing Xinput device 0 when an XBox 360 controller is already connected and using it. We can easily avoid renumbering just by querying the API for what controller(s) are active.