Merge branch 'controller' into for_webui
This commit is contained in:
@@ -19,6 +19,12 @@ class Client(MMNotificationClient):
|
|||||||
def on_device_removed(self, removed_device_id):
|
def on_device_removed(self, removed_device_id):
|
||||||
self.loop = False
|
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:
|
class DeviceManager:
|
||||||
_instance = None
|
_instance = None
|
||||||
|
|
||||||
@@ -46,6 +52,7 @@ class DeviceManager:
|
|||||||
self.callback_host_list = None
|
self.callback_host_list = None
|
||||||
self.callback_mic_device_list = None
|
self.callback_mic_device_list = None
|
||||||
self.callback_speaker_device_list = None
|
self.callback_speaker_device_list = None
|
||||||
|
self.callback_prev_update = None
|
||||||
|
|
||||||
self.monitoring_flag = False
|
self.monitoring_flag = False
|
||||||
self.startMonitoring()
|
self.startMonitoring()
|
||||||
@@ -130,17 +137,20 @@ class DeviceManager:
|
|||||||
enumerator.RegisterEndpointNotificationCallback(cb)
|
enumerator.RegisterEndpointNotificationCallback(cb)
|
||||||
try:
|
try:
|
||||||
while self.monitoring_flag is True:
|
while self.monitoring_flag is True:
|
||||||
while cb.loop is True:
|
try:
|
||||||
sleep(1)
|
while cb.loop is True:
|
||||||
enumerator.UnregisterEndpointNotificationCallback(cb)
|
sleep(1)
|
||||||
sleep(1)
|
enumerator.UnregisterEndpointNotificationCallback(cb)
|
||||||
|
self.runPrevUpdateDevices()
|
||||||
self.update()
|
sleep(2)
|
||||||
self.noticeDefaultDevice()
|
self.update()
|
||||||
|
self.noticeDefaultDevice()
|
||||||
cb = Client()
|
except Exception:
|
||||||
enumerator = AudioUtilities.GetDeviceEnumerator()
|
pass
|
||||||
enumerator.RegisterEndpointNotificationCallback(cb)
|
finally:
|
||||||
|
cb = Client()
|
||||||
|
enumerator = AudioUtilities.GetDeviceEnumerator()
|
||||||
|
enumerator.RegisterEndpointNotificationCallback(cb)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
comtypes.CoUninitialize()
|
comtypes.CoUninitialize()
|
||||||
@@ -185,6 +195,15 @@ class DeviceManager:
|
|||||||
def clearCallbackSpeakerDeviceList(self):
|
def clearCallbackSpeakerDeviceList(self):
|
||||||
self.callback_speaker_device_list = None
|
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):
|
def noticeDefaultDevice(self):
|
||||||
if self.callback_default_mic_device is not None:
|
if self.callback_default_mic_device is not None:
|
||||||
if self.prev_default_mic_device["device"]["name"] != self.default_mic_device["device"]["name"]:
|
if self.prev_default_mic_device["device"]["name"] != self.default_mic_device["device"]["name"]:
|
||||||
|
|||||||
@@ -55,9 +55,23 @@ class Controller:
|
|||||||
model.getListSpeakerDevice(),
|
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:
|
def updateSelectedMicDevice(self, host, device) -> None:
|
||||||
config.SELECTED_MIC_HOST = host
|
config.SELECTED_MIC_HOST = host
|
||||||
config.SELECTED_MIC_DEVICE = device
|
config.SELECTED_MIC_DEVICE = device
|
||||||
|
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
||||||
|
model.startMicTranscript()
|
||||||
|
if config.ENABLE_CHECK_ENERGY_SEND is True:
|
||||||
|
model.startCheckMicEnergy()
|
||||||
self.run(
|
self.run(
|
||||||
200,
|
200,
|
||||||
self.run_mapping["selected_mic_device"],
|
self.run_mapping["selected_mic_device"],
|
||||||
@@ -66,6 +80,10 @@ class Controller:
|
|||||||
|
|
||||||
def updateSelectedSpeakerDevice(self, device) -> None:
|
def updateSelectedSpeakerDevice(self, device) -> None:
|
||||||
config.SELECTED_SPEAKER_DEVICE = device
|
config.SELECTED_SPEAKER_DEVICE = device
|
||||||
|
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
||||||
|
model.startSpeakerTranscript()
|
||||||
|
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
|
||||||
|
model.startCheckSpeakerEnergy()
|
||||||
self.run(
|
self.run(
|
||||||
200,
|
200,
|
||||||
self.run_mapping["selected_speaker_device"],
|
self.run_mapping["selected_speaker_device"],
|
||||||
@@ -125,7 +143,6 @@ class Controller:
|
|||||||
)
|
)
|
||||||
|
|
||||||
elif isinstance(message, str) and len(message) > 0:
|
elif isinstance(message, str) and len(message) > 0:
|
||||||
# addSentMessageLog(message)
|
|
||||||
translation = []
|
translation = []
|
||||||
transliteration = []
|
transliteration = []
|
||||||
if model.checkKeywords(message):
|
if model.checkKeywords(message):
|
||||||
@@ -245,7 +262,6 @@ class Controller:
|
|||||||
id = data["id"]
|
id = data["id"]
|
||||||
message = data["message"]
|
message = data["message"]
|
||||||
if len(message) > 0:
|
if len(message) > 0:
|
||||||
# addSentMessageLog(message)
|
|
||||||
translation = []
|
translation = []
|
||||||
transliteration = []
|
transliteration = []
|
||||||
if config.ENABLE_TRANSLATION is False:
|
if config.ENABLE_TRANSLATION is False:
|
||||||
@@ -367,25 +383,6 @@ class Controller:
|
|||||||
config.ENABLE_FOREGROUND = False
|
config.ENABLE_FOREGROUND = False
|
||||||
return {"status":200, "result":config.ENABLE_FOREGROUND}
|
return {"status":200, "result":config.ENABLE_FOREGROUND}
|
||||||
|
|
||||||
def setEnableConfigWindow(self, *args, **kwargs) -> dict:
|
|
||||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
|
||||||
self.stopThreadingTranscriptionSendMessageOnOpenConfigWindow()
|
|
||||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
|
||||||
self.stopThreadingTranscriptionReceiveMessageOnOpenConfigWindow()
|
|
||||||
return {"status":200, "result":True}
|
|
||||||
|
|
||||||
def setDisableConfigWindow(self, *args, **kwargs) -> dict:
|
|
||||||
model.stopCheckMicEnergy()
|
|
||||||
model.stopCheckSpeakerEnergy()
|
|
||||||
|
|
||||||
if config.ENABLE_TRANSCRIPTION_SEND is True:
|
|
||||||
self.startThreadingTranscriptionSendMessageOnCloseConfigWindow()
|
|
||||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
|
||||||
sleep(2)
|
|
||||||
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
|
|
||||||
self.startThreadingTranscriptionReceiveMessageOnCloseConfigWindow()
|
|
||||||
return {"status":200, "result":True}
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getSelectedTabNo(*args, **kwargs) -> dict:
|
def getSelectedTabNo(*args, **kwargs) -> dict:
|
||||||
return {"status":200, "result":config.SELECTED_TAB_NO}
|
return {"status":200, "result":config.SELECTED_TAB_NO}
|
||||||
@@ -601,6 +598,7 @@ class Controller:
|
|||||||
|
|
||||||
def setEnableAutoMicSelect(self, *args, **kwargs) -> dict:
|
def setEnableAutoMicSelect(self, *args, **kwargs) -> dict:
|
||||||
config.AUTO_MIC_SELECT = True
|
config.AUTO_MIC_SELECT = True
|
||||||
|
device_manager.setCallbackPrevUpdateDevices(self.prevUpdateSelectedDevices)
|
||||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
||||||
device_manager.noticeDefaultDevice()
|
device_manager.noticeDefaultDevice()
|
||||||
device_manager.forceSetMicDefaultDevice()
|
device_manager.forceSetMicDefaultDevice()
|
||||||
@@ -608,6 +606,7 @@ class Controller:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def setDisableAutoMicSelect(*args, **kwargs) -> dict:
|
def setDisableAutoMicSelect(*args, **kwargs) -> dict:
|
||||||
|
device_manager.clearCallbackPrevUpdateDevices()
|
||||||
device_manager.clearCallbackDefaultMicDevice()
|
device_manager.clearCallbackDefaultMicDevice()
|
||||||
config.AUTO_MIC_SELECT = False
|
config.AUTO_MIC_SELECT = False
|
||||||
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
return {"status":200, "result":config.AUTO_MIC_SELECT}
|
||||||
@@ -784,6 +783,7 @@ class Controller:
|
|||||||
|
|
||||||
def setEnableAutoSpeakerSelect(self, *args, **kwargs) -> dict:
|
def setEnableAutoSpeakerSelect(self, *args, **kwargs) -> dict:
|
||||||
config.AUTO_SPEAKER_SELECT = True
|
config.AUTO_SPEAKER_SELECT = True
|
||||||
|
device_manager.setCallbackPrevUpdateDevices(self.prevUpdateSelectedDevices)
|
||||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
||||||
device_manager.noticeDefaultDevice()
|
device_manager.noticeDefaultDevice()
|
||||||
device_manager.forceSetSpeakerDefaultDevice()
|
device_manager.forceSetSpeakerDefaultDevice()
|
||||||
@@ -791,6 +791,7 @@ class Controller:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def setDisableAutoSpeakerSelect(*args, **kwargs) -> dict:
|
def setDisableAutoSpeakerSelect(*args, **kwargs) -> dict:
|
||||||
|
device_manager.clearCallbackPrevUpdateDevices()
|
||||||
device_manager.clearCallbackDefaultSpeakerDevice()
|
device_manager.clearCallbackDefaultSpeakerDevice()
|
||||||
config.AUTO_SPEAKER_SELECT = False
|
config.AUTO_SPEAKER_SELECT = False
|
||||||
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
return {"status":200, "result":config.AUTO_SPEAKER_SELECT}
|
||||||
@@ -1414,24 +1415,6 @@ class Controller:
|
|||||||
th_stopTranscriptionSendMessage.start()
|
th_stopTranscriptionSendMessage.start()
|
||||||
th_stopTranscriptionSendMessage.join()
|
th_stopTranscriptionSendMessage.join()
|
||||||
|
|
||||||
def startTranscriptionSendMessageOnCloseConfigWindow(self) -> None:
|
|
||||||
mic_message = self.MicMessage(self)
|
|
||||||
model.startMicTranscript(mic_message.send)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def stopTranscriptionSendMessageOnOpenConfigWindow() -> None:
|
|
||||||
model.stopMicTranscript()
|
|
||||||
|
|
||||||
def startThreadingTranscriptionSendMessageOnCloseConfigWindow(self) -> None:
|
|
||||||
th_startTranscriptionSendMessage = Thread(target=self.startTranscriptionSendMessageOnCloseConfigWindow)
|
|
||||||
th_startTranscriptionSendMessage.daemon = True
|
|
||||||
th_startTranscriptionSendMessage.start()
|
|
||||||
|
|
||||||
def stopThreadingTranscriptionSendMessageOnOpenConfigWindow(self) -> None:
|
|
||||||
th_stopTranscriptionSendMessage = Thread(target=self.stopTranscriptionSendMessageOnOpenConfigWindow)
|
|
||||||
th_stopTranscriptionSendMessage.daemon = True
|
|
||||||
th_stopTranscriptionSendMessage.start()
|
|
||||||
|
|
||||||
def startTranscriptionReceiveMessage(self) -> None:
|
def startTranscriptionReceiveMessage(self) -> None:
|
||||||
model.startSpeakerTranscript(self.speakerMessage)
|
model.startSpeakerTranscript(self.speakerMessage)
|
||||||
|
|
||||||
@@ -1450,24 +1433,6 @@ class Controller:
|
|||||||
th_stopTranscriptionReceiveMessage.start()
|
th_stopTranscriptionReceiveMessage.start()
|
||||||
th_stopTranscriptionReceiveMessage.join()
|
th_stopTranscriptionReceiveMessage.join()
|
||||||
|
|
||||||
def startTranscriptionReceiveMessageOnCloseConfigWindow(self) -> None:
|
|
||||||
speaker_message = self.SpeakerMessage(self)
|
|
||||||
model.startSpeakerTranscript(speaker_message.receive)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def stopTranscriptionReceiveMessageOnOpenConfigWindow() -> None:
|
|
||||||
model.stopSpeakerTranscript()
|
|
||||||
|
|
||||||
def startThreadingTranscriptionReceiveMessageOnCloseConfigWindow(self) -> None:
|
|
||||||
th_startTranscriptionReceiveMessage = Thread(target=self.startTranscriptionReceiveMessageOnCloseConfigWindow)
|
|
||||||
th_startTranscriptionReceiveMessage.daemon = True
|
|
||||||
th_startTranscriptionReceiveMessage.start()
|
|
||||||
|
|
||||||
def stopThreadingTranscriptionReceiveMessageOnOpenConfigWindow(self) -> None:
|
|
||||||
th_stopTranscriptionReceiveMessage = Thread(target=self.stopTranscriptionReceiveMessageOnOpenConfigWindow)
|
|
||||||
th_stopTranscriptionReceiveMessage.daemon = True
|
|
||||||
th_stopTranscriptionReceiveMessage.start()
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def replaceExclamationsWithRandom(text):
|
def replaceExclamationsWithRandom(text):
|
||||||
# ![...] にマッチする正規表現
|
# ![...] にマッチする正規表現
|
||||||
@@ -1512,7 +1477,7 @@ class Controller:
|
|||||||
engine = config.SELECTED_TRANSLATION_ENGINES[config.SELECTED_TAB_NO]
|
engine = config.SELECTED_TRANSLATION_ENGINES[config.SELECTED_TAB_NO]
|
||||||
engines = self.getTranslationEngines()["result"]
|
engines = self.getTranslationEngines()["result"]
|
||||||
if engine not in engines:
|
if engine not in engines:
|
||||||
engine = engines[0]
|
engine = "CTranslate2"
|
||||||
config.SELECTED_TRANSLATION_ENGINES[config.SELECTED_TAB_NO] = engine
|
config.SELECTED_TRANSLATION_ENGINES[config.SELECTED_TAB_NO] = engine
|
||||||
self.run(200, self.run_mapping["selected_translation_engines"], config.SELECTED_TRANSLATION_ENGINES)
|
self.run(200, self.run_mapping["selected_translation_engines"], config.SELECTED_TRANSLATION_ENGINES)
|
||||||
self.run(200, self.run_mapping["translation_engines"], engines)
|
self.run(200, self.run_mapping["translation_engines"], engines)
|
||||||
@@ -1584,10 +1549,10 @@ class Controller:
|
|||||||
# init Auto device selection
|
# init Auto device selection
|
||||||
printLog("Init Auto Device Selection")
|
printLog("Init Auto Device Selection")
|
||||||
if config.AUTO_MIC_SELECT is True:
|
if config.AUTO_MIC_SELECT is True:
|
||||||
device_manager.setCallbackDefaultMicDevice(self.updateSelectedMicDevice)
|
self.setEnableAutoMicSelect()
|
||||||
|
|
||||||
if config.AUTO_SPEAKER_SELECT is True:
|
if config.AUTO_SPEAKER_SELECT is True:
|
||||||
device_manager.setCallbackDefaultSpeakerDevice(self.updateSelectedSpeakerDevice)
|
self.setEnableAutoSpeakerSelect()
|
||||||
|
|
||||||
device_manager.setCallbackHostList(self.updateMicHostList)
|
device_manager.setCallbackHostList(self.updateMicHostList)
|
||||||
device_manager.setCallbackMicDeviceList(self.updateMicDeviceList)
|
device_manager.setCallbackMicDeviceList(self.updateMicDeviceList)
|
||||||
|
|||||||
@@ -58,9 +58,6 @@ mapping = {
|
|||||||
"/set/enable/foreground": {"status": True, "variable":controller.setEnableForeground},
|
"/set/enable/foreground": {"status": True, "variable":controller.setEnableForeground},
|
||||||
"/set/disable/foreground": {"status": True, "variable":controller.setDisableForeground},
|
"/set/disable/foreground": {"status": True, "variable":controller.setDisableForeground},
|
||||||
|
|
||||||
"/set/enable/config_window": {"status": True, "variable":controller.setEnableConfigWindow},
|
|
||||||
"/set/disable/config_window": {"status": True, "variable":controller.setDisableConfigWindow},
|
|
||||||
|
|
||||||
"/get/data/selected_tab_no": {"status": True, "variable":controller.getSelectedTabNo},
|
"/get/data/selected_tab_no": {"status": True, "variable":controller.getSelectedTabNo},
|
||||||
"/set/data/selected_tab_no": {"status": True, "variable":controller.setSelectedTabNo},
|
"/set/data/selected_tab_no": {"status": True, "variable":controller.setSelectedTabNo},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user