From 7f6c9a53ac0becf126cd5571bf228503ee226119 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Mon, 6 May 2024 17:30:09 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B[bugfix]=20Model=20:=20OSC=20mute?= =?UTF-8?q?=E5=90=8C=E6=9C=9F=E6=A9=9F=E8=83=BD=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller.py | 1 + model.py | 35 +++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/controller.py b/controller.py index 6f4f586c..599963e3 100644 --- a/controller.py +++ b/controller.py @@ -858,6 +858,7 @@ def callbackSetEnableAutoExportMessageLogs(value): def callbackSetEnableVrcMicMuteSync(value): print("callbackSetEnableVrcMicMuteSync", value) config.ENABLE_VRC_MIC_MUTE_SYNC = value + model.changePutQueueMicAudio() def callbackSetEnableSendMessageToVrc(value): print("callbackSetEnableSendMessageToVrc", value) diff --git a/model.py b/model.py index fe38fe02..2cdbd49b 100644 --- a/model.py +++ b/model.py @@ -223,25 +223,24 @@ class Model: def oscSendMessage(message): sendMessage(message, config.OSC_IP_ADDRESS, config.OSC_PORT) + @staticmethod + def getMuteSelfStatus(): + return getOSCParameterValue(address="/avatar/parameters/MuteSelf") + def startReceiveOSC(self): osc_parameter_prefix = "/avatar/parameters/" param_MuteSelf = "MuteSelf" - self.mute_status = getOSCParameterValue(address=osc_parameter_prefix + param_MuteSelf) + self.mute_status = self.getMuteSelfStatus() def change_handler_mute(address, osc_arguments): - if config.ENABLE_VRC_MIC_MUTE_SYNC is True: - if osc_arguments is True and self.mute_status is False: + if osc_arguments is True and self.mute_status is False: + self.mute_status = True + if config.ENABLE_VRC_MIC_MUTE_SYNC is True: self.stopPutQueueMicAudio() - self.mute_status = True - elif osc_arguments is False and self.mute_status is True: + elif osc_arguments is False and self.mute_status is True: + self.mute_status = False + if config.ENABLE_VRC_MIC_MUTE_SYNC is True: self.startPutQueueMicAudio() - self.mute_status = False - - def change_handler_voice(address, osc_arguments): - if config.ENABLE_VRC_MIC_MUTE_SYNC is True: - if self.mute_status is True: - self.startPutQueueMicAudio() - self.mute_status = False dict_filter_and_target = { osc_parameter_prefix + param_MuteSelf: change_handler_mute, @@ -328,8 +327,7 @@ class Model: self.mic_audio_queue = ConditionalQueue() # self.mic_energy_queue = ConditionalQueue() - if config.ENABLE_MUTE_DETECT is True and self.mute_status is True: - model.stopPutQueueMicAudio() + self.changePutQueueMicAudio() mic_device = choice_mic_device[0] record_timeout = config.INPUT_MIC_RECORD_TIMEOUT @@ -402,6 +400,15 @@ class Model: self.mic_audio_queue.get() # self.mic_energy_queue.set_flag(False) + def changePutQueueMicAudio(self): + if config.ENABLE_VRC_MIC_MUTE_SYNC is True: + if self.mute_status is True: + self.stopPutQueueMicAudio() + else: + self.startPutQueueMicAudio() + else: + self.startPutQueueMicAudio() + def stopMicTranscript(self): if isinstance(self.mic_print_transcript, threadFnc): self.mic_print_transcript.stop()