Răsfoiți Sursa

instruction scheduling fixed; pass date of event to Instruction.execute()

Fabian Peter Hammerle 9 ani în urmă
părinte
comite
294a0b5e32
1 a modificat fișierele cu 7 adăugiri și 6 ștergeri
  1. 7 6
      scripts/jack-plumber

+ 7 - 6
scripts/jack-plumber

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