diff options
| author | JosJuice <josjuice@gmail.com> | 2023-10-01 17:25:17 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2023-10-01 18:47:49 +0200 |
| commit | d811c12196b7692695ff2b864ea7ea348247d641 (patch) | |
| tree | 285dd5f0b1098863f9490f6d3af1dfb0df0124d5 /Source/Android/app/src | |
| parent | d6c0f8e74933e291023099f47cae2901410c0f42 (diff) | |
Android: Add more GameCube controller types
For all your PSO needs.
Diffstat (limited to 'Source/Android/app/src')
4 files changed, 59 insertions, 28 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/EmulatedController.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/EmulatedController.kt index c91bbbe1ab..e84dd201a5 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/EmulatedController.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/EmulatedController.kt @@ -37,6 +37,9 @@ class EmulatedController private constructor(private val pointer: Long) { external fun getGcPad(controllerIndex: Int): EmulatedController @JvmStatic + external fun getGcKeyboard(controllerIndex: Int): EmulatedController + + @JvmStatic external fun getWiimote(controllerIndex: Int): EmulatedController @JvmStatic diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt index c7261c88f8..d2eefd41f4 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt @@ -2071,34 +2071,49 @@ class SettingsFragmentPresenter( } private fun addGcPadSubSettings(sl: ArrayList<SettingsItem>, gcPadNumber: Int, gcPadType: Int) { - if (gcPadType == 6) { - // Emulated - val gcPad = EmulatedController.getGcPad(gcPadNumber) + when (gcPadType) { + 6, 8, 9, 10 -> { + // Emulated + val gcPad = EmulatedController.getGcPad(gcPadNumber) - if (!TextUtils.isEmpty(gameId)) { - addControllerPerGameSettings(sl, gcPad, gcPadNumber) - } else { - addControllerMetaSettings(sl, gcPad) - addControllerMappingSettings(sl, gcPad, null) + if (!TextUtils.isEmpty(gameId)) { + addControllerPerGameSettings(sl, gcPad, gcPadNumber) + } else { + addControllerMetaSettings(sl, gcPad) + addControllerMappingSettings(sl, gcPad, null) + } } - } else if (gcPadType == 12) { - // Adapter - sl.add( - SwitchSetting( - context, - BooleanSetting.getSettingForAdapterRumble(gcPadNumber), - R.string.gc_adapter_rumble, - R.string.gc_adapter_rumble_description + 7 -> { + // Emulated keyboard controller + val gcKeyboard = EmulatedController.getGcKeyboard(gcPadNumber) + + if (!TextUtils.isEmpty(gameId)) { + addControllerPerGameSettings(sl, gcKeyboard, gcPadNumber) + } else { + sl.add(HeaderSetting(context, R.string.keyboard_controller_warning, 0)) + addControllerMetaSettings(sl, gcKeyboard) + addControllerMappingSettings(sl, gcKeyboard, null) + } + } + 12 -> { + // Adapter + sl.add( + SwitchSetting( + context, + BooleanSetting.getSettingForAdapterRumble(gcPadNumber), + R.string.gc_adapter_rumble, + R.string.gc_adapter_rumble_description + ) ) - ) - sl.add( - SwitchSetting( - context, - BooleanSetting.getSettingForSimulateKonga(gcPadNumber), - R.string.gc_adapter_bongos, - R.string.gc_adapter_bongos_description + sl.add( + SwitchSetting( + context, + BooleanSetting.getSettingForSimulateKonga(gcPadNumber), + R.string.gc_adapter_bongos, + R.string.gc_adapter_bongos_description + ) ) - ) + } } } diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml index 212bcb3d2b..2f8adeb60c 100644 --- a/Source/Android/app/src/main/res/values/arrays.xml +++ b/Source/Android/app/src/main/res/values/arrays.xml @@ -367,11 +367,19 @@ <string-array name="gcpadTypeEntries"> <item>@string/gcpad_disabled</item> <item>@string/gcpad_emulated</item> + <item>@string/gcpad_keyboard</item> + <item>@string/gcpad_steering_wheel</item> + <item>@string/gcpad_dance_mat</item> + <item>@string/gcpad_taru_konga</item> <item>@string/gcpad_gc_adapter</item> </string-array> <integer-array name="gcpadTypeValues"> <item>0</item> <item>6</item> + <item>7</item> + <item>8</item> + <item>9</item> + <item>10</item> <item>12</item> </integer-array> diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index a81cb58a59..0e980af855 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -47,6 +47,7 @@ <string name="input_clear">Clear</string> <string name="input_clear_description">Clear settings for this controller.</string> <string name="input_reset_warning">Are you sure? Your current controller settings will be deleted.</string> + <string name="keyboard_controller_warning">"You are configuring a \"Keyboard Controller\". This device is exclusively for \"Phantasy Star Online Episode I & II\". If you are unsure, turn back now and configure a \"Standard Controller\".</string> <string name="old_controller_settings">Your controller settings are from an old version of Dolphin and won\'t work in this version. Press \"Default\" to start over with new settings.</string> <string name="input_binding">Input Binding</string> @@ -772,13 +773,17 @@ It can efficiently compress both junk data and encrypted Wii data. <string name="country_unknown">Unknown</string> <!-- GameCube Gamepad Types --> - <string name="gcpad_disabled">Disabled</string> - <string name="gcpad_emulated">Emulated</string> + <string name="gcpad_disabled">None</string> + <string name="gcpad_emulated">Standard Controller</string> + <string name="gcpad_keyboard">Keyboard Controller</string> + <string name="gcpad_steering_wheel">Steering Wheel</string> + <string name="gcpad_dance_mat">Dance Mat</string> + <string name="gcpad_taru_konga">DK Bongos</string> <string name="gcpad_gc_adapter">GameCube Adapter</string> <!-- Wiimote Types --> - <string name="wiimote_disabled">Disabled</string> - <string name="wiimote_emulated">Emulated</string> + <string name="wiimote_disabled">None</string> + <string name="wiimote_emulated">Emulated Wii Remote</string> <string name="wiimote_real">Real Wii Remote (DolphinBar required)</string> <!-- Gamepad Controls --> |
