diff --git a/controller.py b/controller.py index 054f0d6c..880d7708 100644 --- a/controller.py +++ b/controller.py @@ -910,6 +910,24 @@ def callbackSetEnableSendReceivedMessageToVrc(value): # ---------------------Speaker2Chatbox--------------------- +def createDictOSCReceiveParameters(): + osc_parameter_prefix = "/avatar/parameters/" + param_MuteSelf = "MuteSelf" + param_Voice = "Voice" + + def change_handler_muteself(address, osc_arguments): + config.VRCHAT_MUTESELF = osc_arguments + + def change_handler_voice(address, osc_arguments): + config.VRCHAT_MUTESELF = False + + dict_filter_and_target = { + osc_parameter_prefix + param_MuteSelf: change_handler_muteself, + osc_parameter_prefix + param_Voice: change_handler_voice, + } + return dict_filter_and_target + + # Advanced Settings Tab def callbackSetOscIpAddress(value): if value == "": @@ -975,6 +993,9 @@ def createMainWindow(splash): if config.ENABLE_LOGGER is True: model.startLogger() + # init OSC + model.startReceiveOSC(createDictOSCReceiveParameters()) + splash.toProgress(3) # Last one. # set UI and callback diff --git a/model.py b/model.py index 0f844182..9c6e2950 100644 --- a/model.py +++ b/model.py @@ -209,39 +209,42 @@ class Model: def oscSendMessage(message): sendMessage(message, config.OSC_IP_ADDRESS, config.OSC_PORT) - def checkOSCStarted(self, fnc): - self.is_valid_osc = False - def checkOscReceive(address, osc_arguments): - if self.is_valid_osc is False: - self.is_valid_osc = True + # def checkOSCStarted(self, fnc): + # self.is_valid_osc = False + # def checkOscReceive(address, osc_arguments): + # if self.is_valid_osc is False: + # self.is_valid_osc = True - self.listening_server = receiveOscParameters(checkOscReceive) - def oscListener(): - self.listening_server.serve_forever() + # self.listening_server = receiveOscParameters(checkOscReceive) + # def oscListener(): + # self.listening_server.serve_forever() - def sendTestActionLoop(): - for _ in range(10): - sendTestAction() - if self.is_valid_osc is True: - break - sleep(0.1) - self.listening_server.shutdown() + # def sendTestActionLoop(): + # for _ in range(10): + # sendTestAction() + # if self.is_valid_osc is True: + # break + # sleep(0.1) + # self.listening_server.shutdown() - # start receive osc - th_receive_osc_parameters = Thread(target=oscListener) - th_receive_osc_parameters.daemon = True - th_receive_osc_parameters.start() + # # start receive osc + # th_receive_osc_parameters = Thread(target=oscListener) + # th_receive_osc_parameters.daemon = True + # th_receive_osc_parameters.start() - # check osc started - th_send_osc_test_action = Thread(target=sendTestActionLoop) - th_send_osc_test_action.daemon = True - th_send_osc_test_action.start() + # # check osc started + # th_send_osc_test_action = Thread(target=sendTestActionLoop) + # th_send_osc_test_action.daemon = True + # th_send_osc_test_action.start() - th_receive_osc_parameters.join() - th_send_osc_test_action.join() + # th_receive_osc_parameters.join() + # th_send_osc_test_action.join() - if self.is_valid_osc is False: - fnc() + # if self.is_valid_osc is False: + # fnc() + + def startReceiveOSC(self, fnc): + self.listening_server = receiveOscParameters(fnc) @staticmethod def checkSoftwareUpdated():