From 23fc46bd0f5dc8761facae36b0fc742719ad368e Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Sun, 25 May 2025 15:42:33 +0900 Subject: [PATCH] [Update] OSC: Refactor OSC query handling and add enable/disable methods --- src-python/controller.py | 21 ++++++++++++++++++--- src-python/mainloop.py | 2 ++ src-python/model.py | 3 +++ src-python/models/osc/osc.py | 15 +++++++++------ 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src-python/controller.py b/src-python/controller.py index c2db0f45..e59a5b50 100644 --- a/src-python/controller.py +++ b/src-python/controller.py @@ -1426,9 +1426,12 @@ class Controller: @staticmethod def setEnableVrcMicMuteSync(*args, **kwargs) -> dict: - config.VRC_MIC_MUTE_SYNC = True - model.setMuteSelfStatus() - model.changeMicTranscriptStatus() + if model.getIsOscQueryEnabled() is False: + config.VRC_MIC_MUTE_SYNC = True + model.setMuteSelfStatus() + model.changeMicTranscriptStatus() + else: + config.VRC_MIC_MUTE_SYNC = False return {"status":200, "result":config.VRC_MIC_MUTE_SYNC} @staticmethod @@ -1905,6 +1908,12 @@ class Controller: def initializationProgress(self, progress): self.run(200, self.run_mapping["initialization_progress"], progress) + def enableOscQuery(self): + self.run(200, self.run_mapping["enable_osc_query"], True) + + def disableOscQuery(self): + self.run(200, self.run_mapping["enable_osc_query"], False) + def init(self, *args, **kwargs) -> None: removeLog() printLog("Start Initialization") @@ -1982,6 +1991,12 @@ class Controller: # init OSC receive printLog("Init OSC Receive") model.startReceiveOSC() + osc_query_enabled = model.getIsOscQueryEnabled() + if osc_query_enabled is True: + self.enableOscQuery() + else: + self.disableOscQuery() + if config.VRC_MIC_MUTE_SYNC is True: self.setEnableVrcMicMuteSync() diff --git a/src-python/mainloop.py b/src-python/mainloop.py index d8ad52e7..2d07fd6a 100644 --- a/src-python/mainloop.py +++ b/src-python/mainloop.py @@ -42,6 +42,8 @@ run_mapping = { "initialization_progress":"/run/initialization_progress", "initialization_complete":"/run/initialization_complete", + + "enable_osc_query":"/run/enable_osc_query", } def run(status:int, endpoint:str, result:Any) -> None: diff --git a/src-python/model.py b/src-python/model.py index ce40c589..400c38d3 100644 --- a/src-python/model.py +++ b/src-python/model.py @@ -323,6 +323,9 @@ class Model: def stopReceiveOSC(self): self.osc_handler.oscServerStop() + def getIsOscQueryEnabled(self): + return self.osc_handler.getIsOscQueryEnabled() + @staticmethod def checkSoftwareUpdated(): # check update diff --git a/src-python/models/osc/osc.py b/src-python/models/osc/osc.py index 84717b61..9e995b21 100644 --- a/src-python/models/osc/osc.py +++ b/src-python/models/osc/osc.py @@ -13,9 +13,9 @@ class OSCHandler: def __init__(self, ip_address="127.0.0.1", port=9000) -> None: if ip_address in ["127.0.0.1", "localhost"]: - self.osc_query_enabled = True + self.is_osc_query_enabled = True else: - self.osc_query_enabled = False + self.is_osc_query_enabled = False self.osc_ip_address = ip_address self.osc_port = port @@ -33,11 +33,14 @@ class OSCHandler: self.dict_filter_and_target = {} self.browser = None + def getIsOscQueryEnabled(self) -> bool: + return self.is_osc_query_enabled + def setOscIpAddress(self, ip_address:str) -> None: if ip_address in ["127.0.0.1", "localhost"]: - self.osc_query_enabled = True + self.is_osc_query_enabled = True else: - self.osc_query_enabled = False + self.is_osc_query_enabled = False self.oscServerStop() self.osc_ip_address = ip_address @@ -60,7 +63,7 @@ class OSCHandler: self.udp_client.send_message(self.osc_parameter_chatbox_input, [f"{message}", True, notification]) def getOSCParameterValue(self, address:str) -> Any: - if not self.osc_query_enabled: + if not self.is_osc_query_enabled: # OSCQueryが無効な場合はNoneを返す return None @@ -95,7 +98,7 @@ class OSCHandler: self.dict_filter_and_target = dict_filter_and_target def receiveOscParameters(self) -> None: - if self.osc_query_enabled is False: + if self.is_osc_query_enabled is False: # OSCQueryが無効な場合は何もしない return