|
@@ -1,7 +1,7 @@
|
|
|
from core.ConfigurationManager import SettingLoader
|
|
|
-from core.JarvisTrigger import JarvisTrigger
|
|
|
from core.OrderAnalyser import OrderAnalyser
|
|
|
from core.OrderListener import OrderListener
|
|
|
+from core.TriggerLauncher import TriggerLauncher
|
|
|
|
|
|
from neurons import Say
|
|
|
|
|
@@ -13,31 +13,19 @@ class MainController:
|
|
|
self.settings = SettingLoader.get_settings()
|
|
|
|
|
|
# create an order listener object
|
|
|
- self.order_listener = OrderListener(self.get_analyse_order_callback())
|
|
|
+ self.order_listener = OrderListener(self.analyse_order)
|
|
|
# Wait that the jarvis trigger is pronounced by the user
|
|
|
- self.jarvis_triger = JarvisTrigger(self)
|
|
|
+ self.trigger_instance = self._get_default_trigger()
|
|
|
+ self.trigger_instance.start()
|
|
|
|
|
|
- def start(self):
|
|
|
- self.jarvis_triger.start()
|
|
|
-
|
|
|
- def pause_jarvis_trigger(self):
|
|
|
- """
|
|
|
- The hotwork to wake up jarvis has been detected, we pause the snowboy process
|
|
|
- :return:
|
|
|
- """
|
|
|
- self.jarvis_triger.pause()
|
|
|
-
|
|
|
- def unpause_jarvis_trigger(self):
|
|
|
- self.jarvis_triger.unpause()
|
|
|
-
|
|
|
- def hotword_detected(self):
|
|
|
+ def callback(self):
|
|
|
"""
|
|
|
# we have detected the hotword, we can now pause the Jarvis Trigger for a while
|
|
|
# The user can speak out loud his order during this time.
|
|
|
:return:
|
|
|
"""
|
|
|
# pause the snowboy process
|
|
|
- self.pause_jarvis_trigger()
|
|
|
+ self.trigger_instance.pause()
|
|
|
Say(message=self.settings.random_wake_up_answers)
|
|
|
self.order_listener.load_stt_plugin()
|
|
|
|
|
@@ -48,6 +36,14 @@ class MainController:
|
|
|
"""
|
|
|
order_analyser = OrderAnalyser(order, main_controller=self, brain_file=self.brain_file)
|
|
|
order_analyser.start()
|
|
|
+ # restart the trigger when the order analyser has finish his job
|
|
|
+ self.trigger_instance.unpause()
|
|
|
|
|
|
- def get_analyse_order_callback(self):
|
|
|
- return self.analyse_order
|
|
|
+ def _get_default_trigger(self):
|
|
|
+ """
|
|
|
+ Return an instance of the default trigger
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ for trigger in self.settings.triggers:
|
|
|
+ if trigger.name == self.settings.default_trigger_name:
|
|
|
+ return TriggerLauncher.get_trigger(trigger, callback=self.callback)
|