mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2026-04-14 11:56:04 +00:00
Fix D-Pad buttons not releasing until all D-Pad input has ceased
This commit is contained in:
@@ -40,27 +40,31 @@ public class VirtualControllerConfigurationLoader {
|
|||||||
VirtualController.ControllerInputContext inputContext =
|
VirtualController.ControllerInputContext inputContext =
|
||||||
controller.getControllerInputContext();
|
controller.getControllerInputContext();
|
||||||
|
|
||||||
if (direction == DigitalPad.DIGITAL_PAD_DIRECTION_NO_DIRECTION) {
|
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_LEFT) != 0) {
|
||||||
inputContext.inputMap &= ~ControllerPacket.LEFT_FLAG;
|
|
||||||
inputContext.inputMap &= ~ControllerPacket.RIGHT_FLAG;
|
|
||||||
inputContext.inputMap &= ~ControllerPacket.UP_FLAG;
|
|
||||||
inputContext.inputMap &= ~ControllerPacket.DOWN_FLAG;
|
|
||||||
|
|
||||||
controller.sendControllerInputContext();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_LEFT) > 0) {
|
|
||||||
inputContext.inputMap |= ControllerPacket.LEFT_FLAG;
|
inputContext.inputMap |= ControllerPacket.LEFT_FLAG;
|
||||||
}
|
}
|
||||||
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_RIGHT) > 0) {
|
else {
|
||||||
|
inputContext.inputMap &= ~ControllerPacket.LEFT_FLAG;
|
||||||
|
}
|
||||||
|
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_RIGHT) != 0) {
|
||||||
inputContext.inputMap |= ControllerPacket.RIGHT_FLAG;
|
inputContext.inputMap |= ControllerPacket.RIGHT_FLAG;
|
||||||
}
|
}
|
||||||
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_UP) > 0) {
|
else {
|
||||||
|
inputContext.inputMap &= ~ControllerPacket.RIGHT_FLAG;
|
||||||
|
}
|
||||||
|
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_UP) != 0) {
|
||||||
inputContext.inputMap |= ControllerPacket.UP_FLAG;
|
inputContext.inputMap |= ControllerPacket.UP_FLAG;
|
||||||
}
|
}
|
||||||
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_DOWN) > 0) {
|
else {
|
||||||
|
inputContext.inputMap &= ~ControllerPacket.UP_FLAG;
|
||||||
|
}
|
||||||
|
if ((direction & DigitalPad.DIGITAL_PAD_DIRECTION_DOWN) != 0) {
|
||||||
inputContext.inputMap |= ControllerPacket.DOWN_FLAG;
|
inputContext.inputMap |= ControllerPacket.DOWN_FLAG;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
inputContext.inputMap &= ~ControllerPacket.DOWN_FLAG;
|
||||||
|
}
|
||||||
|
|
||||||
controller.sendControllerInputContext();
|
controller.sendControllerInputContext();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user