From 18fcb80d4c6362995072126c74fdf810cdc88fd2 Mon Sep 17 00:00:00 2001 From: Erimel Date: Mon, 29 Apr 2024 12:56:24 -0400 Subject: [PATCH] don't toggle trackers if tracking is paused (#1013) --- .../core/src/main/java/dev/slimevr/VRServer.kt | 18 ++++++++++++++++-- .../dev/slimevr/protocol/rpc/RPCHandler.kt | 2 +- .../tracking/processor/HumanPoseManager.kt | 2 ++ .../slimevr/desktop/platform/SteamVRBridge.kt | 7 +++++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/server/core/src/main/java/dev/slimevr/VRServer.kt b/server/core/src/main/java/dev/slimevr/VRServer.kt index 31127b9a7e..fdfac308a1 100644 --- a/server/core/src/main/java/dev/slimevr/VRServer.kt +++ b/server/core/src/main/java/dev/slimevr/VRServer.kt @@ -308,12 +308,26 @@ class VRServer @JvmOverloads constructor( queueTask { humanPoseManager.clearTrackersMounting(resetSourceName) } } + fun getPauseTracking(): Boolean = humanPoseManager.getPauseTracking() + fun setPauseTracking(pauseTracking: Boolean, sourceName: String?) { - queueTask { humanPoseManager.setPauseTracking(pauseTracking, sourceName) } + queueTask { + humanPoseManager.setPauseTracking(pauseTracking, sourceName) + // Toggle trackers as they don't toggle when tracking is paused + if (this.getVRBridge(ISteamVRBridge::class.java)?.updateShareSettingsAutomatically() == true) { + RPCSettingsHandler.sendSteamVRUpdatedSettings(protocolAPI, protocolAPI.rpcHandler) + } + } } fun togglePauseTracking(sourceName: String?) { - queueTask { humanPoseManager.togglePauseTracking(sourceName) } + queueTask { + humanPoseManager.togglePauseTracking(sourceName) + // Toggle trackers as they don't toggle when tracking is paused + if (this.getVRBridge(ISteamVRBridge::class.java)?.updateShareSettingsAutomatically() == true) { + RPCSettingsHandler.sendSteamVRUpdatedSettings(protocolAPI, protocolAPI.rpcHandler) + } + } } fun scheduleResetTrackersFull(resetSourceName: String?, delay: Long) { diff --git a/server/core/src/main/java/dev/slimevr/protocol/rpc/RPCHandler.kt b/server/core/src/main/java/dev/slimevr/protocol/rpc/RPCHandler.kt index 41ce066248..a17940a26f 100644 --- a/server/core/src/main/java/dev/slimevr/protocol/rpc/RPCHandler.kt +++ b/server/core/src/main/java/dev/slimevr/protocol/rpc/RPCHandler.kt @@ -461,7 +461,7 @@ class RPCHandler(private val api: ProtocolAPI) : ProtocolHandler