diff --git a/src-python/model.py b/src-python/model.py index b0363f25..7e37d14c 100644 --- a/src-python/model.py +++ b/src-python/model.py @@ -553,7 +553,10 @@ class Model: # self.mic_get_energy.stop() # self.mic_get_energy = None - def startCheckMicEnergy(self, fnc): + def startCheckMicEnergy(self, fnc:Callable[[float], None]=None) -> None: + if isinstance(fnc, Callable): + self.check_mic_energy_fnc = fnc + if config.ENABLE_MIC_AUTOMATIC_SELECTION is True: default_device = getDefaultInputDevice() mic_host_name = default_device["host"]["name"] @@ -572,7 +575,7 @@ class Model: if mic_energy_queue.empty() is False: energy = mic_energy_queue.get() try: - fnc(energy) + self.check_mic_energy_fnc(energy) except Exception: pass sleep(0.01) @@ -684,7 +687,10 @@ class Model: # self.speaker_get_energy.stop() # self.speaker_get_energy = None - def startCheckSpeakerEnergy(self, fnc): + def startCheckSpeakerEnergy(self, fnc:Callable[[float], None]=None) -> None: + if isinstance(fnc, Callable): + self.check_speaker_energy_fnc = fnc + if config.ENABLE_SPEAKER_AUTOMATIC_SELECTION is True: default_device = getDefaultOutputDevice() speaker_device_name = default_device["device"]["name"] @@ -701,7 +707,7 @@ class Model: if speaker_energy_queue.empty() is False: energy = speaker_energy_queue.get() try: - fnc(energy) + self.check_speaker_energy_fnc(energy) except Exception: pass sleep(0.01) diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index f7c94c69..f2cfb2e4 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -793,7 +793,9 @@ def callbackSetMicHost(data, *args, **kwargs) -> dict: printLog("Set Mic Host", data) config.CHOICE_MIC_HOST = data config.CHOICE_MIC_DEVICE = model.getInputDefaultDevice() - model.stopCheckMicEnergy() + if config.ENABLE_CHECK_ENERGY_SEND is True: + model.stopCheckMicEnergy() + model.startCheckMicEnergy() return {"status":200, "result":{ "host":config.CHOICE_MIC_HOST, @@ -804,7 +806,9 @@ def callbackSetMicHost(data, *args, **kwargs) -> dict: def callbackSetMicDevice(data, *args, **kwargs) -> dict: printLog("Set Mic Device", data) config.CHOICE_MIC_DEVICE = data - model.stopCheckMicEnergy() + if config.ENABLE_CHECK_ENERGY_SEND is True: + model.stopCheckMicEnergy() + model.startCheckMicEnergy() return {"status":200, "result":config.CHOICE_MIC_DEVICE} def callbackSetMicEnergyThreshold(data, *args, **kwargs) -> dict: @@ -940,7 +944,9 @@ def callbackDisableSpeakerAutomaticSelection(*args, **kwargs) -> dict: def callbackSetSpeakerDevice(data, *args, **kwargs) -> dict: printLog("Set Speaker Device", data) config.CHOICE_SPEAKER_DEVICE = data - model.stopCheckSpeakerEnergy() + if config.ENABLE_CHECK_ENERGY_RECEIVE is True: + model.stopCheckSpeakerEnergy() + model.startCheckSpeakerEnergy() return {"status":200, "result":config.CHOICE_SPEAKER_DEVICE} def callbackSetSpeakerEnergyThreshold(data, *args, **kwargs) -> dict: