summaryrefslogtreecommitdiff
path: root/Source/Android/src/org
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2013-07-05 06:29:01 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2013-07-05 06:29:01 -0500
commita610cdac8b69c278fba87c4a75a783188db2932f (patch)
treec3ede99a88894d154b66b310b5f64bb91d8f2bae /Source/Android/src/org
parent691900aa90fd236a278373dd07619d0ad0a8cdb1 (diff)
[Android] Fix Android 4.0 gamepad input.
Diffstat (limited to 'Source/Android/src/org')
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java4
-rw-r--r--Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java20
2 files changed, 19 insertions, 5 deletions
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
index 1afeff417e..a34e803a45 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java
@@ -204,7 +204,7 @@ public class DolphinEmulator<MainActivity> extends Activity
return false;
}
InputDevice input = event.getDevice();
- NativeLibrary.onGamePadEvent(input.getDescriptor(), event.getKeyCode(), action);
+ NativeLibrary.onGamePadEvent(InputConfigActivity.getInputDesc(input), event.getKeyCode(), action);
return true;
}
return false;
@@ -222,7 +222,7 @@ public class DolphinEmulator<MainActivity> extends Activity
{
InputDevice.MotionRange range;
range = motions.get(a);
- NativeLibrary.onGamePadMoveEvent(input.getDescriptor(), range.getAxis(), event.getAxisValue(range.getAxis()));
+ NativeLibrary.onGamePadMoveEvent(InputConfigActivity.getInputDesc(input), range.getAxis(), event.getAxisValue(range.getAxis()));
}
return true;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java
index 6646865f03..607af71766 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/InputConfigActivity.java
@@ -3,6 +3,7 @@ package org.dolphinemu.dolphinemu;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.InputDevice;
@@ -26,6 +27,19 @@ public class InputConfigActivity extends ListActivity {
boolean Configuring = false;
boolean firstEvent = true;
+ static public String getInputDesc(InputDevice input)
+ {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
+ return input.getDescriptor();
+ else
+ {
+ List<InputDevice.MotionRange> motions = input.getMotionRanges();
+ String fakeid = "";
+ for (InputDevice.MotionRange range : motions)
+ fakeid += range.getAxis();
+ return fakeid;
+ }
+ }
@Override
public void onCreate(Bundle savedInstanceState)
{
@@ -124,12 +138,12 @@ public class InputConfigActivity extends ListActivity {
range = motions.get(a);
if (m_values.get(a) > (event.getAxisValue(range.getAxis()) + 0.5f))
{
- AssignBind("Device '" + input.getDescriptor() + "'-Axis " + range.getAxis() + "-");
+ AssignBind("Device '" + InputConfigActivity.getInputDesc(input) + "'-Axis " + range.getAxis() + "-");
Configuring = false;
}
else if (m_values.get(a) < (event.getAxisValue(range.getAxis()) - 0.5f))
{
- AssignBind("Device '" + input.getDescriptor() + "'-Axis " + range.getAxis() + "+");
+ AssignBind("Device '" + InputConfigActivity.getInputDesc(input) + "'-Axis " + range.getAxis() + "+");
Configuring = false;
}
}
@@ -148,7 +162,7 @@ public class InputConfigActivity extends ListActivity {
if (Configuring)
{
InputDevice input = event.getDevice();
- AssignBind("Device '" + input.getDescriptor() + "'-Button " + event.getKeyCode());
+ AssignBind("Device '" + InputConfigActivity.getInputDesc(input) + "'-Button " + event.getKeyCode());
Configuring = false;
return true;
}