diff options
author | endolf <[email protected]> | 2003-07-23 12:22:55 +0000 |
---|---|---|
committer | endolf <[email protected]> | 2003-07-23 12:22:55 +0000 |
commit | 4e023f726e4cd57a9e58679e92391bc5b9d25f61 (patch) | |
tree | 199d8d05cc5e1e9a99de120b95ea98c32ebf10fc | |
parent | e619c6ef3a393592df20b45e2b40cccee8794d3e (diff) |
Update to allow hat switches to be in 4 more positions.
git-svn-id: file:///home/sven/projects/JOGL/git-svn/svn-server-sync/jinput/trunk@12 e343933a-64c8-49c5-92b1-88f2ce3e89e8
3 files changed, 36 insertions, 0 deletions
diff --git a/coreAPI/src/java/net/java/games/input/Axis.java b/coreAPI/src/java/net/java/games/input/Axis.java index a4abced..438f37f 100644 --- a/coreAPI/src/java/net/java/games/input/Axis.java +++ b/coreAPI/src/java/net/java/games/input/Axis.java @@ -330,17 +330,33 @@ public interface Axis { */ public static final float CENTER = OFF; /** + * Standard value for up-left HAT position + */ + public static final float UP_LEFT = 0.125f; + /** * Standard value for up HAT position */ public static final float UP = 0.25f; + /** + * Standard value for up-right HAT position + */ + public static final float UP_RIGHT = 0.375f; /** * Standard value for right HAT position */ public static final float RIGHT = 0.50f; + /** + * Standard value for down-right HAT position + */ + public static final float DOWN_RIGHT = 0.625f; /** * Standard value for down HAT position */ public static final float DOWN = 0.75f; + /** + * Standard value for down-left HAT position + */ + public static final float DOWN_LEFT = 0.875f; /** * Standard value for left HAT position */ diff --git a/coreAPI/src/java/net/java/games/input/test/ControllerReadTest.java b/coreAPI/src/java/net/java/games/input/test/ControllerReadTest.java index 15668bf..9e6d56f 100644 --- a/coreAPI/src/java/net/java/games/input/test/ControllerReadTest.java +++ b/coreAPI/src/java/net/java/games/input/test/ControllerReadTest.java @@ -105,15 +105,27 @@ class DigitalHatPanel extends AxisPanel { } else if ( data == Axis.POV.UP) { digitalState.setBackground(Color.green); digitalState.setText("UP"); + } else if ( data == Axis.POV.UP_RIGHT) { + digitalState.setBackground(Color.green); + digitalState.setText("UP+RIGHT"); } else if ( data == Axis.POV.RIGHT) { digitalState.setBackground(Color.green); digitalState.setText("RIGHT"); + } else if ( data == Axis.POV.DOWN_RIGHT) { + digitalState.setBackground(Color.green); + digitalState.setText("DOWN+RIGHT"); } else if ( data == Axis.POV.DOWN) { digitalState.setBackground(Color.green); digitalState.setText("DOWN"); + } else if ( data == Axis.POV.DOWN_LEFT) { + digitalState.setBackground(Color.green); + digitalState.setText("DOWN+LEFT"); } else if ( data == Axis.POV.LEFT) { digitalState.setBackground(Color.green); digitalState.setText("LEFT"); + } else if ( data == Axis.POV.UP_LEFT) { + digitalState.setBackground(Color.green); + digitalState.setText("UP+LEFT"); }else { // shoudl never happen digitalState.setBackground(Color.red); digitalState.setText("ERR:"+data); diff --git a/plugins/DX8/src/java/net/java/games/input/DirectInputAxis.java b/plugins/DX8/src/java/net/java/games/input/DirectInputAxis.java index 58df37d..e9cfc6e 100644 --- a/plugins/DX8/src/java/net/java/games/input/DirectInputAxis.java +++ b/plugins/DX8/src/java/net/java/games/input/DirectInputAxis.java @@ -155,12 +155,20 @@ class DirectInputAxis extends AbstractAxis { return Axis.POV.OFF; } else if (data == 0.0) { return Axis.POV.UP; + } else if (data == 4500) { + return Axis.POV.UP_RIGHT; } else if (data == 9000) { return Axis.POV.RIGHT; + } else if (data == 13500) { + return Axis.POV.DOWN_RIGHT; } else if (data == 18000) { return Axis.POV.DOWN; + } else if (data == 22500) { + return Axis.POV.DOWN_LEFT; } else if (data == 27000) { return Axis.POV.LEFT; + } else if (data == 31500) { + return Axis.POV.UP_LEFT; } else { System.err.print("Unexpected value for DX8 HAT: "+data); return Axis.POV.OFF; |