|  | @@ -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)
 |