Переглянути джерело

add: PAN\TILT FADE, change:reshaper GOBO,PRISMA... no FADETIME

micha 2 роки тому
батько
коміт
d7580b71d2
1 змінених файлів з 60 додано та 26 видалено
  1. 60 26
      _LibreLightDesk.py

+ 60 - 26
_LibreLightDesk.py

@@ -231,6 +231,8 @@ class ValueBuffer():
         return 0
 
 FADE = ValueBuffer()  #2 #0.1 #1.13
+FADE_move = ValueBuffer()  #2 #0.1 #1.13
+FADE_move.val(4)
 
 fx_prm_move = {"SIZE":40,"SPEED":8,"OFFSET":100,"BASE":"0","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":0,"WING":2,"WIDTH":100}
 
@@ -245,10 +247,9 @@ class FX_handler():
 
 
 
-def reshape_preset(data ,value=None,xfade=0,flash=0):
+def reshape_preset(data ,value=None,xfade=0,flash=0,ptfade=0):
 
-    if flash:
-        xfade = 0
+    f=0 #fade
 
     out = []
     for row in data:
@@ -276,15 +277,25 @@ def reshape_preset(data ,value=None,xfade=0,flash=0):
                 else:
                     line["VALUE"]  = v
 
+        if row["ATTR"] in ["PAN","TILT"]:
+            f = ptfade 
 
-        v = xfade 
-        if type( v ) is float:
-            line["FADE"] = round(v,4)
+        for a in ["DIM","ZOOM","FOCUS","RED","GREEN","BLUE","WHITE","AMBER","IRIS","BLADE"]: 
+            #FADE ATTRIBUTES
+            if a in row["ATTR"]:
+                f = xfade 
+                break
+
+        if flash:
+            xfade = 0
+        if type( f ) is float:
+            line["FADE"] = round(f,4)
         else:
-            line["FADE"] = v
+            line["FADE"] = f
         
         if 0:
             cprint("reshape_preset j",line,color="red") 
+        cprint("reshape_preset",line)
         out.append(line)
     return out
 
@@ -935,11 +946,18 @@ class Xevent():
     def live(self,event):       
         if self.mode == "LIVE":
                     
-            if self.attr == "FADE":
-                fade = FADE.val()
-                print("EVENT CHANGE FADE",fade)
+            if "FADE" in self.attr:
+               
+                if self.attr == "FADE":
+                    ct = FADE
+                if "PAN/TILT" in self.attr:
+                    ct = FADE_move
+
+                fade = ct.val()
+                print("EVENT CHANGE FADE",[self.attr])
+                print("EVENT CHANGE FADE",fade,self.attr)
                 if fade < 0.01:
-                    FADE.val(0.01)
+                    ct.val(0.01)
                 elif fade > 100.0:
                     pass #fade = 100
                 if event.num == 4:
@@ -947,12 +965,12 @@ class Xevent():
                 elif event.num == 5:
                     fade /= 1.1
                 elif event.num == 1:
-                    if FADE._is():
-                        FADE.off()# = 0
+                    if ct._is():
+                        ct.off()# = 0
                         self.data.commands.elem[self.attr]["bg"] = "grey"
                         self.elem.config(activebackground="grey")
                     else:
-                        FADE.on()# = 1
+                        ct.on()# = 1
                         self.data.commands.elem[self.attr]["bg"] = "green"
                         self.elem.config(activebackground="lightgreen")
                 elif event.num == 2:
@@ -969,8 +987,15 @@ class Xevent():
                     elif fade < 1:
                         fade = 1.1
                 fade = round(fade,3)
-                fade = FADE.val(fade)
-                self.data.commands.elem[self.attr]["text"] = "Fade{:0.2f}".format(fade)
+                fade = ct.val(fade)
+
+                if self.attr == "FADE":
+                    self.data.commands.elem[self.attr]["text"] = "FADE:{:0.2f}".format(fade)
+                if "PAN/TILT" in self.attr:
+                    self.data.commands.elem[self.attr]["text"] = "PAN\TILT\nFADE:{:0.2f}".format(fade)
+
+
+
     def command(self,event):       
         if self.mode == "COMMAND":
             
