| 
					
				 | 
			
			
				@@ -25,7 +25,7 @@ class PortEventType: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class Instruction(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def execute(self, client, port, event): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def execute(self, client, port, event, date): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __repr__(self): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,7 +36,7 @@ class PortRenameInstruction(Instruction): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __init__(self, new_port_name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.new_port_name = new_port_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def execute(self, client, port, event): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def execute(self, client, port, event, date): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if event in [PortEventType.registered, PortEventType.preexisting]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             port.set_short_name(self.new_port_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,7 +46,7 @@ class PortConnectInstruction(Instruction): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.other_client_pattern = other_client_pattern 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.other_port_pattern = other_port_pattern 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def execute(self, client, port, event): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def execute(self, client, port, event, date): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if event in [PortEventType.registered, PortEventType.renamed, PortEventType.preexisting]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for other_port in [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     p for p in client.get_ports() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -61,21 +61,22 @@ class PortConnectInstruction(Instruction): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 except jack.ConnectionExists: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def check_port(client, port, event, instructions, rename = True): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def check_port(client, port, event, instructions): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    date = datetime.datetime.now() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log("port '%s' %s" % (port.get_name(), event)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for client_pattern in instructions: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if re.match(client_pattern, port.get_client_name()): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for port_pattern in instructions[client_pattern]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if re.match(port_pattern, port.get_short_name()): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for instruction in instructions[client_pattern][port_pattern]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        GLib.idle_add(lambda: instruction.execute(client, port, event)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        GLib.idle_add(instruction.execute, client, port, event, date) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def port_registered(client, port, instructions): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     check_port(client, port, PortEventType.registered, instructions) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def port_renamed(client, port, old_name, new_name, instructions): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ Avoid recursion by skipping rename instructions. """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    check_port(client, port, PortEventType.renamed, instructions, rename = False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    check_port(client, port, PortEventType.renamed, instructions) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def server_shutdown(client, reason, callback): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     print(reason) 
			 |