|  | @@ -3,6 +3,7 @@
 | 
	
		
			
				|  |  |  import time
 | 
	
		
			
				|  |  |  import traceback
 | 
	
		
			
				|  |  |  import json
 | 
	
		
			
				|  |  | +import _thread as thread
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import __main__ as MAIN
 | 
	
		
			
				|  |  |  from lib.cprint import *
 | 
	
	
		
			
				|  | @@ -22,63 +23,51 @@ def JSCB(x,sock=None):
 | 
	
		
			
				|  |  |              #print(" JSCB",msgs) #,sock)
 | 
	
		
			
				|  |  |              if type(msgs) is not list:
 | 
	
		
			
				|  |  |                  continue
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  |              for msg in msgs:
 | 
	
		
			
				|  |  |                  OK = 0
 | 
	
		
			
				|  |  | -                #print("  msg",msg)
 | 
	
		
			
				|  |  | +                EXEC_REFRESH = 0
 | 
	
		
			
				|  |  | +                val     = -1
 | 
	
		
			
				|  |  | +                exec_nr = -1
 | 
	
		
			
				|  |  | +                fix_nr  = -1
 | 
	
		
			
				|  |  | +                attr    = ""
 | 
	
		
			
				|  |  |                  if "event" not in msg:
 | 
	
		
			
				|  |  |                      continue
 | 
	
		
			
				|  |  | +                if "EXEC" in msg:
 | 
	
		
			
				|  |  | +                    try:
 | 
	
		
			
				|  |  | +                        exec_nr = int(msg["EXEC"])
 | 
	
		
			
				|  |  | +                    except:
 | 
	
		
			
				|  |  | +                        exec_nr = -2
 | 
	
		
			
				|  |  | +                if "VAL" in msg:
 | 
	
		
			
				|  |  | +                    val = msg["VAL"]
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +                if "FIX" in msg:
 | 
	
		
			
				|  |  | +                    fix_nr=msg["FIX"]
 | 
	
		
			
				|  |  | +                if "ATTR" in msg:
 | 
	
		
			
				|  |  | +                    attr=msg["ATTR"]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if "FIXTURES" == msg["event"]:
 | 
	
		
			
				|  |  | -                    FIX=0
 | 
	
		
			
				|  |  | -                    VAL=""
 | 
	
		
			
				|  |  | -                    ATTR=""
 | 
	
		
			
				|  |  | -                    if "FIX" in msg:
 | 
	
		
			
				|  |  | -                        FIX=msg["FIX"]
 | 
	
		
			
				|  |  | -                    if "VAL" in msg:
 | 
	
		
			
				|  |  | -                        VAL=msg["VAL"]
 | 
	
		
			
				|  |  | -                    if "ATTR" in msg:
 | 
	
		
			
				|  |  | -                        ATTR=msg["ATTR"]
 | 
	
		
			
				|  |  | -                    print("  MAIN.tk_event",FIX,VAL,ATTR)
 | 
	
		
			
				|  |  | -                    #cb = MAIN.tk_event(fix=FIX,elem=None,attr=ATTR,mode="ENCODER",data=[]) #data)
 | 
	
		
			
				|  |  | -                    fixlib.encoder(MAIN.FIXTURES.fixtures,str(FIX),ATTR,xval=VAL,xfade=0,xdelay=0)#,blind=0)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                    #print(dir(cb))
 | 
	
		
			
				|  |  | -                    #event.num = enum
 | 
	
		
			
				|  |  | +                print("  MAIN.tk_event","fix:",fix_nr,"exec_nr:",exec_nr,"val:",val,"attr",attr)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    #cb.cb(event)
 | 
	
		
			
				|  |  | +                if "FIXTURES" == msg["event"]:
 | 
	
		
			
				|  |  | +                    fixlib.encoder(MAIN.FIXTURES.fixtures,str(fix_nr),attr,xval=val,xfade=0,xdelay=0)#,blind=0)
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
		
			
				|  |  | -                if "CLEAR" == msg["event"]:
 | 
	
		
			
				|  |  | -                    #MAIN.FIXTURES.clear()
 | 
	
		
			
				|  |  | +                elif "CLEAR" == msg["event"]:
 | 
	
		
			
				|  |  |                      fixlib.clear(MAIN.FIXTURES.fixtures)
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("REC",0)
 | 
	
		
			
				|  |  | -                    #MAIN.master.xcb("CLEAR",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "REC" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("REC",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "EDIT" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("EDIT",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "BLIND" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("BLIND",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "FLASH" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("FLASH",1)
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
		
			
				|  |  | -                elif "CFG-BTN" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("CFG-BTN",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "LABEL" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("LABEL",1)
 | 
	
		
			
				|  |  | +                elif "ESC" == msg["event"]:
 | 
	
		
			
				|  |  | +                    fixlib.clear(MAIN.FIXTURES.fixtures)
 | 
	
		
			
				|  |  | +                    MAIN.modes.clear() # FIX
 | 
	
		
			
				|  |  | +                    MAIN.master.button_clear() # REC,CFG-BTN ...
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
		
			
				|  |  | -                elif "REC" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("REC",1)
 | 
	
		
			
				|  |  | +                elif msg["event"] in ["REC","REC-FX","EDIT","BLIND","FLASH","CFG-BTN","LABEL","MOVE","GO","SELECT","DEL","COPY"]:
 | 
	
		
			
				|  |  | +                    if msg["event"] in ["REC-FX"]:
 | 
	
		
			
				|  |  | +                        MAIN.modes.clear(protect=["REC-FX","REC",msg["event"]]) # FIX
 | 
	
		
			
				|  |  | +                        MAIN.master.button_clear() # REC,CFG-BTN ...
 | 
	
		
			
				|  |  | +                    MAIN.modes.val(msg["event"],1)
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
		
			
				|  |  |                  elif "FX-OFF" == msg["event"]:
 | 
	
		
			
				|  |  | -                    #MAIN.modes.val("FX-OFF",1)
 | 
	
		
			
				|  |  | -                    MAIN.CONSOLE.fx_off("all") #"FX-OFF",1)
 | 
	
		
			
				|  |  | -                    #OK = 1
 | 
	
		
			
				|  |  | +                    MAIN.CONSOLE.fx_off("all") 
 | 
	
		
			
				|  |  | +                    OK = 1
 | 
	
		
			
				|  |  |                  elif "SAVE\nSHOW" == msg["event"]:
 | 
	
		
			
				|  |  |                      MAIN.save_show()
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
	
		
			
				|  | @@ -86,54 +75,52 @@ def JSCB(x,sock=None):
 | 
	
		
			
				|  |  |                      print("OK OK")
 | 
	
		
			
				|  |  |                      MAIN.LOAD_SHOW_AND_RESTART("").cb(force=1)
 | 
	
		
			
				|  |  |                      OK = 1
 | 
	
		
			
				|  |  | -                elif "REC-FX" == msg["event"]:
 | 
	
		
			
				|  |  | -                    MAIN.modes.val("REC-FX",1)
 | 
	
		
			
				|  |  | -                    OK = 1
 | 
	
		
			
				|  |  | -                elif "REC-EXEC" == msg["event"]:
 | 
	
		
			
				|  |  | -                    print("  JSCB.REC-EXEC")
 | 
	
		
			
				|  |  | -                    val = -1
 | 
	
		
			
				|  |  | -                    exec_nr = -1
 | 
	
		
			
				|  |  | -                    try:
 | 
	
		
			
				|  |  | -                        if "VAL" in msg:
 | 
	
		
			
				|  |  | -                            val = int(msg["VAL"])
 | 
	
		
			
				|  |  | -                        if "EXEC" in msg:
 | 
	
		
			
				|  |  | -                            exec_nr = int(msg["EXEC"])
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                        if val >= 1 and exec_nr > 0: # VAL >=1 !!!
 | 
	
		
			
				|  |  | -                            print(" EXEC_GOOO",exec_nr)
 | 
	
		
			
				|  |  | -                            s = time.time()
 | 
	
		
			
				|  |  | -                            MAIN.master.exec_rec(exec_nr-1)
 | 
	
		
			
				|  |  | -                            e = time.time()
 | 
	
		
			
				|  |  | -                            print("EXE TIME:","{:0.02f}".format(e-s),int(e*100)/100)
 | 
	
		
			
				|  |  | -                            print()
 | 
	
		
			
				|  |  | -                            OK = 1
 | 
	
		
			
				|  |  | -                    except Exception as e:
 | 
	
		
			
				|  |  | -                        print("REC-EXEC ERR:",[e])
 | 
	
		
			
				|  |  | -                        raise e
 | 
	
		
			
				|  |  |                  elif "EXEC" == msg["event"]:
 | 
	
		
			
				|  |  | -                    print("  JSCB.EXEC")
 | 
	
		
			
				|  |  | -                    val = -1
 | 
	
		
			
				|  |  | -                    exec_nr = -1
 | 
	
		
			
				|  |  | +                    print("  JSCB:",msg["event"])
 | 
	
		
			
				|  |  |                      try:
 | 
	
		
			
				|  |  | -                        if "VAL" in msg:
 | 
	
		
			
				|  |  | -                            val = int(msg["VAL"])
 | 
	
		
			
				|  |  | -                        if "EXEC" in msg:
 | 
	
		
			
				|  |  | -                            exec_nr = int(msg["EXEC"])
 | 
	
		
			
				|  |  | -                        if val >= 0 and exec_nr > 0:
 | 
	
		
			
				|  |  | -                            print("EXEC_GOOO",exec_nr,val)
 | 
	
		
			
				|  |  | -                            s = time.time()
 | 
	
		
			
				|  |  | -                            MAIN.master.exec_go(exec_nr-1,xfade=None,val=val)
 | 
	
		
			
				|  |  | -                            e = time.time()
 | 
	
		
			
				|  |  | -                            print("EXE TIME:","{:0.02f}".format(e-s),int(e*100)/100)
 | 
	
		
			
				|  |  | -                            print()
 | 
	
		
			
				|  |  | -                            OK = 1
 | 
	
		
			
				|  |  | +                        if exec_nr > 0:
 | 
	
		
			
				|  |  | +                            if val >= 1: # only Press
 | 
	
		
			
				|  |  | +                                pass
 | 
	
		
			
				|  |  | +                                if MAIN.modes.val("REC"):
 | 
	
		
			
				|  |  | +                                    MAIN.master.exec_rec(exec_nr-1)
 | 
	
		
			
				|  |  | +                                    msg["OK"] = "REC"
 | 
	
		
			
				|  |  | +                                    EXEC_REFRESH = 1
 | 
	
		
			
				|  |  | +                                    OK = 1
 | 
	
		
			
				|  |  | +                                elif MAIN.modes.val("COPY"):
 | 
	
		
			
				|  |  | +                                    MAIN.EXEC.copy(exec_nr-1)
 | 
	
		
			
				|  |  | +                                    msg["OK"] = "COPY"
 | 
	
		
			
				|  |  | +                                    if MAIN.modes.val("COPY") > 2:
 | 
	
		
			
				|  |  | +                                        MAIN.modes.val("COPY",0)
 | 
	
		
			
				|  |  | +                                    EXEC_REFRESH = 1
 | 
	
		
			
				|  |  | +                                    OK = 1
 | 
	
		
			
				|  |  | +                                elif MAIN.modes.val("MOVE"):
 | 
	
		
			
				|  |  | +                                    MAIN.EXEC.move(exec_nr-1)
 | 
	
		
			
				|  |  | +                                    msg["OK"] = "MOVE"
 | 
	
		
			
				|  |  | +                                    EXEC_REFRESH = 1
 | 
	
		
			
				|  |  | +                                    OK = 1
 | 
	
		
			
				|  |  | +                                elif MAIN.modes.val("DEL"):
 | 
	
		
			
				|  |  | +                                    MAIN.EXEC.delete(exec_nr-1)
 | 
	
		
			
				|  |  | +                                    MAIN.modes.val("DEL",0)
 | 
	
		
			
				|  |  | +                                    msg["OK"] = "DEL"
 | 
	
		
			
				|  |  | +                                    EXEC_REFRESH = 1
 | 
	
		
			
				|  |  | +                                    OK = 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            if not OK:
 | 
	
		
			
				|  |  | +                                if val >= 0: #Press/Release
 | 
	
		
			
				|  |  | +                                    MAIN.master.exec_go(exec_nr-1,xfade=None,val=val)
 | 
	
		
			
				|  |  | +                                    OK = 1
 | 
	
		
			
				|  |  | +                                    EXEC_REFRESH = 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      except Exception as e:
 | 
	
		
			
				|  |  |                          print("EXEC ERR:",e)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |                  if OK:
 | 
	
		
			
				|  |  |                      cprint(" remote-key:",msg ,color="green")
 | 
	
		
			
				|  |  | -                    if "REC-EXEC" in msg["event"]:
 | 
	
		
			
				|  |  | -                        MAIN.execlib.exec_set_mc(MAIN.EXEC.label_exec,MAIN.EXEC.val_exec)
 | 
	
		
			
				|  |  | +                    if EXEC_REFRESH:
 | 
	
		
			
				|  |  | +                        def xx():
 | 
	
		
			
				|  |  | +                            MAIN.execlib.exec_set_mc(MAIN.EXEC.label_exec,MAIN.EXEC.val_exec)
 | 
	
		
			
				|  |  | +                        thread.start_new_thread(xx,())
 | 
	
		
			
				|  |  |                  else:
 | 
	
		
			
				|  |  |                      cprint(" remote-key:",msg ,color="red")
 | 
	
		
			
				|  |  |      except Exception as e:
 |