diff --git a/controller.py b/controller.py index dbc88560..329f0fc3 100644 --- a/controller.py +++ b/controller.py @@ -27,10 +27,10 @@ def callbackFilepathConfigFile(): def callbackQuitVrct(): setMainWindowGeometry() -# def callbackEnableEasterEgg(): -# config.IS_EASTER_EGG_ENABLED = True -# config.OVERLAY_UI_TYPE = "sakura" -# view.printToTextbox_enableEasterEgg() +def callbackEnableEasterEgg(): + config.IS_EASTER_EGG_ENABLED = True + config.OVERLAY_UI_TYPE = "sakura" + view.printToTextbox_enableEasterEgg() def setMainWindowGeometry(): PRE_SCALING_INT = strPctToInt(view.getPreUiScaling()) @@ -161,14 +161,14 @@ def receiveSpeakerMessage(message): xsoverlay_message = messageFormatter("RECEIVED", translation, message) model.notificationXSOverlay(xsoverlay_message) - # if model.overlay.initialized is False: - # model.startOverlay() - # else: - # if config.ENABLE_OVERLAY_SMALL_LOG is True: - # overlay_image = model.createOverlayImageShort(message, translation) - # model.updateOverlay(overlay_image) - # # overlay_image = model.createOverlayImageLong("receive", message, translation) - # # model.updateOverlay(overlay_image) + if config.ENABLE_OVERLAY_SMALL_LOG is True: + if model.overlay.initialized is False: + model.startOverlay() + if model.overlay.initialized is True: + overlay_image = model.createOverlayImageShort(message, translation) + model.updateOverlay(overlay_image) + # overlay_image = model.createOverlayImageLong("receive", message, translation) + # model.updateOverlay(overlay_image) # ------------Speaker2Chatbox------------ if config.ENABLE_SPEAKER2CHATBOX is True: @@ -858,44 +858,44 @@ def callbackSetWhisperWeightType(value): config.SELECTED_TRANSCRIPTION_ENGINE = "Google" view.showRestartButtonIfRequired() -# # VR Tab -# def callbackSetOverlaySettings(value, set_type:str): -# print("callbackSetOverlaySettings", value, set_type) -# pre_settings = config.OVERLAY_SETTINGS -# pre_settings[set_type] = value -# config.OVERLAY_SETTINGS = pre_settings -# match (set_type): -# case "opacity": -# model.updateOverlayImageOpacity() -# case "ui_scaling": -# model.updateOverlayImageUiScaling() +# VR Tab +def callbackSetOverlaySettings(value, set_type:str): + print("callbackSetOverlaySettings", value, set_type) + pre_settings = config.OVERLAY_SETTINGS + pre_settings[set_type] = value + config.OVERLAY_SETTINGS = pre_settings + match (set_type): + case "opacity": + model.updateOverlayImageOpacity() + case "ui_scaling": + model.updateOverlayImageUiScaling() -# def callbackSetEnableOverlaySmallLog(value): -# print("callbackSetEnableOverlaySmallLog", value) -# config.ENABLE_OVERLAY_SMALL_LOG = value +def callbackSetEnableOverlaySmallLog(value): + print("callbackSetEnableOverlaySmallLog", value) + config.ENABLE_OVERLAY_SMALL_LOG = value -# if config.ENABLE_OVERLAY_SMALL_LOG is True: -# pass -# else: -# if model.overlay.initialized is True: -# model.clearOverlayImage() + if config.ENABLE_OVERLAY_SMALL_LOG is True: + pass + else: + if model.overlay.initialized is True: + model.clearOverlayImage() -# def callbackSetOverlaySmallLogSettings(value, set_type:str): -# print("callbackSetOverlaySmallLogSettings", value, set_type) -# pre_settings = config.OVERLAY_SMALL_LOG_SETTINGS -# pre_settings[set_type] = value -# config.OVERLAY_SMALL_LOG_SETTINGS = pre_settings -# match (set_type): -# case "x_pos": -# model.updateOverlayPosition() -# case "y_pos": -# model.updateOverlayPosition() -# case "depth": -# model.updateOverlayPosition() -# case "display_duration": -# model.updateOverlayTimes() -# case "fadeout_duration": -# model.updateOverlayTimes() +def callbackSetOverlaySmallLogSettings(value, set_type:str): + print("callbackSetOverlaySmallLogSettings", value, set_type) + pre_settings = config.OVERLAY_SMALL_LOG_SETTINGS + pre_settings[set_type] = value + config.OVERLAY_SMALL_LOG_SETTINGS = pre_settings + match (set_type): + case "x_pos": + model.updateOverlayPosition() + case "y_pos": + model.updateOverlayPosition() + case "depth": + model.updateOverlayPosition() + case "display_duration": + model.updateOverlayTimes() + case "fadeout_duration": + model.updateOverlayTimes() # Others Tab def callbackSetEnableAutoClearMessageBox(value): @@ -1049,7 +1049,7 @@ def createMainWindow(splash): # set UI and callback view.register( common_registers={ - # "callback_enable_easter_egg": callbackEnableEasterEgg, + "callback_enable_easter_egg": callbackEnableEasterEgg, "callback_update_software": callbackUpdateSoftware, "callback_restart_software": callbackRestartSoftware, @@ -1137,10 +1137,10 @@ def createMainWindow(splash): "callback_set_use_whisper_feature": callbackSetUserWhisperFeature, "callback_set_whisper_weight_type": callbackSetWhisperWeightType, - # # VR Tab - # "callback_set_overlay_settings": callbackSetOverlaySettings, - # "callback_set_enable_overlay_small_log": callbackSetEnableOverlaySmallLog, - # "callback_set_overlay_small_log_settings": callbackSetOverlaySmallLogSettings, + # VR Tab + "callback_set_overlay_settings": callbackSetOverlaySettings, + "callback_set_enable_overlay_small_log": callbackSetEnableOverlaySmallLog, + "callback_set_overlay_small_log_settings": callbackSetOverlaySmallLogSettings, # Others Tab "callback_set_enable_auto_clear_chatbox": callbackSetEnableAutoClearMessageBox, diff --git a/model.py b/model.py index ae0cc25d..8095bd94 100644 --- a/model.py +++ b/model.py @@ -26,8 +26,8 @@ from models.translation.translation_languages import translation_lang from models.transcription.transcription_languages import transcription_lang from models.translation.translation_utils import checkCTranslate2Weight from models.transcription.transcription_whisper import checkWhisperWeight -# from models.overlay.overlay import Overlay -# from models.overlay.overlay_image import OverlayImage +from models.overlay.overlay import Overlay +from models.overlay.overlay_image import OverlayImage from config import config @@ -72,18 +72,18 @@ class Model: self.previous_receive_message = "" self.translator = Translator() self.keyword_processor = KeywordProcessor() - # self.overlay = Overlay( - # config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], - # config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"], - # config.OVERLAY_SMALL_LOG_SETTINGS["depth"], - # config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"], - # config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"], - # config.OVERLAY_SETTINGS["opacity"], - # config.OVERLAY_SETTINGS["ui_scaling"], - # ) - # self.overlay_image = OverlayImage() - # self.pre_overlay_message = None - # self.th_overlay = None + self.overlay = Overlay( + config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], + config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"], + config.OVERLAY_SMALL_LOG_SETTINGS["depth"], + config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"], + config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"], + config.OVERLAY_SETTINGS["opacity"], + config.OVERLAY_SETTINGS["ui_scaling"], + ) + self.overlay_image = OverlayImage() + self.pre_overlay_message = None + self.th_overlay = None def checkCTranslatorCTranslate2ModelWeight(self): return checkCTranslate2Weight(config.PATH_LOCAL, config.CTRANSLATE2_WEIGHT_TYPE) @@ -584,65 +584,65 @@ class Model: def notificationXSOverlay(self, message): xsoverlayForVRCT(content=f"{message}") - # def createOverlayImageShort(self, message, translation): - # your_language = config.TARGET_LANGUAGE - # target_language = config.SOURCE_LANGUAGE - # ui_type = config.OVERLAY_UI_TYPE - # self.pre_overlay_message = { - # "message" : message, - # "your_language" : your_language, - # "translation" : translation, - # "target_language" : target_language, - # "ui_type" : ui_type, - # } - # return self.overlay_image.createOverlayImageShort(message, your_language, translation, target_language, ui_type) + def createOverlayImageShort(self, message, translation): + your_language = config.TARGET_LANGUAGE + target_language = config.SOURCE_LANGUAGE + ui_type = config.OVERLAY_UI_TYPE + self.pre_overlay_message = { + "message" : message, + "your_language" : your_language, + "translation" : translation, + "target_language" : target_language, + "ui_type" : ui_type, + } + return self.overlay_image.createOverlayImageShort(message, your_language, translation, target_language, ui_type) # def createOverlayImageLong(self, message_type, message, translation): # your_language = config.TARGET_LANGUAGE if message_type == "receive" else config.SOURCE_LANGUAGE # target_language = config.SOURCE_LANGUAGE if message_type == "receive" else config.TARGET_LANGUAGE # return self.overlay_image.create_overlay_image_long(message_type, message, your_language, translation, target_language) - # def clearOverlayImage(self): - # if self.overlay.initialized is True: - # self.overlay.uiManager.uiClear() + def clearOverlayImage(self): + if self.overlay.initialized is True: + self.overlay.uiManager.uiClear() - # def updateOverlay(self, img): - # if self.overlay.initialized is True: - # self.overlay.uiManager.uiUpdate(img) + def updateOverlay(self, img): + if self.overlay.initialized is True: + self.overlay.uiManager.uiUpdate(img) - # def startOverlay(self): - # if self.overlay.initialized is False: - # self.overlay.init() + def startOverlay(self): + if self.overlay.initialized is False: + self.overlay.init() - # if self.overlay.initialized is True and self.th_overlay is None: - # self.th_overlay = Thread(target=self.overlay.startOverlay) - # self.th_overlay.daemon = True - # self.th_overlay.start() + if self.overlay.initialized is True and self.th_overlay is None: + self.th_overlay = Thread(target=self.overlay.startOverlay) + self.th_overlay.daemon = True + self.th_overlay.start() - # def updateOverlayPosition(self): - # if self.overlay.initialized is True: - # pos = (config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"]) - # self.overlay.uiManager.setPosition(pos) - # depth = config.OVERLAY_SMALL_LOG_SETTINGS["depth"] - # self.overlay.uiManager.setDepth(depth) - # self.overlay.uiManager.posUpdate() + def updateOverlayPosition(self): + if self.overlay.initialized is True: + pos = (config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"]) + self.overlay.uiManager.setPosition(pos) + depth = config.OVERLAY_SMALL_LOG_SETTINGS["depth"] + self.overlay.uiManager.setDepth(depth) + self.overlay.uiManager.posUpdate() - # def updateOverlayTimes(self): - # if self.overlay.initialized is True: - # display_duration = config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"] - # self.overlay.uiManager.setFadeTime(display_duration) - # fadeout_duration = config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"] - # self.overlay.uiManager.setFadeInterval(fadeout_duration) - # self.overlay.uiManager.update() + def updateOverlayTimes(self): + if self.overlay.initialized is True: + display_duration = config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"] + self.overlay.uiManager.setFadeTime(display_duration) + fadeout_duration = config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"] + self.overlay.uiManager.setFadeInterval(fadeout_duration) + self.overlay.uiManager.update() - # def updateOverlayImageOpacity(self): - # if self.overlay.initialized is True: - # opacity = config.OVERLAY_SETTINGS["opacity"] - # self.overlay.uiManager.setTransparency(opacity) + def updateOverlayImageOpacity(self): + if self.overlay.initialized is True: + opacity = config.OVERLAY_SETTINGS["opacity"] + self.overlay.uiManager.setTransparency(opacity) - # def updateOverlayImageUiScaling(self): - # if self.overlay.initialized is True: - # ui_scaling = config.OVERLAY_SETTINGS["ui_scaling"] - # self.overlay.uiManager.setUiScaling(ui_scaling) + def updateOverlayImageUiScaling(self): + if self.overlay.initialized is True: + ui_scaling = config.OVERLAY_SETTINGS["ui_scaling"] + self.overlay.uiManager.setUiScaling(ui_scaling) model = Model() \ No newline at end of file