浏览代码

change LIVE DELAY for second to %

micha 5 天之前
父节点
当前提交
7d5e27c751
共有 3 个文件被更改,包括 78 次插入58 次删除
  1. 2 2
      _LibreLightDesk.py
  2. 74 54
      lib/execlib.py
  3. 2 2
      lib/meta.py

+ 2 - 2
_LibreLightDesk.py

@@ -1500,7 +1500,7 @@ class MASTER():
             xfade = meta.FADE.val()
             xfade = meta.FADE.val()
         xdelay=None
         xdelay=None
         if xdelay is None and meta.DELAY._is():
         if xdelay is None and meta.DELAY._is():
-            xdelay = meta.DELAY.val()
+            xdelay = meta.DELAY.val()/100.
         if ptfade is None and meta.FADE_move._is():
         if ptfade is None and meta.FADE_move._is():
             ptfade = meta.FADE_move.val()
             ptfade = meta.FADE_move.val()
         cprint("EXEC._exec_go() len=",len(rdata),cfg)
         cprint("EXEC._exec_go() len=",len(rdata),cfg)
@@ -1518,7 +1518,7 @@ class MASTER():
 
 
         
         
 
 
-        execlib.calc_align_delay(meta,xdelay,vcmd)
+        execlib.calc_align_delay(meta,xdelay,xfade,vcmd)
 
 
         cmd = []
         cmd = []
         for i,_ in enumerate(fcmd):
         for i,_ in enumerate(fcmd):

+ 74 - 54
lib/execlib.py

@@ -16,17 +16,10 @@ def reshape_exec(data ,value=None,xfade=0,flash=0,ptfade=0,DELAY=None):
     f=0 #fade
     f=0 #fade
 
 
     out = []
     out = []
-    delay=0
-    if DELAY is not None:
-        if DELAY < 0:
-            delay = (DELAY*-1)*len(data)
-            delay += DELAY
-            print("-"*20+" DELAY is MINUS !!!",DELAY,delay)
 
 
     for row in data:
     for row in data:
         #cprint("reshape_exec in:",row)
         #cprint("reshape_exec in:",row)
         line = {}
         line = {}
-        line["DELAY"]=round(delay,3)
         if type(value) is float:
         if type(value) is float:
             line["VALUE"] = value #round(value,3)
             line["VALUE"] = value #round(value,3)
         else:
         else:
@@ -77,64 +70,91 @@ def reshape_exec(data ,value=None,xfade=0,flash=0,ptfade=0,DELAY=None):
             line["FADE"] = round(f,4)
             line["FADE"] = round(f,4)
         else:
         else:
             line["FADE"] = f
             line["FADE"] = f
-        
-        if 0:
-            cprint("reshape_exec j",line,color="red") 
-        #cprint("reshape_exec out:",line)
+
         out.append(line)
         out.append(line)
         if DELAY is not None:
         if DELAY is not None:
             delay+=DELAY #0.02
             delay+=DELAY #0.02
 
 
-    #for j in out: # info
-    #    print("reshape_exec",j)
     return out
     return out
 
 
-def calc_align_delay(meta,xdelay,vcmd):
+def filter_fix(vcmd):
+    FIX = {}
+    for i in vcmd:
+        #if i.get("ATTR","").startswith("_"):
+        #    continue
+        ID = i.get("FIX")
+        if ID:
+            FIX[ID] = {"DELAY":0}
+    return FIX
+
+def calc_align_delay(meta,_xdelay,xfade,vcmd):
     for i in vcmd:
     for i in vcmd:
-        i["DELAY"] = round(0,3)
+        i["DELAY"] = round(0,3) # clean DELAY TIMING
+    print("calc_align_delay",xfade,_xdelay)
+    if type(xfade) not in [int,float]:
+        return
+    if type(_xdelay) not in [int,float]:
+        return
+    
+    FIX = filter_fix(vcmd)
+    XX = list(FIX.keys())
+
+    _len = len(XX)
+    _len_h = int(len(XX)/2)
+    xdelay = xfade/(_len)*_xdelay
     # ALIGN-DELAY
     # ALIGN-DELAY
     _xd = 0
     _xd = 0
