From f6216dbdbe087aaab74aa604b556c4fdcb93261f Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Mon, 9 Jun 2025 17:15:42 +0900 Subject: [PATCH 1/3] [Update] Enhance OSC Query handling by adding mute sync info flag and modifying disableOscQuery method --- src-python/controller.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src-python/controller.py b/src-python/controller.py index 89a07d3a..315113f5 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -1153,8 +1153,12 @@ class Controller: if model.getIsOscQueryEnabled() is True: self.enableOscQuery() else: - self.setDisableVrcMicMuteSync() - self.disableOscQuery() + mute_sync_info_flag = False + if config.VRC_MIC_MUTE_SYNC is True: + self.setDisableVrcMicMuteSync() + mute_sync_info_flag = True + self.disableOscQuery(mute_sync_info=mute_sync_info_flag) + response = {"status":200, "result":config.OSC_IP_ADDRESS} except Exception: model.setOscIpAddress(config.OSC_IP_ADDRESS) @@ -1933,12 +1937,13 @@ class Controller: } ) - def disableOscQuery(self): + def disableOscQuery(self, mute_sync_info:bool=False): + disabled_functions = [] + if mute_sync_info is True: + disabled_functions.append("vrc_mic_mute_sync") self.run(200, self.run_mapping["enable_osc_query"], { "data": False, - "disabled_functions": [ - "vrc_mic_mute_sync", - ] + "disabled_functions": disabled_functions }) def init(self, *args, **kwargs) -> None: @@ -2055,13 +2060,15 @@ class Controller: osc_query_enabled = model.getIsOscQueryEnabled() if osc_query_enabled is True: self.enableOscQuery() + if config.VRC_MIC_MUTE_SYNC is True: + self.setEnableVrcMicMuteSync() else: # OSC Query is disabled, so disable VRC some features - config.VRC_MIC_MUTE_SYNC = False - self.disableOscQuery() - - if config.VRC_MIC_MUTE_SYNC is True: - self.setEnableVrcMicMuteSync() + mute_sync_info_flag = False + if config.VRC_MIC_MUTE_SYNC is True: + self.setDisableVrcMicMuteSync() + mute_sync_info_flag = True + self.disableOscQuery(mute_sync_info=mute_sync_info_flag) # init Auto device selection printLog("Init Device Manager") From bc7f70729ac2a025dd4660bd90eef27ac779b412 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 10 Jun 2025 16:42:49 +0900 Subject: [PATCH 2/3] [Update] UI: OSC query availability: Update disable functions. --- src-ui/logics/common/useHandleOscQuery.js | 60 +++++++++++------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src-ui/logics/common/useHandleOscQuery.js b/src-ui/logics/common/useHandleOscQuery.js index 2e6b1681..61c2ba59 100644 --- a/src-ui/logics/common/useHandleOscQuery.js +++ b/src-ui/logics/common/useHandleOscQuery.js @@ -1,44 +1,44 @@ import { useTranslation } from "react-i18next"; import { useNotificationStatus } from "@logics_common"; -import { - useEnableVrcMicMuteSync, -} from "@logics_configs"; +import { useEnableVrcMicMuteSync } from "@logics_configs"; export const useHandleOscQuery = () => { const { t } = useTranslation(); - const { showNotification_Warning } = useNotificationStatus(); const { updateEnableVrcMicMuteSync } = useEnableVrcMicMuteSync(); - const handleOscQuery = ({is_osc_query_enabled, disabled_functions}) => { - if (!is_osc_query_enabled && disabled_functions.length > 0) { - const BASE_LABEL = t("common_warning.unable_to_use_osc_query"); - let items_label = ""; - - for (const disabled_function of disabled_functions) { - if (disabled_function === "vrc_mic_mute_sync") { - updateEnableVrcMicMuteSync({ - is_enabled: false, - is_available: false, - }); - const item = `- ${t("config_page.others.vrc_mic_mute_sync.label")}`; - items_label = `${items_label}\n${item}`; - } - } - const label = `${BASE_LABEL}${items_label}`; - showNotification_Warning( - label, - { hide_duration: 10000, } - ); - } else if (is_osc_query_enabled) { - updateEnableVrcMicMuteSync((old_value) => ({ - ...old_value.data, + const handleOscQuery = ({ is_osc_query_enabled, disabled_functions }) => { + if (is_osc_query_enabled) { + updateEnableVrcMicMuteSync(prev => ({ + ...prev.data, is_available: true, })); + return; + } + + if (!disabled_functions.length) { + updateEnableVrcMicMuteSync(prev => ({ + ...prev.data, + is_available: false, + })); + return; + } + + const items_label = disabled_functions + .filter(fn => fn === "vrc_mic_mute_sync") + .map(() => `- ${t("config_page.others.vrc_mic_mute_sync.label")}`) + .join("\n"); + + updateEnableVrcMicMuteSync({ + is_enabled: false, + is_available: false, + }); + + if (items_label) { + const message = `${t("common_warning.unable_to_use_osc_query")}\n${items_label}`; + showNotification_Warning(message, { hide_duration: 10000 }); } }; - return { - handleOscQuery, - }; + return { handleOscQuery }; }; \ No newline at end of file From 5c7c7308092d7998b755dd16cb4c20e48d24c5f0 Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Tue, 10 Jun 2025 17:17:10 +0900 Subject: [PATCH 3/3] [Update] UI: Error Handling: VRC Mic Mute Sync: Add an error notification. --- src-ui/logics/_useBackendErrorHandling.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src-ui/logics/_useBackendErrorHandling.js b/src-ui/logics/_useBackendErrorHandling.js index d5987a1b..c1cdd15f 100644 --- a/src-ui/logics/_useBackendErrorHandling.js +++ b/src-ui/logics/_useBackendErrorHandling.js @@ -15,6 +15,8 @@ import { useDeepLAuthKey, + useEnableVrcMicMuteSync, + useOscIpAddress, useWebsocket, } from "@logics_configs"; @@ -34,6 +36,8 @@ export const _useBackendErrorHandling = () => { const { updateDeepLAuthKey } = useDeepLAuthKey(); + const { updateEnableVrcMicMuteSync } = useEnableVrcMicMuteSync(); + const { updateOscIpAddress } = useOscIpAddress(); const { updateEnableWebsocket, updateWebsocketHost, updateWebsocketPort } = useWebsocket(); @@ -130,6 +134,14 @@ export const _useBackendErrorHandling = () => { } return; + case "/set/enable/vrc_mic_mute_sync": + // Normally, this path shouldn't happen because VRC Mic Mute Sync is disabled and can't be turned on from the UI. + if (message === "Cannot enable VRC mic mute sync while OSC query is disabled") { + updateEnableVrcMicMuteSync(data); + showNotification_Error("Cannot enable VRC Mic Mute Sync while OSC query is disabled"); + } + return; + // Advanced Settings, error messages are set by Backend (EN only) case "/set/data/osc_ip_address":