|
@@ -414,7 +414,8 @@ DELAY.val(0.2)
|
|
|
|
|
|
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}
|
|
|
|
|
|
-fx_prm = {"SIZE":255,"SPEED":10,"OFFSET":100,"BASE":"-","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":1,"SHUFFLE":0,"WING":2,"WIDTH":25}
|
|
|
+fx_prm = {"SIZE":255,"SPEED":10,"OFFSET":100,"BASE":"-","START":0,"MODE":0,"MO":0,"DIR":1,"INVERT":1,"SHUFFLE":0,"WING":2,"WIDTH":25,"FX-X":1,"FX:MODE":0}
|
|
|
+fx_x_modes = ["spiral","left","right","up","down","left_right","up_down"]
|
|
|
|
|
|
fx_modes = ["RED","GREEN","BLUE","MAG","YELLOW","CYAN"]
|
|
|
fx_mo = ["fade","on","rnd","ramp","ramp2","cosinus","sinus"]
|
|
@@ -574,6 +575,8 @@ def process_effect(wing_buffer,fx_name=""):
|
|
|
coffset_move=0
|
|
|
|
|
|
for fix in wing:
|
|
|
+ if fix not in FIXTURES.fixtures:
|
|
|
+ continue
|
|
|
data = FIXTURES.fixtures[fix]
|
|
|
for attr in data["ATTRIBUT"]:
|
|
|
jdata = {"MODE":"FX"}
|
|
@@ -784,6 +787,48 @@ def process_effect(wing_buffer,fx_name=""):
|
|
|
|
|
|
return jdatas
|
|
|
|
|
|
+def process_matrix(xfixtures):
|
|
|
+ fix_count = len(xfixtures)
|
|
|
+ fx_x = fx_prm["FX-X"]
|
|
|
+ fx_mod = fx_x_modes[fx_prm["FX:MODE"]]
|
|
|
+ print("----",fx_x,fx_mod)
|
|
|
+ if fx_x > 1 and fix_count > fx_x:
|
|
|
+ try:
|
|
|
+ from lib import matrix
|
|
|
+ w=fx_x
|
|
|
+ h=int(fix_count/fx_x)
|
|
|
+
|
|
|
+ if fx_mod == "spiral":
|
|
|
+ _map = matrix.spiral(w,h)
|
|
|
+ elif fx_mod == "up_down":
|
|
|
+ _map = matrix.up_down(w,h)
|
|
|
+ elif fx_mod == "left_right":
|
|
|
+ _map = matrix.left_right(w,h)
|
|
|
+ elif fx_mod == "left":
|
|
|
+ _map = matrix.left(w,h)
|
|
|
+ elif fx_mod == "right":
|
|
|
+ _map = matrix.right(w,h)
|
|
|
+ elif fx_mod == "up":
|
|
|
+ _map = matrix.up(w,h)
|
|
|
+ elif fx_mod == "down":
|
|
|
+ _map = matrix.down(w,h)
|
|
|
+ else:
|
|
|
+ return xfixtures
|
|
|
+
|
|
|
+ matrix.mprint(xfixtures,w,h)
|
|
|
+ out = ["0"]*(w*h)
|
|
|
+ for i,f in enumerate(xfixtures):
|
|
|
+ if i < w*h:
|
|
|
+ j = int(_map[i])
|
|
|
+ print([i,f,j])
|
|
|
+ out[j] = f
|
|
|
+
|
|
|
+ matrix.mprint(out,w,h)
|
|
|
+ xfixtures = out
|
|
|
+ except Exception as e:
|
|
|
+ print("matrix exception",e)
|
|
|
+
|
|
|
+ return xfixtures
|
|
|
|
|
|
class Xevent_fx():
|
|
|
""" global input event Handeler for short cut's ... etc
|
|
@@ -802,7 +847,7 @@ class Xevent_fx():
|
|
|
cprint("FX:COLOR CHANGE",fx_prm,color="red")
|
|
|
txt = "FX:RED"
|
|
|
fx_prm["MODE"] += 1
|
|
|
- if fx_prm["MODE"] > len(fx_modes):
|
|
|
+ if fx_prm["MODE"] >= len(fx_modes):
|
|
|
fx_prm["MODE"]=0
|
|
|
txt = "FX:\n"+fx_modes[fx_prm["MODE"]]
|
|
|
|
|
@@ -815,6 +860,25 @@ class Xevent_fx():
|
|
|
fx_prm["MODE"]= len(fx_modes)-1
|
|
|
txt = "FX:\n"+fx_modes[fx_prm["MODE"]]
|
|
|
master.fx.elem["FX:RED"]["text"] = txt
|
|
|
+
|
|
|
+ if event.num == 4:
|
|
|
+ cprint("FX-X: CHANGE",fx_prm,color="red")
|
|
|
+ txt = "FX-X:"
|
|
|
+ fx_prm["FX:MODE"] += 1
|
|
|
+ if fx_prm["FX:MODE"] >= len(fx_x_modes):
|
|
|
+ fx_prm["FX:MODE"]=0
|
|
|
+ txt = "FX:MODE\n"+fx_x_modes[fx_prm["FX:MODE"]]
|
|
|
+
|
|
|
+ master.fx.elem["FX:MODE"]["text"] = txt
|
|
|
+ elif event.num == 5:
|
|
|
+ cprint("FX-X: CHANGE",fx_prm,color="red")
|
|
|
+ txt = "FX-X:"
|
|
|
+ fx_prm["FX:MODE"] -= 1
|
|
|
+ if fx_prm["FX:MODE"] < 0:
|
|
|
+ fx_prm["FX:MODE"]= len(fx_x_modes)-1
|
|
|
+ txt = "FX:MODE\n"+fx_x_modes[fx_prm["FX:MODE"]]
|
|
|
+ master.fx.elem["FX:MODE"]["text"] = txt
|
|
|
+
|
|
|
elif event.num == 1:
|
|
|
xfixtures = []
|
|
|
fix_active =FIXTURES.get_active()
|
|
@@ -828,7 +892,7 @@ class Xevent_fx():
|
|
|
return 0
|
|
|
|
|
|
|
|
|
-
|
|
|
+ xfixtures = process_matrix(xfixtures)
|
|
|
wing_buffer = process_wings(xfixtures)
|
|
|
process_effect(wing_buffer,fx_name=self.attr)
|
|
|
|
|
@@ -1014,6 +1078,25 @@ class Xevent_fx():
|
|
|
prm[k] =5
|
|
|
ct.elem[self.attr]["text"] = k+":\n{}".format(prm[k])
|
|
|
cprint(prm)
|
|
|
+ elif self.attr.startswith("FX-X:"):
|
|
|
+
|
|
|
+ k = "FX-X"
|
|
|
+ if event.num == 1:
|
|
|
+ prm[k] = 1
|
|
|
+ elif event.num == 3:
|
|
|
+ prm[k] = 2
|
|
|
+ elif event.num == 4:
|
|
|
+ prm[k] += 1
|
|
|
+ elif event.num == 5:
|
|
|
+ prm[k] -=1
|
|
|
+ if prm[k] > 100:
|
|
|
+ prm[k] = 100
|
|
|
+ if prm[k] < 1:
|
|
|
+ prm[k] =1
|
|
|
+
|
|
|
+ txt = prm[k]
|
|
|
+ ct.elem[self.attr]["text"] = "FX-X:\n{}".format(prm[k])
|
|
|
+ cprint(prm)
|
|
|
elif self.attr.startswith("WING:"):
|
|
|
|
|
|
k = "WING"
|
|
@@ -1848,7 +1931,7 @@ class GUI():
|
|
|
self.fx = Elem_Container()
|
|
|
self.fx.commands =[
|
|
|
"FX:DIM","FX:RED", "WIDTH:\n25","WING:\n2","DIR:\n1","INVERT:\n1","\n","SHUFFLE:\n0"
|
|
|
- ,"SIZE:\n","SPEED:\n","START:\n","OFFSET:\n","BASE:\n-"
|
|
|
+ ,"SIZE:\n","SPEED:\n","START:\n","OFFSET:\n","BASE:\n-","FX-X:\n-","FX:MODE"
|
|
|
]
|
|
|
self.fx_generic = Elem_Container()
|
|
|
self.fx_generic.commands =["FX:SIN","FX:COS","FX:RAMP","FX:RAMP2","FX:FD","FX:ON"]
|
|
@@ -3102,6 +3185,8 @@ def draw_command(gui,xframe):
|
|
|
b["text"] = "START:{:0.0f}".format(fx_prm["START"])
|
|
|
if comm == "OFFSET:":
|
|
|
b["text"] = "OFFSET:{:0.0f}".format(fx_prm["OFFSET"])
|
|
|
+ if comm == "FX-X:":
|
|
|
+ b["text"] = "FX-X:{}".format(fx_prm["FX-X"])
|
|
|
if comm == "BASE:":
|
|
|
b["text"] = "BASE:{}".format(fx_prm["BASE"])
|
|
|
if comm:
|
|
@@ -5281,7 +5366,7 @@ if __run_main:
|
|
|
|
|
|
|
|
|
name="ENCODER"
|
|
|
- w = GUIWindow(name,master=0,width=620,height=113,left=L0+710,top=TOP+H1+HTB*2)
|
|
|
+ w = GUIWindow(name,master=0,width=620,height=113,left=L0+710,top=TOP+H1+15+HTB*2)
|
|
|
_ENCODER_WINDOW = w
|
|
|
draw_enc(master,w.tk)
|
|
|
|
|
@@ -5312,7 +5397,7 @@ if __run_main:
|
|
|
window_manager.new(w,name)
|
|
|
|
|
|
name="FX"
|
|
|
- w = GUIWindow(name,master=0,width=415,height=260,left=L1+10+W1,top=TOP+302)
|
|
|
+ w = GUIWindow(name,master=0,width=415,height=297,left=L1+10+W1,top=TOP+302)
|
|
|
|
|
|
draw_fx(master,w.tk)
|
|
|
window_manager.new(w,name)
|