[Update] Controller and DeviceManager: Refactor device management methods for mic and speaker separation
This commit is contained in:
@@ -86,27 +86,31 @@ class Controller:
|
||||
settings,
|
||||
)
|
||||
|
||||
def restartAccessDevices(self) -> None:
|
||||
def restartAccessMicDevices(self) -> None:
|
||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
||||
self.startThreadingTranscriptionSendMessage()
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
self.startThreadingTranscriptionReceiveMessage()
|
||||
if config.ENABLE_CHECK_ENERGY_SEND is True:
|
||||
model.startCheckMicEnergy(
|
||||
self.progressBarMicEnergy,
|
||||
)
|
||||
|
||||
def restartAccessSpeakerDevices(self) -> None:
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
self.startThreadingTranscriptionReceiveMessage()
|
||||
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
|
||||
model.startCheckSpeakerEnergy(
|
||||
self.progressBarSpeakerEnergy,
|
||||
)
|
||||
|
||||
def stopAccessDevices(self) -> None:
|
||||
def stopAccessMicDevices(self) -> None:
|
||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
||||
self.stopThreadingTranscriptionSendMessage()
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
self.stopThreadingTranscriptionReceiveMessage()
|
||||
if config.ENABLE_CHECK_ENERGY_SEND is True:
|
||||
model.stopCheckMicEnergy()
|
||||
|
||||
def stopAccessSpeakerDevices(self) -> None:
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
self.stopThreadingTranscriptionReceiveMessage()
|
||||
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
|
||||
model.stopCheckSpeakerEnergy()
|
||||
|
||||
@@ -1048,22 +1052,25 @@ class Controller:
|
||||
def getAutoMicSelect(*args, **kwargs) -> dict:
|
||||
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
||||
|
||||
def applyAutoMicSelect(self) -> None:
|
||||
device_manager.setCallbackProcessBeforeUpdateMicDevices(self.stopAccessMicDevices)
|
||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
||||
device_manager.setCallbackProcessAfterUpdateMicDevices(self.restartAccessMicDevices)
|
||||
device_manager.forceUpdateAndSetMicDevices()
|
||||
|
||||
def setEnableAutoMicSelect(self, *args, **kwargs) -> dict:
|
||||
if config.AUTO_MIC_SELECT is False:
|
||||
self.applyAutoMicSelect()
|
||||
config.AUTO_MIC_SELECT = True
|
||||
device_manager.setCallbackProcessBeforeUpdateDevices(self.stopAccessDevices)
|
||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
||||
device_manager.setCallbackProcessAfterUpdateDevices(self.restartAccessDevices)
|
||||
device_manager.forceUpdateAndSetMicDevices()
|
||||
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
||||
|
||||
@staticmethod
|
||||
def setDisableAutoMicSelect(*args, **kwargs) -> dict:
|
||||
if config.AUTO_MIC_SELECT is True:
|
||||
config.AUTO_MIC_SELECT = False
|
||||
device_manager.clearCallbackProcessBeforeUpdateDevices()
|
||||
device_manager.clearCallbackProcessBeforeUpdateMicDevices()
|
||||
device_manager.clearCallbackDefaultMicDevice()
|
||||
device_manager.clearCallbackProcessAfterUpdateDevices()
|
||||
device_manager.clearCallbackProcessAfterUpdateMicDevices()
|
||||
config.AUTO_MIC_SELECT = False
|
||||
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
||||
|
||||
@staticmethod
|
||||
@@ -1245,22 +1252,25 @@ class Controller:
|
||||
def getAutoSpeakerSelect(*args, **kwargs) -> dict:
|
||||
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
||||
|
||||
def applyAutoSpeakerSelect(self) -> None:
|
||||
device_manager.setCallbackProcessBeforeUpdateSpeakerDevices(self.stopAccessSpeakerDevices)
|
||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
||||
device_manager.setCallbackProcessAfterUpdateSpeakerDevices(self.restartAccessSpeakerDevices)
|
||||
device_manager.forceUpdateAndSetSpeakerDevices()
|
||||
|
||||
def setEnableAutoSpeakerSelect(self, *args, **kwargs) -> dict:
|
||||
if config.AUTO_SPEAKER_SELECT is False:
|
||||
self.applyAutoSpeakerSelect()
|
||||
config.AUTO_SPEAKER_SELECT = True
|
||||
device_manager.setCallbackProcessBeforeUpdateDevices(self.stopAccessDevices)
|
||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
||||
device_manager.setCallbackProcessAfterUpdateDevices(self.restartAccessDevices)
|
||||
device_manager.forceUpdateAndSetSpeakerDevices()
|
||||
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
||||
|
||||
@staticmethod
|
||||
def setDisableAutoSpeakerSelect(*args, **kwargs) -> dict:
|
||||
if config.AUTO_SPEAKER_SELECT is True:
|
||||
config.AUTO_SPEAKER_SELECT = False
|
||||
device_manager.clearCallbackProcessBeforeUpdateDevices()
|
||||
device_manager.clearCallbackProcessBeforeUpdateSpeakerDevices()
|
||||
device_manager.clearCallbackDefaultSpeakerDevice()
|
||||
device_manager.clearCallbackProcessAfterUpdateDevices()
|
||||
device_manager.clearCallbackProcessAfterUpdateSpeakerDevices()
|
||||
config.AUTO_SPEAKER_SELECT = False
|
||||
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
||||
|
||||
@staticmethod
|
||||
@@ -2507,9 +2517,9 @@ class Controller:
|
||||
|
||||
printLog("Init Auto Device Selection")
|
||||
if config.AUTO_MIC_SELECT is True:
|
||||
self.setEnableAutoMicSelect()
|
||||
self.applyAutoMicSelect()
|
||||
if config.AUTO_SPEAKER_SELECT is True:
|
||||
self.setEnableAutoSpeakerSelect()
|
||||
self.applyAutoSpeakerSelect()
|
||||
|
||||
printLog("Init Overlay")
|
||||
if (config.OVERLAY_SMALL_LOG is True or config.OVERLAY_LARGE_LOG is True):
|
||||
|
||||
@@ -178,7 +178,8 @@ class DeviceManager:
|
||||
sleep(1)
|
||||
enumerator.UnregisterEndpointNotificationCallback(cb)
|
||||
comtypes.CoUninitialize()
|
||||
self.runProcessBeforeUpdateDevices()
|
||||
self.runProcessBeforeUpdateMicDevices()
|
||||
self.runProcessBeforeUpdateSpeakerDevices()
|
||||
sleep(2)
|
||||
for _ in range(10):
|
||||
self.update()
|
||||
@@ -186,7 +187,8 @@ class DeviceManager:
|
||||
break
|
||||
sleep(2)
|
||||
self.noticeUpdateDevices()
|
||||
self.runProcessAfterUpdateDevices()
|
||||
self.runProcessAfterUpdateMicDevices()
|
||||
self.runProcessAfterUpdateSpeakerDevices()
|
||||
except Exception:
|
||||
errorLogging()
|
||||
finally:
|
||||
@@ -234,25 +236,45 @@ class DeviceManager:
|
||||
def clearCallbackSpeakerDeviceList(self):
|
||||
self.callback_speaker_device_list = None
|
||||
|
||||
def setCallbackProcessBeforeUpdateDevices(self, callback):
|
||||
self.callback_process_before_update_devices = callback
|
||||
def setCallbackProcessBeforeUpdateMicDevices(self, callback):
|
||||
self.callback_process_before_update_mic_devices = callback
|
||||
|
||||
def clearCallbackProcessBeforeUpdateDevices(self):
|
||||
self.callback_process_before_update_devices = None
|
||||
def clearCallbackProcessBeforeUpdateMicDevices(self):
|
||||
self.callback_process_before_update_mic_devices = None
|
||||
|
||||
def runProcessBeforeUpdateDevices(self):
|
||||
if isinstance(self.callback_process_before_update_devices, Callable):
|
||||
self.callback_process_before_update_devices()
|
||||
def runProcessBeforeUpdateMicDevices(self):
|
||||
if isinstance(self.callback_process_before_update_mic_devices, Callable):
|
||||
self.callback_process_before_update_mic_devices()
|
||||
|
||||
def setCallbackProcessAfterUpdateDevices(self, callback):
|
||||
self.callback_process_after_update_devices = callback
|
||||
def setCallbackProcessAfterUpdateMicDevices(self, callback):
|
||||
self.callback_process_after_update_mic_devices = callback
|
||||
|
||||
def clearCallbackProcessAfterUpdateDevices(self):
|
||||
self.callback_process_after_update_devices = None
|
||||
def clearCallbackProcessAfterUpdateMicDevices(self):
|
||||
self.callback_process_after_update_mic_devices = None
|
||||
|
||||
def runProcessAfterUpdateDevices(self):
|
||||
if isinstance(self.callback_process_after_update_devices, Callable):
|
||||
self.callback_process_after_update_devices()
|
||||
def runProcessAfterUpdateMicDevices(self):
|
||||
if isinstance(self.callback_process_after_update_mic_devices, Callable):
|
||||
self.callback_process_after_update_mic_devices()
|
||||
|
||||
def setCallbackProcessBeforeUpdateSpeakerDevices(self, callback):
|
||||
self.callback_process_before_update_speaker_devices = callback
|
||||
|
||||
def clearCallbackProcessBeforeUpdateSpeakerDevices(self):
|
||||
self.callback_process_before_update_speaker_devices = None
|
||||
|
||||
def runProcessBeforeUpdateSpeakerDevices(self):
|
||||
if isinstance(self.callback_process_before_update_speaker_devices, Callable):
|
||||
self.callback_process_before_update_speaker_devices()
|
||||
|
||||
def setCallbackProcessAfterUpdateSpeakerDevices(self, callback):
|
||||
self.callback_process_after_update_speaker_devices = callback
|
||||
|
||||
def clearCallbackProcessAfterUpdateSpeakerDevices(self):
|
||||
self.callback_process_after_update_speaker_devices = None
|
||||
|
||||
def runProcessAfterUpdateSpeakerDevices(self):
|
||||
if isinstance(self.callback_process_after_update_speaker_devices, Callable):
|
||||
self.callback_process_after_update_speaker_devices()
|
||||
|
||||
def noticeUpdateDevices(self):
|
||||
if self.update_flag_default_mic_device is True:
|
||||
|
||||
Reference in New Issue
Block a user