Modified the string-based look-ups to use logical

ID instead of name.  The names may be localized for
the local language.... Bouton 0 instead of Button 0, etc.
I also changed the compatible layer and the one default
mapping to use logical IDs now.
Added a few constants to JoystickButton just to make
things easier for the standard buttons 0-11.


git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9782 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
PSp..om 12 years ago
parent 56bf97a7e2
commit 9b763443fa
  1. 18
      engine/src/core/com/jme3/input/AbstractJoystick.java
  2. 4
      engine/src/core/com/jme3/input/InputManager.java
  3. 12
      engine/src/core/com/jme3/input/Joystick.java
  4. 12
      engine/src/core/com/jme3/input/JoystickAxis.java
  5. 13
      engine/src/core/com/jme3/input/JoystickButton.java
  6. 16
      engine/src/core/com/jme3/input/JoystickCompatibilityMappings.java

@ -99,15 +99,10 @@ public abstract class AbstractJoystick implements Joystick {
inputManager.addMapping(negativeMapping, new JoyAxisTrigger(joyId, axisId, true)); inputManager.addMapping(negativeMapping, new JoyAxisTrigger(joyId, axisId, true));
} }
/**
* Returns the JoystickAxis with the specified name.
*
* @param name The name of the axis to search for as returned by JoystickAxis.getName().
*/
@Override @Override
public JoystickAxis getAxis(String name) { public JoystickAxis getAxis(String logicalId) {
for( JoystickAxis axis : axes ) { for( JoystickAxis axis : axes ) {
if( axis.getName().equals(name) ) if( axis.getLogicalId().equals(logicalId) )
return axis; return axis;
} }
return null; return null;
@ -131,15 +126,10 @@ public abstract class AbstractJoystick implements Joystick {
return axes.size(); return axes.size();
} }
/**
* Returns the JoystickButton with the specified name.
*
* @param name The name of the button to search for as returned by JoystickButton.getName().
*/
@Override @Override
public JoystickButton getButton(String name) { public JoystickButton getButton(String logicalId) {
for( JoystickButton b : buttons ) { for( JoystickButton b : buttons ) {
if( b.getName().equals(name) ) if( b.getLogicalId().equals(logicalId) )
return b; return b;
} }
return null; return null;

@ -456,6 +456,10 @@ public class InputManager implements RawInputListener {
invokeTimedActions(hash, evt.getTime(), evt.isPressed()); invokeTimedActions(hash, evt.getTime(), evt.isPressed());
} }
public void simulateEvent( InputEvent evt ) {
inputQueue.add(evt);
}
/** /**
* Callback from RawInputListener. Do not use. * Callback from RawInputListener. Do not use.
*/ */

@ -41,11 +41,11 @@ public interface Joystick {
public void assignAxis(String positiveMapping, String negativeMapping, int axisId); public void assignAxis(String positiveMapping, String negativeMapping, int axisId);
/** /**
* Returns the JoystickAxis with the specified name. * Returns the JoystickAxis with the specified logical ID.
* *
* @param name The name of the axis to search for as returned by JoystickAxis.getName(). * @param logicalId The id of the axis to search for as returned by JoystickAxis.getLogicalId().
*/ */
public JoystickAxis getAxis(String name); public JoystickAxis getAxis(String logicalId);
/** /**
* Returns a read-only list of all joystick axes for this Joystick. * Returns a read-only list of all joystick axes for this Joystick.
@ -53,11 +53,11 @@ public interface Joystick {
public List<JoystickAxis> getAxes(); public List<JoystickAxis> getAxes();
/** /**
* Returns the JoystickButton with the specified name. * Returns the JoystickButton with the specified logical ID.
* *
* @param name The name of the button to search for as returned by JoystickButton.getName(). * @param logicalId The id of the axis to search for as returned by JoystickButton.getLogicalId().
*/ */
public JoystickButton getButton(String name); public JoystickButton getButton(String logicalId);
/** /**
* Returns a read-only list of all joystick buttons for this Joystick. * Returns a read-only list of all joystick buttons for this Joystick.

@ -10,13 +10,13 @@ import com.jme3.input.controls.JoyButtonTrigger;
*/ */
public interface JoystickAxis { public interface JoystickAxis {
public static final String X_AXIS = "X Axis"; public static final String X_AXIS = "x";
public static final String Y_AXIS = "Y Axis"; public static final String Y_AXIS = "y";
public static final String Z_AXIS = "Z Axis"; public static final String Z_AXIS = "z";
public static final String Z_ROTATION = "Z Rotation"; public static final String Z_ROTATION = "rz";
public static final String POV_X = "JME:POV_X"; public static final String POV_X = "pov_x";
public static final String POV_Y = "JME:POV_Y"; public static final String POV_Y = "pov_y";
/** /**
* Assign the mappings to receive events from the given joystick axis. * Assign the mappings to receive events from the given joystick axis.

@ -10,6 +10,19 @@ import com.jme3.input.controls.JoyButtonTrigger;
*/ */
public interface JoystickButton { public interface JoystickButton {
public static final String BUTTON_0 = "0";
public static final String BUTTON_1 = "1";
public static final String BUTTON_2 = "2";
public static final String BUTTON_3 = "3";
public static final String BUTTON_4 = "4";
public static final String BUTTON_5 = "5";
public static final String BUTTON_6 = "6";
public static final String BUTTON_7 = "7";
public static final String BUTTON_8 = "8";
public static final String BUTTON_9 = "9";
public static final String BUTTON_10 = "10";
public static final String BUTTON_11 = "11";
/** /**
* Assign the mapping name to receive events from the given button index * Assign the mapping name to receive events from the given button index
* on the joystick. * on the joystick.

@ -81,13 +81,13 @@ public class JoystickCompatibilityMappings {
* Returns the remapped version of the axis/button name if there * Returns the remapped version of the axis/button name if there
* is a mapping for it otherwise it returns the original name. * is a mapping for it otherwise it returns the original name.
*/ */
public static String remapComponent( String joystickName, String componentName ) { public static String remapComponent( String joystickName, String componentId ) {
Map<String,String> map = getMappings(joystickName.trim(), false); Map<String,String> map = getMappings(joystickName.trim(), false);
if( map == null ) if( map == null )
return componentName; return componentId;
if( !map.containsKey(componentName) ) if( !map.containsKey(componentId) )
return componentName; return componentId;
return map.get(componentName); return map.get(componentId);
} }
/** /**
@ -106,9 +106,9 @@ public class JoystickCompatibilityMappings {
* joystick's name and axis/button name. The "remap" value will be * joystick's name and axis/button name. The "remap" value will be
* used instead. * used instead.
*/ */
public static void addMapping( String stickName, String sourceComponent, String remap ) { public static void addMapping( String stickName, String sourceComponentId, String remapId ) {
logger.log(Level.INFO, "addMapping(" + stickName + ", " + sourceComponent + ", " + remap + ")" ); logger.log(Level.INFO, "addMapping(" + stickName + ", " + sourceComponentId + ", " + remapId + ")" );
getMappings(stickName, true).put( sourceComponent, remap ); getMappings(stickName, true).put( sourceComponentId, remapId );
} }
/** /**

Loading…
Cancel
Save