👍️[Update] Controller : volume check時にDeviceの自動切り替え処理が動作しない問題を修正
This commit is contained in:
@@ -19,6 +19,12 @@ class Client(MMNotificationClient):
|
||||
def on_device_removed(self, removed_device_id):
|
||||
self.loop = False
|
||||
|
||||
def on_device_state_changed(self, device_id, state):
|
||||
self.loop = False
|
||||
|
||||
def on_property_value_changed(self, device_id, key):
|
||||
self.loop = False
|
||||
|
||||
class DeviceManager:
|
||||
_instance = None
|
||||
|
||||
@@ -46,6 +52,7 @@ class DeviceManager:
|
||||
self.callback_host_list = None
|
||||
self.callback_mic_device_list = None
|
||||
self.callback_speaker_device_list = None
|
||||
self.callback_prev_update = None
|
||||
|
||||
self.monitoring_flag = False
|
||||
self.startMonitoring()
|
||||
@@ -133,8 +140,8 @@ class DeviceManager:
|
||||
while cb.loop is True:
|
||||
sleep(1)
|
||||
enumerator.UnregisterEndpointNotificationCallback(cb)
|
||||
sleep(1)
|
||||
|
||||
self.runPrevUpdateDevices()
|
||||
sleep(2)
|
||||
self.update()
|
||||
self.noticeDefaultDevice()
|
||||
|
||||
@@ -185,6 +192,15 @@ class DeviceManager:
|
||||
def clearCallbackSpeakerDeviceList(self):
|
||||
self.callback_speaker_device_list = None
|
||||
|
||||
def setCallbackPrevUpdateDevices(self, callback):
|
||||
self.callback_prev_update = callback
|
||||
|
||||
def clearCallbackPrevUpdateDevices(self):
|
||||
self.callback_prev_update = None
|
||||
|
||||
def runPrevUpdateDevices(self):
|
||||
self.callback_prev_update()
|
||||
|
||||
def noticeDefaultDevice(self):
|
||||
if self.callback_default_mic_device is not None:
|
||||
if self.prev_default_mic_device["device"]["name"] != self.default_mic_device["device"]["name"]:
|
||||
|
||||
@@ -55,6 +55,16 @@ class Controller:
|
||||
model.getListSpeakerDevice(),
|
||||
)
|
||||
|
||||
def prevUpdateSelectedDevices(self) -> None:
|
||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
||||
model.stopMicTranscript()
|
||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||
model.stopSpeakerTranscript()
|
||||
if config.ENABLE_CHECK_ENERGY_SEND is True:
|
||||
model.stopCheckMicEnergy()
|
||||
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
|
||||
model.stopCheckSpeakerEnergy()
|
||||
|
||||
def updateSelectedMicDevice(self, host, device) -> None:
|
||||
config.SELECTED_MIC_HOST = host
|
||||
config.SELECTED_MIC_DEVICE = device
|
||||
@@ -588,6 +598,7 @@ class Controller:
|
||||
|
||||
def setEnableAutoMicSelect(self, *args, **kwargs) -> dict:
|
||||
config.AUTO_MIC_SELECT = True
|
||||
device_manager.setCallbackPrevUpdateDevices(self.prevUpdateSelectedDevices)
|
||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
||||
device_manager.noticeDefaultDevice()
|
||||
device_manager.forceSetMicDefaultDevice()
|
||||
@@ -595,6 +606,7 @@ class Controller:
|
||||
|
||||
@staticmethod
|
||||
def setDisableAutoMicSelect(*args, **kwargs) -> dict:
|
||||
device_manager.clearCallbackPrevUpdateDevices()
|
||||
device_manager.clearCallbackDefaultMicDevice()
|
||||
config.AUTO_MIC_SELECT = False
|
||||
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
||||
@@ -771,6 +783,7 @@ class Controller:
|
||||
|
||||
def setEnableAutoSpeakerSelect(self, *args, **kwargs) -> dict:
|
||||
config.AUTO_SPEAKER_SELECT = True
|
||||
device_manager.setCallbackPrevUpdateDevices(self.prevUpdateSelectedDevices)
|
||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
||||
device_manager.noticeDefaultDevice()
|
||||
device_manager.forceSetSpeakerDefaultDevice()
|
||||
@@ -778,6 +791,7 @@ class Controller:
|
||||
|
||||
@staticmethod
|
||||
def setDisableAutoSpeakerSelect(*args, **kwargs) -> dict:
|
||||
device_manager.clearCallbackPrevUpdateDevices()
|
||||
device_manager.clearCallbackDefaultSpeakerDevice()
|
||||
config.AUTO_SPEAKER_SELECT = False
|
||||
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
||||
@@ -1535,10 +1549,10 @@ class Controller:
|
||||
# init Auto device selection
|
||||
printLog("Init Auto Device Selection")
|
||||
if config.AUTO_MIC_SELECT is True:
|
||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
||||
self.setEnableAutoMicSelect()
|
||||
|
||||
if config.AUTO_SPEAKER_SELECT is True:
|
||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
||||
self.setEnableAutoSpeakerSelect()
|
||||
|
||||
device_manager.setCallbackHostList(self.updateMicHostList)
|
||||
device_manager.setCallbackMicDeviceList(self.updateMicDeviceList)
|
||||
|
||||
Reference in New Issue
Block a user