summaryrefslogtreecommitdiff
path: root/Source/Android/app/src
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2023-10-01 17:25:17 +0200
committerJosJuice <josjuice@gmail.com>2023-10-01 18:47:49 +0200
commitd811c12196b7692695ff2b864ea7ea348247d641 (patch)
tree285dd5f0b1098863f9490f6d3af1dfb0df0124d5 /Source/Android/app/src
parentd6c0f8e74933e291023099f47cae2901410c0f42 (diff)
Android: Add more GameCube controller types
For all your PSO needs.
Diffstat (limited to 'Source/Android/app/src')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/EmulatedController.kt3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt63
-rw-r--r--Source/Android/app/src/main/res/values/arrays.xml8
-rw-r--r--Source/Android/app/src/main/res/values/strings.xml13
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 &amp; 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 -->