From 9ad3e3110dfb722414de5e560a9c7e3439a4064d Mon Sep 17 00:00:00 2001 From: NullVector Date: Sat, 10 Oct 2026 21:23:21 +1030 Subject: [PATCH] Android: Add missing setStickValue function (#403) --- .../app/src/main/java/org/nxemu/ui/main/NxEmuBridge.kt | 5 +++++ .../java/org/nxemu/ui/settings/ControllerSettings.kt | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/src/android/app/src/main/java/org/nxemu/ui/main/NxEmuBridge.kt b/src/android/app/src/main/java/org/nxemu/ui/main/NxEmuBridge.kt index 41957e0c..3aef87bf 100644 --- a/src/android/app/src/main/java/org/nxemu/ui/main/NxEmuBridge.kt +++ b/src/android/app/src/main/java/org/nxemu/ui/main/NxEmuBridge.kt @@ -86,6 +86,11 @@ class NxEmuBridge(private val activity: MainActivity) { fun getStickValue(playerIndex: Int, stickId: Int, key: String): Float = ControllerSettings.stickValue(playerIndex, stickId, key) + @JavascriptInterface + fun setStickValue(playerIndex: Int, stickId: Int, key: String, value: Double) { + ControllerSettings.setStickValue(playerIndex, stickId, key, value.toFloat()) + } + @JavascriptInterface fun resetControllerMappings(playerIndex: Int) { ControllerSettings.resetMappings(playerIndex) diff --git a/src/android/app/src/main/java/org/nxemu/ui/settings/ControllerSettings.kt b/src/android/app/src/main/java/org/nxemu/ui/settings/ControllerSettings.kt index c9d2c38d..dd105a47 100644 --- a/src/android/app/src/main/java/org/nxemu/ui/settings/ControllerSettings.kt +++ b/src/android/app/src/main/java/org/nxemu/ui/settings/ControllerSettings.kt @@ -52,6 +52,15 @@ object ControllerSettings { return params.get(key, stickDefault(key)) } + fun setStickValue(playerIndex: Int, stickId: Int, key: String, value: Float) { + if (key != "range" && key != "deadzone" && key != "modifier_scale") { + return + } + val stick = NativeAnalog.from(stickId) + val next = NativeInput.getStickParam(player(playerIndex), stick) + next.set(key, value) + NativeInput.setStickParam(player(playerIndex), stick, next) + } fun resetMappings(playerIndex: Int) { NativeInput.resetControllerMappings(player(playerIndex))