Fix OSC colliding with player 1

This commit is contained in:
Cameron Gutman 2019-02-16 17:29:05 -08:00
parent a22e33eeb9
commit 4f3d018764
3 changed files with 29 additions and 10 deletions

View File

@ -425,7 +425,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
if (prefConfig.onscreenController) { if (prefConfig.onscreenController) {
// create virtual onscreen controller // create virtual onscreen controller
virtualController = new VirtualController(conn, virtualController = new VirtualController(controllerHandler,
(FrameLayout)streamView.getParent(), (FrameLayout)streamView.getParent(),
this); this);
virtualController.refreshLayout(); virtualController.refreshLayout();

View File

@ -1323,12 +1323,30 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
return true; return true;
} }
public void reportOscState(short buttonFlags,
short leftStickX, short leftStickY,
short rightStickX, short rightStickY,
byte leftTrigger, byte rightTrigger) {
defaultContext.leftStickX = leftStickX;
defaultContext.leftStickY = leftStickY;
defaultContext.rightStickX = rightStickX;
defaultContext.rightStickY = rightStickY;
defaultContext.leftTrigger = leftTrigger;
defaultContext.rightTrigger = rightTrigger;
defaultContext.inputMap = buttonFlags;
sendControllerInputPacket(defaultContext);
}
@Override @Override
public void reportControllerState(int controllerId, short buttonFlags, public void reportControllerState(int controllerId, short buttonFlags,
float leftStickX, float leftStickY, float leftStickX, float leftStickY,
float rightStickX, float rightStickY, float rightStickX, float rightStickY,
float leftTrigger, float rightTrigger) { float leftTrigger, float rightTrigger) {
UsbDeviceContext context = usbDeviceContexts.get(controllerId); GenericControllerContext context = usbDeviceContexts.get(controllerId);
if (context == null) { if (context == null) {
return; return;
} }

View File

@ -13,6 +13,7 @@ import android.widget.RelativeLayout;
import android.widget.Toast; import android.widget.Toast;
import com.limelight.R; import com.limelight.R;
import com.limelight.binding.input.ControllerHandler;
import com.limelight.nvstream.NvConnection; import com.limelight.nvstream.NvConnection;
import java.util.ArrayList; import java.util.ArrayList;
@ -38,7 +39,7 @@ public class VirtualController {
private static final boolean _PRINT_DEBUG_INFORMATION = false; private static final boolean _PRINT_DEBUG_INFORMATION = false;
private NvConnection connection = null; private ControllerHandler controllerHandler;
private Context context = null; private Context context = null;
private FrameLayout frame_layout = null; private FrameLayout frame_layout = null;
@ -53,8 +54,8 @@ public class VirtualController {
private List<VirtualControllerElement> elements = new ArrayList<>(); private List<VirtualControllerElement> elements = new ArrayList<>();
public VirtualController(final NvConnection conn, FrameLayout layout, final Context context) { public VirtualController(final ControllerHandler controllerHandler, FrameLayout layout, final Context context) {
this.connection = conn; this.controllerHandler = controllerHandler;
this.frame_layout = layout; this.frame_layout = layout;
this.context = context; this.context = context;
@ -173,15 +174,15 @@ public class VirtualController {
_DBG("LEFT STICK X: " + inputContext.leftStickX + " Y: " + inputContext.leftStickY); _DBG("LEFT STICK X: " + inputContext.leftStickX + " Y: " + inputContext.leftStickY);
_DBG("RIGHT STICK X: " + inputContext.rightStickX + " Y: " + inputContext.rightStickY); _DBG("RIGHT STICK X: " + inputContext.rightStickX + " Y: " + inputContext.rightStickY);
if (connection != null) { if (controllerHandler != null) {
connection.sendControllerInput( controllerHandler.reportOscState(
inputContext.inputMap, inputContext.inputMap,
inputContext.leftTrigger,
inputContext.rightTrigger,
inputContext.leftStickX, inputContext.leftStickX,
inputContext.leftStickY, inputContext.leftStickY,
inputContext.rightStickX, inputContext.rightStickX,
inputContext.rightStickY inputContext.rightStickY,
inputContext.leftTrigger,
inputContext.rightTrigger
); );
} }
} }