Browse Source

cleanup: reshape_raw_dmx

micha 2 năm trước cách đây
mục cha
commit
6bcf58117c
1 tập tin đã thay đổi với 67 bổ sung98 xóa
  1. 67 98
      _LibreLightDesk.py

+ 67 - 98
_LibreLightDesk.py

@@ -231,84 +231,48 @@ class FX_handler():
 
 
 
-def reshape_preset(data ,value=None,args=[],xfade=0,flash=0,pfx="d",fx=0):
+def reshape_preset(data ,value=None,xfade=0,flash=0):
 
     if flash:
         xfade = 0
 
-    if not args: # and xfade is not None:# and FADE._is():
-        args.append(xfade)
-    else:
-        args[0] = xfade
-
-    cmd = []
-    jcmd = []
-    if flash:
-        pfx += "f"
-
+    out = []
     for row in data:
         cprint("reshape_preset",row)
-        jxcmd={}
+        line = {}
         if type(value) is float:
-            jxcmd["VALUE"] = value #round(value,3)
+            line["VALUE"] = value #round(value,3)
         else:
-            jxcmd["VALUE"] = value
-        jxcmd["args"] = []
+            line["VALUE"] = value
 
-        if fx:
-            if value is not None: 
-                # z.b. flush off
-                xcmd = str(value)+":"+row["FX"].split(":",1)[-1]
-                jxcmd["FX"] = row["FX"].split(":",1)[-1]
+        if value is not None: 
+            line["FX"] = row["FX"].split(":",1)[-1]
+        else:
+            line["FX"] = row["FX"]
 
-            else:
-                xcmd = row["FX"]
-                jxcmd["FX"] = row["FX"]
+        if row["FX2"]:
+            line["FX2"] = row["FX2"]
 
-            if row["FX2"]:
-                jxcmd["FX2"] = row["FX2"]
-        else:
-            if row["VALUE"] is None:
-                xcmd = ""
-            else:
-                if value is not None: 
-                    if type(value) is float:
-                        xcmd = "{:0.4f}".format(value)
-                    else:
-                        xcmd = "{}".format(value)
+
+        if row["VALUE"] is not None:
+            if value is None: 
+                v=row["VALUE"]
+                if type(v) is float:
+                    line["VALUE"]  = v #round(v,3)
                 else:
-                    v=row["VALUE"]
-                    xcmd = "{:0.4f}".format(v)
-                    #cprint([v])
-                    if type(v) is float:
-                        jxcmd["VALUE"]  = v #round(v,3)
-                    else:
-                        jxcmd["VALUE"]  = v
+                    line["VALUE"]  = v
 
-                for arg in args:
-                    if type(arg) is float:
-                        xcmd += ":{:0.4f}".format(arg)
-                        jxcmd["args"].append(v)#round(arg,3))
-                    else:
-                        xcmd += ":{}".format(arg)
-                        jxcmd["args"].append(arg)#round(arg,3))
-                #print( "pack: FIX",row["FIX"],row["ATTR"], xcmd)
 
-        #xcmd += ":{}".format(row["ATTR"])
-        v= xfade #FADE.val() #rxcmd["args"][0]
+        v = xfade 
         if type( v ) is float:
-            jxcmd["FADE"] = round(v,4)
+            line["FADE"] = round(v,4)
         else:
-            jxcmd["FADE"] = v
-        #if ("VALUE" in jxcmd and jxcmd["VALUE"] is not None) or "FX" in jxcmd and jxcmd["FX"]:
-        jcmd.append( jxcmd)
-        cmd.append( xcmd)
-        #if xcmd:
-        if 1:
-            cprint("reshape_preset j",jxcmd,color="red") 
-            cprint("reshape_preset x",xcmd,color="red") 
-            cprint("reshape_preset x",cmd,color="red") 
-    return cmd,jcmd
+            line["FADE"] = v
+        
+        if 0:
+            cprint("reshape_preset j",line,color="red") 
+        out.append(line)
+    return out
 
 class dummy_event():
     def __init__(self):
@@ -1570,6 +1534,7 @@ class GUI(Base):
                     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=""):
         t_start = time.time()
         if xfade is None and FADE._is():
@@ -1604,6 +1569,7 @@ class GUI(Base):
                     value = "off"
 
             cprint("preset_go() FLUSH",value,color="red")
+            
             fcmd  = FIXTURES.update_raw(rdata,update=0)
             self._preset_go(rdata,cfg,fcmd,value,xfade=xfade,xFLASH=xFLASH)
                 
@@ -1628,42 +1594,34 @@ class GUI(Base):
             xfade = FADE.val()
 
         cprint("PRESETS._preset_go()",len(rdata))
-        vvcmd,jvvcmd = reshape_preset( rdata ,value,[],xfade=xfade ) 
-        fxcmd,jfxcmd = reshape_preset( rdata ,value,[],xfade=xfade,fx=1) 
+        #vcmd = reshape_preset( rdata ,value,[],xfade=xfade,fx=1) 
+        vcmd = reshape_preset( rdata ,value,xfade=xfade) 
 
         cmd = []