@@ -1711,15 +1736,18 @@ class GUI():
                 v2_fx = sdata[fix][attr]["FX"]
                 #print( self.data.elem_attr)
                 if fix in self.elem_attr:
-                    elem = self.elem_attr[fix][attr]
-                    FIXTURES.fixtures[fix]["ATTRIBUT"][attr]["ACTIVE"] = 1
-                    elem["bg"] = "yellow"
+                    if attr in self.elem_attr[fix]:
+                        elem = self.elem_attr[fix][attr]
+                        FIXTURES.fixtures[fix]["ATTRIBUT"][attr]["ACTIVE"] = 1
+                        elem["bg"] = "yellow"
 
-    def preset_go(self,nr,val=None,xfade=None,event=None,button=""):
+    def preset_go(self,nr,val=None,xfade=None,event=None,button="",ptfade=None):
         t_start = time.time()
         if xfade is None and FADE._is():
             xfade = FADE.val()
         
+        if ptfade is None and FADE_move._is():
+            ptfade = FADE_move.val()
 
         print("GO PRESET FADE",nr,val)
 
@@ -1760,7 +1788,7 @@ class GUI():
             self._preset_go(rdata,cfg,fcmd,value,xfade=0,xFLASH=xFLASH)
         elif button == "go" or ( modes.val("GO") or ( "BUTTON" in cfg and cfg["BUTTON"] in ["go","GO"])): 
             fcmd  = FIXTURES.update_raw(rdata)
-            self._preset_go(rdata,cfg,fcmd,value,xfade=xfade,xFLASH=xFLASH)
+            self._preset_go(rdata,cfg,fcmd,value,xfade=xfade,xFLASH=xFLASH,ptfade=ptfade)
 
 
 
@@ -1769,13 +1797,19 @@ class GUI():
             self.refresh_fix()
         cprint("preset_go",time.time()-t_start)
 
-    def _preset_go(self,rdata,cfg,fcmd,value=None,xfade=None,event=None,xFLASH=0):
+    def _preset_go(self,rdata,cfg,fcmd,value=None,xfade=None,event=None,xFLASH=0,ptfade=0):
         if xfade is None and FADE._is():
             xfade = FADE.val()
 
-        cprint("PRESETS._preset_go()",len(rdata))
+        if ptfade is None and FADE_move._is():
+            ptfade = FADE_move.val()
+        cprint("PRESETS._preset_go() len=",len(rdata),cfg)
+        if xfade is None:
+            xfade = cfg["FADE"]
+        if ptfade is None:
+            ptfade = cfg["FADE"]
         #vcmd = reshape_preset( rdata ,value,[],xfade=xfade,fx=1) 
-        vcmd = reshape_preset( rdata ,value,xfade=xfade) 
+        vcmd = reshape_preset( rdata ,value,xfade=xfade,ptfade=ptfade) 
 
         cmd = []
 
@@ -2232,7 +2266,7 @@ def draw_live(gui,xframe):
     frame.pack(fill=tk.X, side=tk.TOP)
    
     c+=1
-    for comm in ["FADE","DELAY:0.0","PAN/TILT\nFADE:x.x","PAN/TILT\nDELAY:0.0"]:
+    for comm in ["FADE","DELAY:0.0","PAN/TILT\nFADE:4.0","PAN/TILT\nDELAY:0.0"]:
         if comm == "\n":
             c=0
             r+=1
@@ -2503,7 +2537,7 @@ def draw_command(gui,xframe):
         if comm == "SPEED:":
             b["text"] = "SPEED:{:0.0f}".format(fx_prm["SPEED"])
         if comm == "FADE":
-            b["text"] = "FADE:{:0.02f}".format(FADE.val())
+            b["text"] = "FADE:\n{:0.02f}".format(FADE.val())
         if comm == "START:":
             b["text"] = "START:{:0.0f}".format(fx_prm["START"])
         if comm == "OFFSET:":