diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index 5d600e16..f5c76f86 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -774,17 +774,27 @@ def callbackDisableMicDynamicEnergyThreshold(*args, **kwargs) -> dict: config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD = False return {"status":200, "result":config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD} -class ProgressBarEnergy: +class ProgressBarMicEnergy: def __init__(self, action): self.action = action def set(self, energy) -> None: - self.action("energy", {"status":200, "result":energy}) + self.action("mic", {"status":200, "result":energy}) + + def stopped(self) -> None: + self.action("stopped", {"status":200}) + + def error(self) -> None: + self.action("error_device", {"status":400,"result": {"message":"No mic device detected."}}) def callbackEnableCheckMicThreshold(data, action, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackEnableCheckMicThreshold"}), flush=True) - progressbar_mic_energy = ProgressBarEnergy(action) - model.startCheckMicEnergy(progressbar_mic_energy.set) + progressbar_mic_energy = ProgressBarMicEnergy(action) + model.startCheckMicEnergy( + progressbar_mic_energy.set, + progressbar_mic_energy.stopped, + progressbar_mic_energy.error + ) return {"status":200} def callbackDisableCheckMicThreshold(*args, **kwargs) -> dict: @@ -878,9 +888,7 @@ def callbackSetSpeakerEnergyThreshold(data, *args, **kwargs) -> dict: try: data = int(data) if 0 <= data <= config.MAX_SPEAKER_ENERGY_THRESHOLD: - # view.clearNotificationMessage() config.INPUT_SPEAKER_ENERGY_THRESHOLD = data - # view.setGuiVariable_SpeakerEnergyThreshold(config.INPUT_SPEAKER_ENERGY_THRESHOLD) else: raise ValueError() except Exception: @@ -899,10 +907,27 @@ def callbackDisableSpeakerDynamicEnergyThreshold(*args, **kwargs) -> dict: config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD = False return {"status":200, "result":config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD} +class ProgressBarSpeakerEnergy: + def __init__(self, action): + self.action = action + + def set(self, energy) -> None: + self.action("speaker", {"status":200, "result":energy}) + + def stopped(self) -> None: + self.action("stopped", {"status":200}) + + def error(self) -> None: + self.action("error_device", {"status":400,"result": {"message":"No mic device detected."}}) + def callbackEnableCheckSpeakerThreshold(data, action, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackEnableCheckSpeakerThreshold"}), flush=True) - progressbar_speaker_energy = ProgressBarEnergy(action) - model.startCheckSpeakerEnergy(progressbar_speaker_energy.set) + progressbar_speaker_energy = ProgressBarSpeakerEnergy(action) + model.startCheckSpeakerEnergy( + progressbar_speaker_energy.set, + progressbar_speaker_energy.stopped, + progressbar_speaker_energy.error + ) return {"status":200} def callbackDisableCheckSpeakerThreshold(*args, **kwargs) -> dict: @@ -1122,23 +1147,27 @@ def callbackEnableAutoExportMessageLogs(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackEnableAutoExportMessageLogs"}), flush=True) config.ENABLE_LOGGER = True model.startLogger() + return {"status":200, "result":config.ENABLE_LOGGER} def callbackDisableAutoExportMessageLogs(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackDisableAutoExportMessageLogs"}), flush=True) config.ENABLE_LOGGER = False model.stopLogger() + return {"status":200, "result":config.ENABLE_LOGGER} def callbackEnableVrcMicMuteSync(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackEnableVrcMicMuteSync"}), flush=True) config.ENABLE_VRC_MIC_MUTE_SYNC = True model.startCheckMuteSelfStatus() model.changeMicTranscriptStatus() + return {"status":200, "result":config.ENABLE_VRC_MIC_MUTE_SYNC} def callbackDisableVrcMicMuteSync(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackDisableVrcMicMuteSync"}), flush=True) config.ENABLE_VRC_MIC_MUTE_SYNC = False model.stopCheckMuteSelfStatus() model.changeMicTranscriptStatus() + return {"status":200, "result":config.ENABLE_VRC_MIC_MUTE_SYNC} def callbackEnableSendMessageToVrc(*args, **kwargs) -> dict: print(json.dumps({"log": "callbackEnableSendMessageToVrc"}), flush=True) @@ -1190,6 +1219,18 @@ def callbackDisableSendReceivedMessageToVrc(*args, **kwargs) -> dict: return {"status":200, "result":config.ENABLE_SEND_RECEIVED_MESSAGE_TO_VRC} # ---------------------Speaker2Chatbox--------------------- +def callbackEnableLogger(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackEnableLogger"}), flush=True) + config.ENABLE_LOGGER = True + model.startLogger() + return {"status":200, "result":config.ENABLE_LOGGER} + +def callbackDisableLogger(*args, **kwargs) -> dict: + print(json.dumps({"log": "callbackDisableLogger"}), flush=True) + config.ENABLE_LOGGER = False + model.stopLogger() + return {"status":200, "result":config.ENABLE_LOGGER} + # Advanced Settings Tab def callbackSetOscIpAddress(data, *args, **kwargs) -> dict: print(json.dumps({"log": "callbackSetOscIpAddress", "data": str(data)}), flush=True) diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index 183771b4..2e2f6b05 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -99,8 +99,8 @@ controller_mapping = { "/controller/list_speaker_device": controller.getListOutputDevice, # "/controller/callback_update_software": controller.callbackUpdateSoftware, # "/controller/callback_restart_software": controller.callbackRestartSoftware, - "/controller/callback_filepath_logs": controller.callbackFilepathLogs, - "/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile, + # "/controller/callback_filepath_logs": controller.callbackFilepathLogs, + # "/controller/callback_filepath_config_file": controller.callbackFilepathConfigFile, # "/controller/callback_enable_easter_egg": controller.callbackEnableEasterEgg, "/controller/callback_open_config_window": controller.callbackOpenConfigWindow, "/controller/callback_close_config_window": controller.callbackCloseConfigWindow, @@ -189,6 +189,8 @@ controller_mapping = { "/controller/callback_set_received_message_format_with_t": controller.callbackSetReceivedMessageFormatWithT, "/controller/callback_enable_send_received_message_to_vrc": controller.callbackEnableSendReceivedMessageToVrc, "/controller/callback_disable_send_received_message_to_vrc": controller.callbackDisableSendReceivedMessageToVrc, + "/controller/callback_enable_logger": controller.callbackEnableLogger, + "/controller/callback_disable_logger": controller.callbackDisableLogger, "/controller/callback_set_osc_ip_address": controller.callbackSetOscIpAddress, "/controller/callback_set_osc_port": controller.callbackSetOscPort, } @@ -197,37 +199,44 @@ action_mapping = { "/controller/callback_update_software": { "download":"/action/download_software", "update":"/action/update_software" - }, + }, "/controller/callback_close_config_window": { "mic":"/action/transcription_send_mic_message", "speaker":"/action/transcription_receive_speaker_message", "error_device":"/action/error_device", "error_translation_engine":"/action/error_translation_engine", "word_filter":"/action/word_filter", - }, + }, "/controller/callback_enable_transcription_send": { "mic":"/action/transcription_send_mic_message", "error_device":"/action/error_device", "error_translation_engine":"/action/error_translation_engine", "word_filter":"/action/word_filter", - }, + }, "/controller/callback_disable_transcription_send": { "mic":"/action/transcription_send_mic_message_stopped" - }, + }, "/controller/callback_enable_transcription_receive": { "speaker":"/action/transcription_receive_speaker_message", "error_device":"/action/error_device", "error_translation_engine":"/action/error_translation_engine", - }, + }, "/controller/callback_disable_transcription_receive": { "speaker":"/action/transcription_receive_speaker_message_stopped" - }, + }, "/controller/callback_enable_check_mic_threshold": { - "mic":"/action/check_mic_threshold_energy" - }, + "mic":"/action/check_mic_threshold_energy", + "stopped":"/action/check_mic_threshold_energy_stopped", + "error_device":"/action/error_device", + }, + "/controller/callback_enable_check_speaker_threshold": { + "speaker":"/action/check_speaker_threshold_energy", + "stopped":"/action/check_speaker_threshold_energy_stopped", + "error_device":"/action/error_device", + }, "/controller/callback_messagebox_press_key_enter": { "error_translation_engine":"/action/error_translation_engine" - }, + }, } def handleConfigRequest(endpoint): @@ -311,6 +320,9 @@ def main(): if __name__ == "__main__": response_test = True if response_test: + import time + controller.init() + for endpoint, value in config_mapping.items(): response_data, status = handleConfigRequest(endpoint) response = { @@ -320,6 +332,7 @@ if __name__ == "__main__": } response = json.dumps(response) print(response, flush=True) + time.sleep(0.1) for endpoint, value in controller_mapping.items(): print("endpoint: ", endpoint) @@ -348,7 +361,7 @@ if __name__ == "__main__": case "/controller/callback_set_ctranslate2_weight_type": data = "Small" case "/controller/callback_set_deepl_auth_key": - data = "35eb1ccf-e36e-6ed2-ccf7-b0463defd962:fx" + data = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:fx" case "/controller/callback_set_mic_host": data = "MME" case "/controller/callback_set_mic_device": @@ -375,8 +388,6 @@ if __name__ == "__main__": data = 5 case "/controller/callback_set_speaker_max_phrases": data = 5 - case "/controller/callback_set_use_whisper_feature": - data = True case "/controller/callback_set_whisper_weight_type": data = "base" case "/controller/callback_set_overlay_settings_opacity": @@ -420,6 +431,7 @@ if __name__ == "__main__": } response = json.dumps(response) print(response, flush=True) + time.sleep(0.5) else: try: controller.init()