summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt
new file mode 100644
index 000000000..a1db3cc87
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt
@@ -0,0 +1,31 @@
+// SPDX-FileCopyrightText: 2024 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu.features.settings.model.view
+
+import androidx.annotation.StringRes
+import org.yuzu.yuzu_emu.features.input.NativeInput
+import org.yuzu.yuzu_emu.features.input.model.InputType
+import org.yuzu.yuzu_emu.features.input.model.NativeAnalog
+import org.yuzu.yuzu_emu.utils.ParamPackage
+
+class ModifierInputSetting(
+ override val playerIndex: Int,
+ val nativeAnalog: NativeAnalog,
+ @StringRes titleId: Int = 0,
+ titleString: String = ""
+) : InputSetting(titleId, titleString) {
+ override val inputType = InputType.Button
+
+ override fun getSelectedValue(): String {
+ val analogParam = NativeInput.getStickParam(playerIndex, nativeAnalog)
+ val modifierParam = ParamPackage(analogParam.get("modifier", ""))
+ return buttonToText(modifierParam)
+ }
+
+ override fun setSelectedValue(param: ParamPackage) {
+ val newParam = NativeInput.getStickParam(playerIndex, nativeAnalog)
+ newParam.set("modifier", param.serialize())
+ NativeInput.setStickParam(playerIndex, nativeAnalog, newParam)
+ }
+}