-    if type(xdelay) in [int,float]:
-        _align = meta.ALIGN.val()
-        _len = len(vcmd)
-        _len_h = int(len(vcmd)/2)
-        if _align == ">":
-            for i in vcmd:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-        elif _align == "<":
-            for i in vcmd[::-1]:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-        elif _align == "><":
-            xdelay *= 2 
-            for i in vcmd[:_len_h]:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-            _xd = 0
-            for i in vcmd[:_len_h-1:-1]:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-        elif _align == "<>":
-            xdelay *= 2 
-            for i in vcmd[:_len_h-1][::-1]:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-            _xd = 0
-            for i in vcmd[:_len_h:-1][::-1]:
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
-        elif _align == "rnd":
-            _rnd = list(range(len(vcmd)))
-            import random
-            random.shuffle(_rnd)
-            for j in _rnd:
-                i = vcmd[j]
-                i["DELAY"] = round(_xd,3)
-                _xd += xdelay
+
+    _align = meta.ALIGN.val()
+    if _align == ">":
+        for i in XX:
+            FIX[i]["DELAY"] = round(_xd,3)
+            _xd += xdelay
+    elif _align == "<":
+        for i in XX[::-1]:
+            FIX[i]["DELAY"] = round(_xd,3)
+            _xd += xdelay
+    elif _align == "><":
+        xdelay *= 2 
+        for i in XX[:_len_h]:
+            _xd += xdelay
+            FIX[i]["DELAY"] = round(_xd,3)
+        _xd = 0
+        for i in XX[:_len_h-1:-1]:
+            _xd += xdelay
+            FIX[i]["DELAY"] = round(_xd,3)
+    elif _align == "<>":
+        xdelay *= 2 
+        for i in XX[:_len_h-1][::-1]:
+            _xd += xdelay
+            FIX[i]["DELAY"] = round(_xd,3)
+        _xd = 0
+        for i in XX[:_len_h:-1][::-1]:
+            _xd += xdelay
+            FIX[i]["DELAY"] = round(_xd,3)
+    elif _align == "rnd":
+        _rnd = list(range(len(FIX)))
+        import random
+        random.shuffle(_rnd)
+        for j in _rnd:
+            i = FIX[j]
+            FIX[i]["DELAY"] = round(_xd,3)
+            _xd += xdelay
+
+    sum_delay = 0
+    for i in FIX:
+        print("1-->",i,FIX[i])
+        sum_delay += FIX[i]["DELAY"]
+    print("###",round(sum_delay,4),round(_xd,4),round(xdelay,4),len(FIX))
 
 
     for i in vcmd:
     for i in vcmd:
-        print("1-->",i)
+        ID = i["FIX"]
+        if ID in i["FIX"]:
+            i["DELAY"] = FIX[ID]["DELAY"]
+        #print("2-->",ID,i)
+
+
+        
 
 
 import lib.showlib as showlib
 import lib.showlib as showlib
 
 

+ 2 - 2
lib/meta.py

@@ -223,7 +223,7 @@ def create_default_FadeBuffer():
 
 
 def create_default_DelayBuffer():
 def create_default_DelayBuffer():
     #return ValueBuffer(val=0.04,_min=-1,_max=1,_inc=0.01,cycle=[0.1,0.2,0.3,0.4,0.5])  
     #return ValueBuffer(val=0.04,_min=-1,_max=1,_inc=0.01,cycle=[0.1,0.2,0.3,0.4,0.5])  
-    return ValueBuffer(val=0.1,_min=0,_max=3,_inc=0.05,cycle=[0.1,0.2,0.3,0.4,0.5])  
+    return ValueBuffer(val=50,_min=0,_max=200,_inc=5,cycle=[50]) #0.1,0.2,0.3,0.4,0.5])  
 
 
 
 
 FADE = create_default_FadeBuffer() 
 FADE = create_default_FadeBuffer() 
@@ -232,7 +232,7 @@ FADE.data["format"] = "FADE:\n{val:0.2f}"
 
 
 DELAY = create_default_DelayBuffer()
 DELAY = create_default_DelayBuffer()
 DELAY.data["name"]   = "DELAY"
 DELAY.data["name"]   = "DELAY"
-DELAY.data["format"] = "DELAY:\n{val:0.2f}"
+DELAY.data["format"] = "DELAY:\n{val:0.0f} %"
 DELAY.off()
 DELAY.off()
 
 
 #class TextCycleBuffer():
 #class TextCycleBuffer():