Added additional logging to track down why the NVIDIA controller doesn't send the back button

This commit is contained in:
Sam Lantinga 2020-04-27 19:12:02 -07:00
parent b0b12e46ba
commit beab15b09e

View File

@ -872,7 +872,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
} }
} }
Log.v("SDL", "setOrientation() requestedOrientation=" + req + " width=" + w +" height="+ h +" resizable=" + resizable + " hint=" + hint); Log.v(TAG, "setOrientation() requestedOrientation=" + req + " width=" + w +" height="+ h +" resizable=" + resizable + " hint=" + hint);
mSingleton.setRequestedOrientation(req); mSingleton.setRequestedOrientation(req);
} }
@ -1082,7 +1082,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
/* environment variables set! */ /* environment variables set! */
return true; return true;
} catch (Exception e) { } catch (Exception e) {
Log.v("SDL", "exception " + e.toString()); Log.v(TAG, "exception " + e.toString());
} }
return false; return false;
} }
@ -1868,6 +1868,19 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
int deviceId = event.getDeviceId(); int deviceId = event.getDeviceId();
int source = event.getSource(); int source = event.getSource();
if (source == InputDevice.SOURCE_UNKNOWN) {
InputDevice device = InputDevice.getDevice(deviceId);
if (device != null) {
source = device.getSources();
}
}
// if (event.getAction() == KeyEvent.ACTION_DOWN) {
// Log.v("SDL", "key down: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
// } else if (event.getAction() == KeyEvent.ACTION_UP) {
// Log.v("SDL", "key up: " + keyCode + ", deviceId = " + deviceId + ", source = " + source);
// }
// Dispatch the different events depending on where they come from // Dispatch the different events depending on where they come from
// Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD // Some SOURCE_JOYSTICK, SOURCE_DPAD or SOURCE_GAMEPAD are also SOURCE_KEYBOARD
// So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD // So, we try to process them as JOYSTICK/DPAD/GAMEPAD events first, if that fails we try them as KEYBOARD
@ -1888,24 +1901,14 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
} }
} }
if (source == InputDevice.SOURCE_UNKNOWN) {
InputDevice device = InputDevice.getDevice(deviceId);
if (device != null) {
source = device.getSources();
}
}
if ((source & InputDevice.SOURCE_KEYBOARD) != 0) { if ((source & InputDevice.SOURCE_KEYBOARD) != 0) {
if (event.getAction() == KeyEvent.ACTION_DOWN) { if (event.getAction() == KeyEvent.ACTION_DOWN) {
//Log.v("SDL", "key down: " + keyCode);
if (SDLActivity.isTextInputEvent(event)) { if (SDLActivity.isTextInputEvent(event)) {
SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1); SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1);
} }
SDLActivity.onNativeKeyDown(keyCode); SDLActivity.onNativeKeyDown(keyCode);
return true; return true;
} } else if (event.getAction() == KeyEvent.ACTION_UP) {
else if (event.getAction() == KeyEvent.ACTION_UP) {
//Log.v("SDL", "key up: " + keyCode);
SDLActivity.onNativeKeyUp(keyCode); SDLActivity.onNativeKeyUp(keyCode);
return true; return true;
} }