mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-19 11:03:01 +00:00
Allow clients to correctly send the number of controllers connected
This commit is contained in:
parent
195bf8ed55
commit
4566c1855b
@ -422,7 +422,7 @@ public class NvConnection {
|
||||
}
|
||||
|
||||
public void sendControllerInput(final short controllerNumber,
|
||||
final short buttonFlags,
|
||||
final short activeGamepadMask, final short buttonFlags,
|
||||
final byte leftTrigger, final byte rightTrigger,
|
||||
final short leftStickX, final short leftStickY,
|
||||
final short rightStickX, final short rightStickY)
|
||||
@ -430,7 +430,8 @@ public class NvConnection {
|
||||
if (inputStream == null)
|
||||
return;
|
||||
|
||||
inputStream.sendControllerInput(controllerNumber, buttonFlags, leftTrigger,
|
||||
inputStream.sendControllerInput(controllerNumber, activeGamepadMask,
|
||||
buttonFlags, leftTrigger,
|
||||
rightTrigger, leftStickX, leftStickY,
|
||||
rightStickX, rightStickY);
|
||||
}
|
||||
|
@ -12,9 +12,11 @@ public class ControllerBatchingBlock {
|
||||
private short rightStickX;
|
||||
private short rightStickY;
|
||||
private short controllerNumber;
|
||||
private short activeGamepadMask;
|
||||
|
||||
public ControllerBatchingBlock(MultiControllerPacket initialPacket) {
|
||||
this.controllerNumber = initialPacket.controllerNumber;
|
||||
this.activeGamepadMask = initialPacket.activeGamepadMask;
|
||||
this.buttonFlags = initialPacket.buttonFlags;
|
||||
this.leftTrigger = initialPacket.leftTrigger;
|
||||
this.rightTrigger = initialPacket.rightTrigger;
|
||||
@ -59,6 +61,7 @@ public class ControllerBatchingBlock {
|
||||
public boolean submitNewPacket(MultiControllerPacket packet) {
|
||||
if (buttonFlags != packet.buttonFlags ||
|
||||
controllerNumber != packet.controllerNumber ||
|
||||
activeGamepadMask != packet.activeGamepadMask ||
|
||||
!checkDirs(leftTrigger, packet.leftTrigger, 0) ||
|
||||
!checkDirs(rightTrigger, packet.rightTrigger, 1) ||
|
||||
!checkDirs(leftStickX, packet.leftStickX, 2) ||
|
||||
@ -70,6 +73,7 @@ public class ControllerBatchingBlock {
|
||||
}
|
||||
|
||||
this.controllerNumber = packet.controllerNumber;
|
||||
this.activeGamepadMask = packet.activeGamepadMask;
|
||||
this.leftTrigger = packet.leftTrigger;
|
||||
this.rightTrigger = packet.rightTrigger;
|
||||
this.leftStickX = packet.leftStickX;
|
||||
@ -81,6 +85,7 @@ public class ControllerBatchingBlock {
|
||||
|
||||
public void reinitializePacket(MultiControllerPacket packet) {
|
||||
packet.controllerNumber = controllerNumber;
|
||||
packet.activeGamepadMask = activeGamepadMask;
|
||||
packet.buttonFlags = buttonFlags;
|
||||
packet.leftTrigger = leftTrigger;
|
||||
packet.rightTrigger = rightTrigger;
|
||||
|
@ -50,7 +50,7 @@ public class ControllerPacket extends MultiControllerPacket {
|
||||
short leftStickX, short leftStickY,
|
||||
short rightStickX, short rightStickY)
|
||||
{
|
||||
super(PACKET_TYPE, (short) 0, buttonFlags, leftTrigger, rightTrigger, leftStickX,
|
||||
super(PACKET_TYPE, (short) 0, (short) 0, buttonFlags, leftTrigger, rightTrigger, leftStickX,
|
||||
leftStickY, rightStickX, rightStickY);
|
||||
|
||||
this.buttonFlags = buttonFlags;
|
||||
|
@ -274,13 +274,16 @@ public class ControllerStream {
|
||||
}
|
||||
else {
|
||||
// Use multi-controller packets for generation 4 and above
|
||||
queuePacket(new MultiControllerPacket(context, (short) 0, buttonFlags, leftTrigger,
|
||||
queuePacket(new MultiControllerPacket(context,
|
||||
(short) 0, (short) 0x1,
|
||||
buttonFlags, leftTrigger,
|
||||
rightTrigger, leftStickX, leftStickY,
|
||||
rightStickX, rightStickY));
|
||||
}
|
||||
}
|
||||
|
||||
public void sendControllerInput(short controllerNumber, short buttonFlags, byte leftTrigger, byte rightTrigger,
|
||||
public void sendControllerInput(short controllerNumber, short activeGamepadMask,
|
||||
short buttonFlags, byte leftTrigger, byte rightTrigger,
|
||||
short leftStickX, short leftStickY, short rightStickX, short rightStickY)
|
||||
{
|
||||
if (context.serverGeneration == ConnectionContext.SERVER_GENERATION_3) {
|
||||
@ -291,7 +294,9 @@ public class ControllerStream {
|
||||
}
|
||||
else {
|
||||
// Use multi-controller packets for generation 4 and above
|
||||
queuePacket(new MultiControllerPacket(context, controllerNumber, buttonFlags, leftTrigger,
|
||||
queuePacket(new MultiControllerPacket(context,
|
||||
controllerNumber, activeGamepadMask,
|
||||
buttonFlags, leftTrigger,
|
||||
rightTrigger, leftStickX, leftStickY,
|
||||
rightStickX, rightStickY));
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ public class MultiControllerPacket extends InputPacket {
|
||||
InputPacket.HEADER_LENGTH;
|
||||
|
||||
short controllerNumber;
|
||||
short activeGamepadMask;
|
||||
short buttonFlags;
|
||||
byte leftTrigger;
|
||||
byte rightTrigger;
|
||||
@ -35,7 +36,8 @@ public class MultiControllerPacket extends InputPacket {
|
||||
private int headerCode;
|
||||
|
||||
public MultiControllerPacket(ConnectionContext context,
|
||||
short controllerNumber, short buttonFlags, byte leftTrigger, byte rightTrigger,
|
||||
short controllerNumber, short activeGamepadMask,
|
||||
short buttonFlags, byte leftTrigger, byte rightTrigger,
|
||||
short leftStickX, short leftStickY,
|
||||
short rightStickX, short rightStickY)
|
||||
{
|
||||
@ -49,6 +51,7 @@ public class MultiControllerPacket extends InputPacket {
|
||||
}
|
||||
|
||||
this.controllerNumber = controllerNumber;
|
||||
this.activeGamepadMask = activeGamepadMask;
|
||||
|
||||
this.buttonFlags = buttonFlags;
|
||||
this.leftTrigger = leftTrigger;
|
||||
@ -62,7 +65,8 @@ public class MultiControllerPacket extends InputPacket {
|
||||
}
|
||||
|
||||
public MultiControllerPacket(int packetType,
|
||||
short controllerNumber, short buttonFlags,
|
||||
short controllerNumber, short activeGamepadMask,
|
||||
short buttonFlags,
|
||||
byte leftTrigger, byte rightTrigger,
|
||||
short leftStickX, short leftStickY,
|
||||
short rightStickX, short rightStickY)
|
||||
@ -70,6 +74,7 @@ public class MultiControllerPacket extends InputPacket {
|
||||
super(packetType);
|
||||
|
||||
this.controllerNumber = controllerNumber;
|
||||
this.activeGamepadMask = activeGamepadMask;
|
||||
|
||||
this.buttonFlags = buttonFlags;
|
||||
this.leftTrigger = leftTrigger;
|
||||
@ -88,7 +93,7 @@ public class MultiControllerPacket extends InputPacket {
|
||||
bb.putInt(headerCode);
|
||||
bb.putShort((short) 0x1a);
|
||||
bb.putShort(controllerNumber);
|
||||
bb.putShort((short) 0x0f); // Active controller flags
|
||||
bb.putShort(activeGamepadMask);
|
||||
bb.putShort((short) 0x14);
|
||||
bb.putShort(buttonFlags);
|
||||
bb.put(leftTrigger);
|
||||
|
Loading…
x
Reference in New Issue
Block a user