summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.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/AnalogInputSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt
new file mode 100644
index 000000000..a2996725e
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.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.AnalogDirection
+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 AnalogInputSetting(
+ override val playerIndex: Int,
+ val nativeAnalog: NativeAnalog,
+ val analogDirection: AnalogDirection,
+ @StringRes titleId: Int = 0,
+ titleString: String = ""
+) : InputSetting(titleId, titleString) {
+ override val type = TYPE_INPUT
+ override val inputType = InputType.Stick
+
+ override fun getSelectedValue(): String {
+ val params = NativeInput.getStickParam(playerIndex, nativeAnalog)
+ val analog = analogToText(params, analogDirection.param)
+ return getDisplayString(params, analog)
+ }
+
+ override fun setSelectedValue(param: ParamPackage) =
+ NativeInput.setStickParam(playerIndex, nativeAnalog, param)
+}