-        for vcmd,d in [[jvvcmd,"d"],[jfxcmd,"fx"]]:
+
+        for i,v in enumerate(fcmd):
+            print(i,v)
             if xFLASH:
-                d+="f"
-            for i,v in enumerate(fcmd):
-                if xFLASH:
-                    vcmd[i]["FLASH"] = 1
-
-                DMX = fcmd[i]["DMX"]
-                if "VALUE" in vcmd[i] and type(vcmd[i]["VALUE"]) is float:
-                    vcmd[i]["VALUE"] = round(vcmd[i]["VALUE"],3)
-                if value is not None:
-                    vcmd[i]["VALUE"] = value 
-                if value == "off":
-                    if "FX2" in vcmd:
-                        vcmd[i]["FX2"]["TYPE"] = value
-
-                if DMX and vcmd[i]:
-                    vcmd[i]["DMX"] = DMX
-
-                if "VIRTUAL" in fcmd[i]:
-                    for a in fcmd[i]["VIRTUAL"]:
-                        DMX = fcmd[i]["VIRTUAL"][a]
-                        if DMX and vcmd[i]:
-                            vcmd[i]["DMX"] = DMX
-                #if vcmd[i]["VALUE"] is not None or ("FX2" in vcmd[i] and vcmd[i]["FX2"]):
-                #    cprint("jvcmd",vcmd[i])
-                #    cmd.append(vcmd[i])
-                #elif vcmd[i]["VALUE"] is not None or ("FX" in vcmd[i] and vcmd[i]["FX"]):
-                #    cprint("jvcmd",vcmd[i])
-                #    cmd.append(vcmd[i])
-                #cprint("jvcmd",vcmd[i])
-                cmd.append(vcmd[i])
+                vcmd[i]["FLASH"] = 1
+
+            DMX = fcmd[i]["DMX"]
+            if "VALUE" in vcmd[i] and type(vcmd[i]["VALUE"]) is float:
+                vcmd[i]["VALUE"] = round(vcmd[i]["VALUE"],3)
+            if value is not None:
+                vcmd[i]["VALUE"] = value 
+            if value == "off":
+                if "FX2" in vcmd:
+                    vcmd[i]["FX2"]["TYPE"] = value
+
+            if DMX and vcmd[i]:
+                vcmd[i]["DMX"] = DMX
+
+            if "VIRTUAL" in fcmd[i]:
+                for a in fcmd[i]["VIRTUAL"]:
+                    DMX = fcmd[i]["VIRTUAL"][a]
+                    if DMX and vcmd[i]:
+                        vcmd[i]["DMX"] = DMX
+            cmd.append(vcmd[i])
 
         if cmd and not modes.val("BLIND"):
             jclient_send(cmd)
@@ -1687,11 +1645,18 @@ class GUI(Base):
             if attr.endswith("-FINE"):
                 continue
             v= data["ATTRIBUT"][attr]["VALUE"]
-            b = tk.Button(frame,bg="lightblue", text=""+str(fix)+" "+data["NAME"],width=4)
+            b = tk.Button(frame,bg="lightblue", text=""+str(fix),width=3,anchor="w")
+            b.config(padx=1)
             b.bind("<Button>",Xevent(fix=fix,mode="D-SELECT",elem=b).cb)
             b.grid(row=r, column=c, sticky=tk.W+tk.E)
             c+=1
-            b = tk.Button(frame,bg="grey", text=str(attr)+' '+str(round(v,2)),width=6)
+            b = tk.Button(frame,bg="lightblue", text=data["NAME"],width=10,anchor="w")
+            b.config(padx=1)
+            b.bind("<Button>",Xevent(fix=fix,mode="D-SELECT",elem=b).cb)
+            b.grid(row=r, column=c, sticky=tk.W+tk.E)
+            c+=1
+            b = tk.Button(frame,bg="grey", text=str(round(v,2)),width=10,anchor="w")
+            b.config(padx=1)
             self.elem_attr[fix][attr] = b
             b.bind("<Button>",Xevent(fix=fix,elem=b,attr=attr,mode="ENCODER",data=data).cb)
             b.grid(row=r, column=c, sticky=tk.W+tk.E)
@@ -1839,7 +1804,11 @@ class GUI(Base):
                 #self._draw_fix(fix,data,root=fix_frame)
                 frame = fix_frame
             
-                b = tk.Button(frame,bg="lightblue", text="FIX:"+str(fix)+" "+data["NAME"],width=20)
+                b = tk.Button(frame,bg="lightblue", text="ID:"+str(fix),width=6,anchor="w")
+                b.bind("<Button>",Xevent(fix=fix,mode="SELECT",elem=b).cb)
+                b.grid(row=r, column=c, sticky=tk.W+tk.E)
+                c+=1
+                b = tk.Button(frame,bg="lightblue", text=data["NAME"],width=10,anchor="w")
                 b.bind("<Button>",Xevent(fix=fix,mode="SELECT",elem=b).cb)
                 b.grid(row=r, column=c, sticky=tk.W+tk.E)
                 c+=1