diff --git a/src-python/device_manager.py b/src-python/device_manager.py index 434a5314..bae8b8a7 100644 --- a/src-python/device_manager.py +++ b/src-python/device_manager.py @@ -257,7 +257,7 @@ class DeviceManager: if self.callback_default_speaker_device is not None and self.update_flag_default_speaker_device is True: self.setSpeakerDefaultDevice() if self.callback_host_list is not None and self.update_flag_host_list is True: - self.setMicHost() + self.setMicHostList() if self.callback_mic_device_list is not None and self.update_flag_mic_device_list is True: self.setMicDeviceList() if self.callback_speaker_device_list is not None and self.update_flag_speaker_device_list is True: @@ -275,7 +275,7 @@ class DeviceManager: def setSpeakerDefaultDevice(self): self.callback_default_speaker_device(self.default_speaker_device["device"]["name"]) - def setMicHost(self): + def setMicHostList(self): self.callback_host_list() def setMicDeviceList(self): @@ -296,6 +296,17 @@ class DeviceManager: def getDefaultSpeakerDevice(self): return self.default_speaker_device + def forceUpdateAndSetMicDevices(self): + self.update() + self.setMicHostList() + self.setMicDeviceList() + self.setMicDefaultDevice() + + def forceUpdateAndSetSpeakerDevices(self): + self.update() + self.setSpeakerDeviceList() + self.setSpeakerDefaultDevice() + device_manager = DeviceManager() if __name__ == "__main__": diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index 8d7c939c..12f42d1d 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -608,8 +608,7 @@ class Controller: device_manager.setCallbackProcessBeforeUpdateDevices(self.stopAccessDevices) device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice) device_manager.setCallbackProcessAfterUpdateDevices(self.restartAccessDevices) - device_manager.noticeUpdateDevices() - device_manager.setMicDefaultDevice() + device_manager.forceUpdateAndSetMicDevices() return {"status":200, "result":config.AUTO_MIC_SELECT} @staticmethod @@ -793,8 +792,8 @@ class Controller: device_manager.setCallbackProcessBeforeUpdateDevices(self.stopAccessDevices) device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice) device_manager.setCallbackProcessAfterUpdateDevices(self.restartAccessDevices) - device_manager.noticeUpdateDevices() - device_manager.setSpeakerDefaultDevice() + device_manager.forceUpdateAndSetSpeakerDevices() + return {"status":200, "result":config.AUTO_SPEAKER_SELECT} @staticmethod @@ -1599,6 +1598,10 @@ class Controller: model.startCheckMuteSelfStatus() # init Auto device selection + device_manager.setCallbackHostList(self.updateMicHostList) + device_manager.setCallbackMicDeviceList(self.updateMicDeviceList) + device_manager.setCallbackSpeakerDeviceList(self.updateSpeakerDeviceList) + printLog("Init Auto Device Selection") if config.AUTO_MIC_SELECT is True: self.setEnableAutoMicSelect() @@ -1606,8 +1609,4 @@ class Controller: if config.AUTO_SPEAKER_SELECT is True: self.setEnableAutoSpeakerSelect() - device_manager.setCallbackHostList(self.updateMicHostList) - device_manager.setCallbackMicDeviceList(self.updateMicDeviceList) - device_manager.setCallbackSpeakerDeviceList(self.updateSpeakerDeviceList) - printLog("End Initialization") \ No newline at end of file