diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml
index 6b6d9b461d..897097afaa 100644
--- a/Source/Android/res/values-ja/strings.xml
+++ b/Source/Android/res/values-ja/strings.xml
@@ -53,10 +53,10 @@
入力オーバーレイレイアウト
入力オーバーレイのためのボタンのレイアウト。
ゲームキューブコントローラの入力バインディング
- コントローラ1
- コントローラ2
- コントローラ3
- コントローラ4
+ コントローラ1
+ コントローラ2
+ コントローラ3
+ コントローラ4
コントローラを有効
Wiiリモコンの入力バインディング
Wiiリモコン1
diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml
index da045378a2..3557261e66 100644
--- a/Source/Android/res/values/strings.xml
+++ b/Source/Android/res/values/strings.xml
@@ -53,10 +53,10 @@
Input Overlay Layout
Button layout for the input overlay.
Gamecube Controller Bindings
- Controller 1
- Controller 2
- Controller 3
- Controller 4
+ Controller 1
+ Controller 2
+ Controller 3
+ Controller 4
Enable controller
Wiimote Bindings
Wiimote 1
diff --git a/Source/Android/res/xml/input_prefs.xml b/Source/Android/res/xml/input_prefs.xml
index c97375ccae..ad4b5e7130 100644
--- a/Source/Android/res/xml/input_prefs.xml
+++ b/Source/Android/res/xml/input_prefs.xml
@@ -16,109 +16,216 @@
android:key="gamecube_bindings"
android:title="@string/gamecube_bindings">
+ android:key="gamecube_bindings_control_0"
+ android:title="@string/controller_0">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -126,321 +233,214 @@
android:key="gamecube_bindings_control_2"
android:title="@string/controller_2">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -452,8 +452,8 @@
android:title="@string/wiimote_bindings">
+ android:key="wiimote_bindings_control_0"
+ android:title="@string/wiimote_0">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -604,146 +752,146 @@
android:title="@string/wiimote_2">
@@ -751,296 +899,148 @@
android:key="wiimote_bindings_control_3"
android:title="@string/wiimote_3">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-->
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/input/InputConfigFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/input/InputConfigFragment.java
index 3f32a7de1c..b6251d1d54 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/input/InputConfigFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/input/InputConfigFragment.java
@@ -52,7 +52,7 @@ public final class InputConfigFragment extends PreferenceFragment
"WiimoteDPadUp", "WiimoteDPadDown", "WiimoteDPadLeft", "WiimoteDPadRight"
};
- for (int i = 1; i <= 4; i++)
+ for (int i = 0; i < 4; i++)
{
// Loop through the keys for all 4 GameCube controllers.
for (String key : gamecubeKeys)
diff --git a/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp b/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp
index eb94b3b664..8ab83a3346 100644
--- a/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp
+++ b/Source/Core/DolphinWX/Src/Android/ButtonManager.cpp
@@ -150,7 +150,7 @@ namespace ButtonManager
{
m_axises[std::make_pair(padID, axis)]->SetValue(value);
}
- void GamepadEvent(std::string dev, ButtonType button, int action)
+ void GamepadEvent(std::string dev, int button, int action)
{
auto it = m_controllers.find(dev);
if (it != m_controllers.end())
@@ -161,7 +161,7 @@ namespace ButtonManager
m_controllers[dev] = new InputDevice(dev);
m_controllers[dev]->PressEvent(button, action);
}
- void GamepadAxisEvent(std::string dev, ButtonType axis, float value)
+ void GamepadAxisEvent(std::string dev, int axis, float value)
{
auto it = m_controllers.find(dev);
if (it != m_controllers.end())
@@ -183,17 +183,17 @@ namespace ButtonManager
}
// InputDevice
- void InputDevice::PressEvent(ButtonType button, int action)
+ void InputDevice::PressEvent(int button, int action)
{
- if (_binds.find(button) == _binds.end())
+ if (_inputbinds.find(button) == _inputbinds.end())
return;
- _buttons[_binds[button]->_bind] = action == 0 ? true : false;
+ _buttons[_inputbinds[button]->_buttontype] = action == 0 ? true : false;
}
- void InputDevice::AxisEvent(ButtonType axis, float value)
+ void InputDevice::AxisEvent(int axis, float value)
{
- if (_binds.find(axis) == _binds.end())
+ if (_inputbinds.find(axis) == _inputbinds.end())
return;
- _axises[_binds[axis]->_bind] = value;
+ _axises[_inputbinds[axis]->_buttontype] = value;
}
bool InputDevice::ButtonValue(int padID, ButtonType button)
{
@@ -203,7 +203,7 @@ namespace ButtonManager
if (it->second->_padID != padID)
return false;
if (it->second->_bindtype == BIND_BUTTON)
- return _buttons[it->second->_bind];
+ return _buttons[it->second->_buttontype];
else
return AxisValue(padID, button);
}
@@ -217,7 +217,7 @@ namespace ButtonManager
if (it->second->_bindtype == BIND_BUTTON)
return ButtonValue(padID, axis);
else
- return _axises[it->second->_bind] * it->second->_neg;
+ return _axises[it->second->_buttontype] * it->second->_neg;
}
}
diff --git a/Source/Core/DolphinWX/Src/Android/ButtonManager.h b/Source/Core/DolphinWX/Src/Android/ButtonManager.h
index 3651196f09..ff3b7f6bd4 100644
--- a/Source/Core/DolphinWX/Src/Android/ButtonManager.h
+++ b/Source/Core/DolphinWX/Src/Android/ButtonManager.h
@@ -99,9 +99,10 @@ namespace ButtonManager
{
private:
const std::string _dev;
- std::map _buttons;
- std::map _axises;
+ std::map _buttons;
+ std::map _axises;
std::map _binds;
+ std::map _inputbinds;
public:
InputDevice(std::string dev)
: _dev(dev) {}
@@ -110,9 +111,9 @@ namespace ButtonManager
for (auto it = _binds.begin(); it != _binds.end(); ++it)
delete it->second;
}
- void AddBind(sBind *bind) { _binds[bind->_buttontype] = bind; }
- void PressEvent(ButtonType button, int action);
- void AxisEvent(ButtonType axis, float value);
+ void AddBind(sBind *bind) { _binds[bind->_buttontype] = bind; _inputbinds[bind->_bind] = bind; }
+ void PressEvent(int button, int action);
+ void AxisEvent(int axis, float value);
bool ButtonValue(int padID, ButtonType button);
float AxisValue(int padID, ButtonType axis);
};
@@ -122,7 +123,7 @@ namespace ButtonManager
float GetAxisValue(int padID, ButtonType axis);
void TouchEvent(int padID, ButtonType button, int action);
void TouchAxisEvent(int padID, ButtonType axis, float value);
- void GamepadEvent(std::string dev, ButtonType button, int action);
- void GamepadAxisEvent(std::string dev, ButtonType axis, float value);
+ void GamepadEvent(std::string dev, int button, int action);
+ void GamepadAxisEvent(std::string dev, int axis, float value);
void Shutdown();
}
diff --git a/Source/Core/DolphinWX/Src/MainAndroid.cpp b/Source/Core/DolphinWX/Src/MainAndroid.cpp
index 82e2258993..d235a8a283 100644
--- a/Source/Core/DolphinWX/Src/MainAndroid.cpp
+++ b/Source/Core/DolphinWX/Src/MainAndroid.cpp
@@ -249,14 +249,14 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_onGamePadEve
{
const char *Device = env->GetStringUTFChars(jDevice, NULL);
std::string strDevice = std::string(Device);
- ButtonManager::GamepadEvent(strDevice, (ButtonManager::ButtonType)Button, Action);
+ ButtonManager::GamepadEvent(strDevice, Button, Action);
env->ReleaseStringUTFChars(jDevice, Device);
}
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_onGamePadMoveEvent(JNIEnv *env, jobject obj, jstring jDevice, jint Axis, jfloat Value)
{
const char *Device = env->GetStringUTFChars(jDevice, NULL);
std::string strDevice = std::string(Device);
- ButtonManager::GamepadAxisEvent(strDevice, (ButtonManager::ButtonType)Axis, Value);
+ ButtonManager::GamepadAxisEvent(strDevice, Axis, Value);
env->ReleaseStringUTFChars(jDevice, Device);
}