|
@@ -97,14 +97,132 @@ def basic():
|
|
|
k = "DIR:{}".format(i+1)
|
|
|
MAIN.meta.fx3_grid[k].val(1)
|
|
|
MAIN.meta.fx3_grid[k].data["init_value"] = 1
|
|
|
- MAIN.meta.fx3_grid[k].data["max"] = 0
|
|
|
+ MAIN.meta.fx3_grid[k].data["max"] = 1
|
|
|
|
|
|
k = "INVERT:{}".format(i+1)
|
|
|
MAIN.meta.fx3_grid[k].val(1)
|
|
|
MAIN.meta.fx3_grid[k].data["init_value"] = 1
|
|
|
MAIN.meta.fx3_grid[k].data["max"] = 1
|
|
|
+
|
|
|
+ k = "BASE:{}".format(i+1)
|
|
|
+ MAIN.meta.fx3_grid[k].val(1)
|
|
|
+ MAIN.meta.fx3_grid[k].data["init_value"] = 0
|
|
|
+ MAIN.meta.fx3_grid[k].data["max"] = 1
|
|
|
+ MAIN.meta.fx3_grid[k].data["min"] = -1
|
|
|
basic()
|
|
|
|
|
|
+class tk_event_fx():
|
|
|
+ """ global input event Handeler for short cut's ... etc
|
|
|
+ """
|
|
|
+ def __init__(self,fix,elem,attr=None,data=None,mode=None):
|
|
|
+ self.fix = fix
|
|
|
+ self.data = data # gui / master
|
|
|
+ self.attr = attr
|
|
|
+ self.elem = elem
|
|
|
+ self.mode = mode
|
|
|
+ self.ATTR_GRP = ""
|
|
|
+
|
|
|
+ def command_fx3(self,event,mode=""):
|
|
|
+ prm = []
|
|
|
+ ct = ""
|
|
|
+ print(" --", self.attr)
|
|
|
+ fx3_grid = MAIN.meta.fx3_grid # OptionBuffer()
|
|
|
+ if self.attr == "START":
|
|
|
+
|
|
|
+ _fx3_jdata = []
|
|
|
+ for k,v in fx3_grid.items(): # re-order fx3_grid to command
|
|
|
+ vv = v.val()
|
|
|
+ kk,ii = k.split(":")
|
|
|
+ ii = int(ii)-1
|
|
|
+ if len(_fx3_jdata) <= ii: #extand list
|
|
|
+ _fx3_jdata.append({})
|
|
|
+ _fx3_jdata[ii][kk] = vv
|
|
|
+
|
|
|
+ for i in _fx3_jdata: #info
|
|
|
+ print(i)
|
|
|
+
|
|
|
+ msg=json.dumps(_fx3_jdata).encode("utf-8")
|
|
|
+ cprint("SEND FX3:",msg,color="green")
|
|
|
+ cmd_client.send(msg)
|
|
|
+
|
|
|
+ if self.attr not in fx3_grid:
|
|
|
+ fx_data = {}
|
|
|
+ if self.attr == "CIRCLE":
|
|
|
+ for k,v in fx3_grid.items():
|
|
|
+ if k.startswith("ATTR"):
|
|
|
+ print(self.attr,k,v)
|
|
|
+ if self.attr == "PLAY":
|
|
|
+ for k,v in fx3_grid.items():
|
|
|
+ vv = v.val()
|
|
|
+ k_name , k_nr = k.split(":")
|
|
|
+ if k_nr not in fx_data:
|
|
|
+ fx_data[k_nr] = {}
|
|
|
+ fx_data[k_nr][k_name] = vv
|
|
|
+ #print("**",k,vv,v)
|
|
|
+
|
|
|
+ for k,v in fx_data.items():
|
|
|
+ print("fx33",k,v)
|
|
|
+ if "ATTR" in v and v["ATTR"] != " ":
|
|
|
+ print("HH",k,v)
|
|
|
+
|
|
|
+ print()
|
|
|
+ return
|
|
|
+ fx_func = MAIN.meta.OptionBuffer()
|
|
|
+ if self.attr.startswith("ATTR:"):
|
|
|
+ col = self.attr.split(":")[1]
|
|
|
+ fx_func1 = fx3_grid["GRP:"+str(col)]
|
|
|
+ GRP = fx_func1.val()
|
|
|
+ if GRP != self.ATTR_GRP:
|
|
|
+ self.ATTR_GRP = GRP
|
|
|
+ fx_func1.val(GRP)
|
|
|
+ fx3_grid[self.attr] = MAIN.meta.Optionbuffer_create_ATTR(GRP)
|
|
|
+ fx_func = fx3_grid[self.attr]
|
|
|
+ print(fx_func.data)
|
|
|
+ fx_func.data["wrap"] = 1
|
|
|
+ else:
|
|
|
+ fx_func = fx3_grid[self.attr]
|
|
|
+ fx_func.data["wrap"] = 1
|
|
|
+
|
|
|
+ print("func",fx_func,fx_func.val())
|
|
|
+
|
|
|
+ if event.num == 3:
|
|
|
+ fx_func.reset()
|
|
|
+ elif event.num == 4:
|
|
|
+ fx_func.inc()
|
|
|
+ elif event.num == 5:
|
|
|
+ fx_func.dec()
|
|
|
+ v=fx_func.val()
|
|
|
+ #print(v)
|
|
|
+ #print(self.elem)
|
|
|
+ self.elem["text"] = v
|
|
|
+ return
|
|
|
+
|
|
|
+
|
|
|
+ def command(self,event,mode=""):
|
|
|
+ cprint("tkevent.tk_event_fx.command")
|
|
|
+ cprint(" ",self.mode)
|
|
|
+ prm = None
|
|
|
+ ct = None
|
|
|
+ if self.mode == "FX-3":
|
|
|
+ return self.command_fx3(event,mode=mode)
|
|
|
+
|
|
|
+ def cb(self,event):
|
|
|
+ cprint("tkevent.EVENT_fx.cb:",self.attr,self.mode,event,color='yellow')
|
|
|
+ cprint(["type",event.type,"num",event.num])
|
|
|
+ try:
|
|
|
+ change = 0
|
|
|
+
|
|
|
+ if self.mode.startswith("FX"):
|
|
|
+ self.command(event)
|
|
|
+ return 0
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ cprint("== cb EXCEPT",e,color="red")
|
|
|
+ cprint("Error on line {}".format(sys.exc_info()[-1].tb_lineno),color="red")
|
|
|
+ cprint(''.join(traceback.format_exception(None, e, e.__traceback__)),color="red")
|
|
|
+ return 1
|
|
|
+
|
|
|
+
|
|
|
def motion(code="circle"):
|
|
|
#basic()
|
|
|
|
|
@@ -131,30 +249,73 @@ def motion(code="circle"):
|
|
|
MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
k = "TYPE:2"
|
|
|
MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+
|
|
|
+ k = "SIZE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(100)
|
|
|
+ k = "SIZE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(100)
|
|
|
+
|
|
|
+ k = "BASE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+ k = "BASE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+
|
|
|
if code == "pan":
|
|
|
k = "TYPE:1"
|
|
|
MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
k = "TYPE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+ k = "TYPE:3"
|
|
|
+ MAIN.meta.fx3_grid[k].val("-")
|
|
|
+ k = "TYPE:4"
|
|
|
MAIN.meta.fx3_grid[k].val("-")
|
|
|
+
|
|
|
+ k = "SIZE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(100)
|
|
|
+ k = "SIZE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+
|
|
|
+ k = "BASE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+ k = "BASE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
if code == "tilt":
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("-")
|
|
|
+ MAIN.meta.fx3_grid[k].val("SIN")
|
|
|
k = "TYPE:2"
|
|
|
MAIN.meta.fx3_grid[k].val("COS")
|
|
|
+ k = "TYPE:3"
|
|
|
+ MAIN.meta.fx3_grid[k].val("-")
|
|
|
+ k = "TYPE:4"
|
|
|
+ MAIN.meta.fx3_grid[k].val("-")
|
|
|
+
|
|
|
+ k = "SIZE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+ k = "SIZE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(100)
|
|
|
+
|
|
|
+ k = "BASE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
+ k = "BASE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(0)
|
|
|
|
|
|
|
|
|
def size(val=255):
|
|
|
for i in range(4):
|
|
|
k = "SIZE:{}".format(i+1)
|
|
|
+ kt = "TYPE:{}".format(i+1)
|
|
|
print(" ",k,val)
|
|
|
- MAIN.meta.fx3_grid[k].val(val)
|
|
|
+ if MAIN.meta.fx3_grid[kt].val() not in ["STATIC","-"]:
|
|
|
+ MAIN.meta.fx3_grid[k].val(val)
|
|
|
__refresh_fx3(_filter="SIZE")
|
|
|
|
|
|
def speed(val=255):
|
|
|
for i in range(4):
|
|
|
k = "SPEED:{}".format(i+1)
|
|
|
+ kt = "TYPE:{}".format(i+1)
|
|
|
print(" ",k,val)
|
|
|
- MAIN.meta.fx3_grid[k].val(val)
|
|
|
+ if MAIN.meta.fx3_grid[kt].val() not in ["STATIC","-"]:
|
|
|
+ MAIN.meta.fx3_grid[k].val(val)
|
|
|
__refresh_fx3(_filter="SPEED")
|
|
|
|
|
|
def rgb(code="red"):
|
|
@@ -177,13 +338,20 @@ def rgb(code="red"):
|
|
|
MAIN.meta.fx3_grid[k].val("BLUE")
|
|
|
|
|
|
k = "TYPE:1"
|
|
|
- MAIN.meta.fx3_grid[k].val("255")
|
|
|
+ MAIN.meta.fx3_grid[k].val("STATIC") #"255")
|
|
|
k = "TYPE:2"
|
|
|
- MAIN.meta.fx3_grid[k].val("255")
|
|
|
+ MAIN.meta.fx3_grid[k].val("STATIC") #255")
|
|
|
k = "TYPE:3"
|
|
|
- MAIN.meta.fx3_grid[k].val("255")
|
|
|
+ MAIN.meta.fx3_grid[k].val("STATIC") #255")
|
|
|
k = "TYPE:4"
|
|
|
- MAIN.meta.fx3_grid[k].val("255")
|
|
|
+ MAIN.meta.fx3_grid[k].val("STATIC") #255")
|
|
|
+
|
|
|
+ k = "BASE:1"
|
|
|
+ MAIN.meta.fx3_grid[k].val(-1)
|
|
|
+ k = "BASE:2"
|
|
|
+ MAIN.meta.fx3_grid[k].val(-1)
|
|
|
+ k = "BASE:3"
|
|
|
+ MAIN.meta.fx3_grid[k].val(-1)
|
|
|
|
|
|
if code == "red":
|
|
|
k = "TYPE:1"
|
|
@@ -265,7 +433,7 @@ def __refresh_fx3(_filter=""):
|
|
|
v2 = MAIN.meta.fx3_grid[comm].val()
|
|
|
v1 = b["text"]
|
|
|
if "ATTR" in comm or "GRP" in comm:
|
|
|
- print([comm,v1,v2,b])
|
|
|
+ pass #print("A",[comm,v1,v2,b])
|
|
|
if str(v2) != str(v1):
|
|
|
print(" change")
|
|
|
#print([comm,b,v1,v2])
|
|
@@ -336,7 +504,7 @@ def _draw_fx3(frame,c,r,gui,mode="FX"):
|
|
|
xcb(event) #,data)
|
|
|
return XXX
|
|
|
|
|
|
- _cb = tkevent.tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb
|
|
|
+ _cb = tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb
|
|
|
_comm = comm
|
|
|
_b = b
|
|
|
XXX = _XXX(_cb,_comm,_b)
|
|
@@ -407,7 +575,8 @@ def _draw_fx(frame,c,r,gui,mode="FX"):
|
|
|
|
|
|
ct.elem[comm] = b
|
|
|
ct.val[comm] = 0
|
|
|
- b.bind("<Button>",tkevent.tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb)
|
|
|
+ #b.bind("<Button>",tkevent.tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb)
|
|
|
+ b.bind("<Button>",tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb)
|
|
|
|
|
|
if comm == "REC-FX":
|
|
|
b["bg"] = "grey"
|