|
|
@@ -0,0 +1,178 @@ |
|
|
|
public static int L1 = 0; |
|
|
|
public static int L2 = 1; |
|
|
|
public static int L3 = 2; |
|
|
|
public static int R1 = 3; |
|
|
|
public static int R2 = 4; |
|
|
|
public static int R3 = 5; |
|
|
|
public static int SELECT = 6; |
|
|
|
public static int START = 7; |
|
|
|
public static int A = 8; |
|
|
|
public static int B = 9; |
|
|
|
public static int X = 10; |
|
|
|
public static int Y = 11; |
|
|
|
public static int XBOX = 12; |
|
|
|
public static int DPAD_UP = 13; |
|
|
|
public static int DPAD_DOWN = 14; |
|
|
|
public static int DPAD_LEFT = 15; |
|
|
|
public static int DPAD_RIGHT = 16; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.gamecontrolplus.gui.*; |
|
|
|
import org.gamecontrolplus.*; |
|
|
|
import net.java.games.input.*; |
|
|
|
|
|
|
|
ControlIO controlIO; |
|
|
|
Configuration gpad_config; |
|
|
|
ControlDevice gpad; |
|
|
|
|
|
|
|
boolean gamePadAvailable = false; |
|
|
|
boolean[] gpadButtonPresses = new boolean[17]; |
|
|
|
boolean[] dpadButtons = new boolean[4]; |
|
|
|
String[] buttonNames = {"L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "START", "A", "B", "X", "Y", "XBOX", "DPAD_UP", "DPAD_DOWN", "DPAD_LEFT", "DPAD_RIGHT"}; |
|
|
|
|
|
|
|
PVector LSTICK, RSTICK; |
|
|
|
|
|
|
|
|
|
|
|
void initGamepad() { |
|
|
|
controlIO = ControlIO.getInstance(this); |
|
|
|
//gpad = controlIO.filter(GCP.GAMEPAD).getMatchedDevice("WIRELESS"); |
|
|
|
if (gpad == null) { |
|
|
|
println("No suitable device configured"); |
|
|
|
} else { |
|
|
|
gamePadAvailable = true; |
|
|
|
} |
|
|
|
LSTICK = new PVector(0, 0); |
|
|
|
RSTICK = new PVector(0, 0); |
|
|
|
} |
|
|
|
|
|
|
|
public void getUserInput() { |
|
|
|
if (gamePadAvailable) { |
|
|
|
dpadButtons[0] = gpad.getHat("DPAD").up(); |
|
|
|
dpadButtons[1] = gpad.getHat("DPAD").down(); |
|
|
|
dpadButtons[2] = gpad.getHat("DPAD").left(); |
|
|
|
dpadButtons[3] = gpad.getHat("DPAD").right(); |
|
|
|
for (int i = 0; i < 17; i++) { |
|
|
|
boolean thisButton = (i < 13) ? gpad.getButton(buttonNames[i]).pressed() : dpadButtons[i-13]; |
|
|
|
if (gpadButtonPresses[i] != thisButton) { |
|
|
|
if (gpadButtonPresses[i]) buttonReleased(i); |
|
|
|
else buttonPressed(i); |
|
|
|
} |
|
|
|
gpadButtonPresses[i] = thisButton; |
|
|
|
} |
|
|
|
LSTICK.set(roundFloat(gpad.getSlider("LSTICK_X").getValue(), 2), roundFloat(gpad.getSlider("LSTICK_Y").getValue(), 2)); |
|
|
|
RSTICK.set(roundFloat(gpad.getSlider("RSTICK_X").getValue(), 2), roundFloat(gpad.getSlider("RSTICK_Y").getValue(), 2)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void buttonPressed(int btn) { |
|
|
|
println("Pressed " + buttonNames[btn]); |
|
|
|
} |
|
|
|
void buttonReleased(int btn) { |
|
|
|
println("Released " + buttonNames[btn]); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void keyPressed() { |
|
|
|
switch(key) { |
|
|
|
case('w'): |
|
|
|
LSTICK.y = 1.0; |
|
|
|
break; |
|
|
|
case('a'): |
|
|
|
LSTICK.x = -1.0; |
|
|
|
break; |
|
|
|
case('s'): |
|
|
|
LSTICK.y = -1.0; |
|
|
|
break; |
|
|
|
case('d'): |
|
|
|
LSTICK.x = 1.0; |
|
|
|
break; |
|
|
|
case('Q'): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case('E'): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(' '): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(RETURN): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(SHIFT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(CONTROL): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(ALT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(UP): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(DOWN): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(LEFT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(RIGHT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
void keyReleased() { |
|
|
|
switch(key) { |
|
|
|
case('w'): |
|
|
|
LSTICK.y = 0; |
|
|
|
break; |
|
|
|
case('a'): |
|
|
|
LSTICK.x = 0; |
|
|
|
break; |
|
|
|
case('s'): |
|
|
|
LSTICK.y = 0; |
|
|
|
break; |
|
|
|
case('d'): |
|
|
|
LSTICK.x = 0; |
|
|
|
break; |
|
|
|
case('Q'): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case('E'): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(' '): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(RETURN): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(SHIFT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(CONTROL): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(ALT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(UP): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(DOWN): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(LEFT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
case(RIGHT): |
|
|
|
buttonPressed(0); |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} |