fixed invert and trigger settings not being saved

This commit is contained in:
Diego Waxemberg
2013-12-21 00:07:32 -05:00
parent f3f52f9616
commit 81c8a09385
4 changed files with 83 additions and 51 deletions

View File

@@ -1,5 +1,6 @@
package com.limelight.input;
import com.limelight.input.GamepadMapping.Mapping;
import com.limelight.nvstream.NvConnection;
import com.limelight.nvstream.input.ControllerPacket;
@@ -104,22 +105,22 @@ public class Gamepad {
}
private void handleComponent(Component comp, float value) {
ControllerComponent contComp = config.getControllerComponent(comp);
if (contComp != null) {
if (contComp.isAnalog()) {
handleAnalog(contComp, sanitizeValue(contComp, value));
Mapping mapping = config.getMapping(comp);
if (mapping != null) {
if (mapping.contComp.isAnalog()) {
handleAnalog(mapping.contComp, sanitizeValue(mapping, value));
} else {
handleButtons(contComp, sanitizeValue(contComp, value));
handleButtons(mapping.contComp, sanitizeValue(mapping, value));
}
}
}
private float sanitizeValue(ControllerComponent contComp, float value) {
private float sanitizeValue(Mapping mapping, float value) {
float sanitized = value;
if (contComp.invert()) {
if (mapping.invert) {
sanitized = -sanitized;
}
if (contComp.isTrigger()) {
if (mapping.trigger) {
sanitized = (sanitized + 1)/2;
}
return sanitized;