mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-04-04 23:16:06 +00:00
72 lines
2.7 KiB
Java
72 lines
2.7 KiB
Java
package com.limelight.input;
|
|
|
|
import com.limelight.nvstream.NvConnection;
|
|
import com.limelight.nvstream.input.ControllerPacket;
|
|
|
|
import net.java.games.input.Component;
|
|
import net.java.games.input.Controller;
|
|
|
|
public class PS3Controller extends Gamepad {
|
|
|
|
public PS3Controller(NvConnection conn, Controller pad) {
|
|
super(conn, pad);
|
|
}
|
|
|
|
@Override
|
|
protected void handleAnalog(Component comp, float value) {
|
|
Component.Identifier id = comp.getIdentifier();
|
|
|
|
if (id == Component.Identifier.Axis.Z) {
|
|
rightStickX = (short)Math.round(value * 0x7FFF);
|
|
} else if (id == Component.Identifier.Axis.RZ) {
|
|
rightStickY = (short)Math.round(-value * 0x7FFF);
|
|
} else if (id == Component.Identifier.Axis.X) {
|
|
leftStickX = (short)Math.round(value * 0x7FFF);
|
|
} else if (id == Component.Identifier.Axis.Y) {
|
|
leftStickY = (short)Math.round(-value * 0x7FFF);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void handleButtons(Component comp, float value) {
|
|
Component.Identifier id = comp.getIdentifier();
|
|
boolean press = value > 0.5F;
|
|
|
|
if (id == Component.Identifier.Button._7) {
|
|
toggle(ControllerPacket.LEFT_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._5) {
|
|
toggle(ControllerPacket.RIGHT_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._4) {
|
|
toggle(ControllerPacket.UP_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._6) {
|
|
toggle(ControllerPacket.DOWN_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._14) {
|
|
toggle(ControllerPacket.A_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._15) {
|
|
toggle(ControllerPacket.X_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._12) {
|
|
toggle(ControllerPacket.Y_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._13) {
|
|
toggle(ControllerPacket.B_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._0) {
|
|
toggle(ControllerPacket.BACK_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._3) {
|
|
toggle(ControllerPacket.PLAY_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._2) {
|
|
toggle(ControllerPacket.RS_CLK_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._1) {
|
|
toggle(ControllerPacket.LS_CLK_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._10) {
|
|
toggle(ControllerPacket.LB_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._11) {
|
|
toggle(ControllerPacket.RB_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._16) {
|
|
toggle(ControllerPacket.SPECIAL_BUTTON_FLAG, press);
|
|
} else if (id == Component.Identifier.Button._8) {
|
|
leftTrigger = (byte)Math.round((press ? 1 : 0) * 0xFF);
|
|
} else if (id == Component.Identifier.Button._9) {
|
|
rightTrigger = (byte)Math.round((press ? 1 : 0) * 0xFF);
|
|
}
|
|
}
|
|
}
|