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); }