@ -44,6 +44,7 @@ import com.jme3.input.JoyInput;
import com.jme3.input.Joystick ;
import com.jme3.input.JoystickAxis ;
import com.jme3.input.JoystickButton ;
import com.jme3.input.JoystickCompatibilityMappings ;
import com.jme3.input.event.JoyAxisEvent ;
import com.jme3.input.event.JoyButtonEvent ;
import java.util.ArrayList ;
@ -220,11 +221,16 @@ public class AndroidJoystickJoyInput14 {
AndroidJoystick joystick = joystickIndex . get ( event . getDeviceId ( ) ) ;
if ( joystick ! = null ) {
JoystickButton button = joystick . getButton ( event . getKeyCode ( ) ) ;
boolean pressed = event . getAction ( ) = = KeyEvent . ACTION_DOWN ;
if ( button ! = null ) {
boolean pressed = event . getAction ( ) = = KeyEvent . ACTION_DOWN ;
JoyButtonEvent buttonEvent = new JoyButtonEvent ( button , pressed ) ;
joyInput . addEvent ( buttonEvent ) ;
consumed = true ;
} else {
JoystickButton newButton = joystick . addButton ( event . getKeyCode ( ) ) ;
JoyButtonEvent buttonEvent = new JoyButtonEvent ( newButton , pressed ) ;
joyInput . addEvent ( buttonEvent ) ;
consumed = true ;
}
}
@ -273,44 +279,50 @@ public class AndroidJoystickJoyInput14 {
// logger.log(Level.FINE, "Adding button: {0}", keyCode);
String name = KeyEvent . keyCodeToString ( keyCode ) ;
String logicalId = KeyEvent . keyCodeToString ( keyCode ) ;
String original = KeyEvent . keyCodeToString ( keyCode ) ;
// A/B/X/Y buttons
if ( keyCode = = KeyEvent . KEYCODE_BUTTON_Y ) {
logicalId = JoystickButton . BUTTON_0 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_A ) {
logicalId = JoystickButton . BUTTON_2 ;
original = JoystickButton . BUTTON_0 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_B ) {
logicalId = JoystickButton . BUTTON_1 ;
original = JoystickButton . BUTTON_1 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_A ) {
original = JoystickButton . BUTTON_2 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_X ) {
logicalId = JoystickButton . BUTTON_3 ;
original = JoystickButton . BUTTON_3 ;
// Front buttons Some of these have the top ones and the bottoms ones flipped.
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_L1 ) {
logicalId = JoystickButton . BUTTON_4 ;
original = JoystickButton . BUTTON_4 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_R1 ) {
logicalId = JoystickButton . BUTTON_5 ;
original = JoystickButton . BUTTON_5 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_L2 ) {
logicalId = JoystickButton . BUTTON_6 ;
original = JoystickButton . BUTTON_6 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_R2 ) {
logicalId = JoystickButton . BUTTON_7 ;
original = JoystickButton . BUTTON_7 ;
// // Dpad buttons
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
// logicalId = JoystickButton.BUTTON_8;
// original = JoystickButton.BUTTON_8;
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
// logicalId = JoystickButton.BUTTON_9;
// original = JoystickButton.BUTTON_9;
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
// logicalId = JoystickButton.BUTTON_8;
// original = JoystickButton.BUTTON_8;
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
// logicalId = JoystickButton.BUTTON_9;
// original = JoystickButton.BUTTON_9;
// Select and start buttons
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_SELECT ) {
logicalId = JoystickButton . BUTTON_8 ;
original = JoystickButton . BUTTON_8 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_START ) {
logicalId = JoystickButton . BUTTON_9 ;
original = JoystickButton . BUTTON_9 ;
// Joystick push buttons
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_THUMBL ) {
logicalId = JoystickButton . BUTTON_10 ;
original = JoystickButton . BUTTON_10 ;
} else if ( keyCode = = KeyEvent . KEYCODE_BUTTON_THUMBR ) {
logicalId = JoystickButton . BUTTON_11 ;
original = JoystickButton . BUTTON_11 ;
}
String logicalId = JoystickCompatibilityMappings . remapComponent ( getName ( ) , original ) ;
if ( logicalId = = null ? original ! = null : ! logicalId . equals ( original ) ) {
logger . log ( Level . FINE , "Remapped: {0} to: {1}" ,
new Object [ ] { original , logicalId } ) ;
}
JoystickButton button = new DefaultJoystickButton ( getInputManager ( ) , this , getButtonCount ( ) ,
@ -324,24 +336,25 @@ public class AndroidJoystickJoyInput14 {
String name = MotionEvent . axisToString ( motionRange . getAxis ( ) ) ;
String logicalId = MotionEvent . axisToString ( motionRange . getAxis ( ) ) ;
String original = MotionEvent . axisToString ( motionRange . getAxis ( ) ) ;
if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_X ) {
logicalId = JoystickAxis . X_AXIS ;
original = JoystickAxis . X_AXIS ;
} else if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_Y ) {
logicalId = JoystickAxis . Y_AXIS ;
original = JoystickAxis . Y_AXIS ;
} else if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_Z ) {
logicalId = JoystickAxis . Z_AXIS ;
original = JoystickAxis . Z_AXIS ;
} else if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_RZ ) {
logicalId = JoystickAxis . Z_ROTATION ;
original = JoystickAxis . Z_ROTATION ;
} else if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_HAT_X ) {
logicalId = JoystickAxis . POV_X ;
original = JoystickAxis . POV_X ;
} else if ( motionRange . getAxis ( ) = = MotionEvent . AXIS_HAT_Y ) {
logicalId = JoystickAxis . POV_Y ;
original = JoystickAxis . POV_Y ;
}
String logicalId = JoystickCompatibilityMappings . remapComponent ( getName ( ) , original ) ;
if ( logicalId = = null ? original ! = null : ! logicalId . equals ( original ) ) {
logger . log ( Level . FINE , "Remapped: {0} to: {1}" ,
new Object [ ] { original , logicalId } ) ;
}
// String logicalId = JoystickCompatibilityMappings.remapComponent( controller.getName(), original );
// if( name != original ) {
// logger.log(Level.FINE, "Remapped:" + original + " to:" + logicalId);
// }
JoystickAxis axis = new DefaultJoystickAxis ( getInputManager ( ) ,
this ,