Jelajahi Sumber

refactory: fix EXEC-CFG and MIDI int(val) ...

micha 8 bulan lalu
induk
melakukan
07f9407fc3
4 mengubah file dengan 58 tambahan dan 8 penghapusan
  1. 7 2
      _LibreLightDesk.py
  2. 24 4
      lib/jsbc.py
  3. 1 1
      lib/libtk.py
  4. 26 1
      tkgui/EXEC.py

+ 7 - 2
_LibreLightDesk.py

@@ -1049,12 +1049,15 @@ class MASTER():
                 if "Button" in  data and type(data["Button"]) is str:
                     txt = data["Button"]
                     EXEC.btn_cfg(nr,txt)
-                    self.elem_exec[nr].configure(text= EXEC.get_btn_txt(nr))
+
+                    if nr in self.elem_exec: #[nr].configure(text= EXEC.get_btn_txt(nr))
+                        self.elem_exec[nr].configure(text= EXEC.get_btn_txt(nr))
 
                 if "Label" in  data and type(data["Label"]) is str:
                     txt = data["Label"]
                     EXEC.label(nr,txt) 
-                    self.elem_exec[nr].configure(text= EXEC.get_btn_txt(nr))
+                    if nr in self.elem_exec:
+                        self.elem_exec[nr].configure(text= EXEC.get_btn_txt(nr))
 
                 if "Delay" in  data and type(data["Delay"]) is str:
                     txt = data["Delay"]
@@ -2392,6 +2395,8 @@ if __run_main:
         finally:
             print()
             print()
+            cmd="xset -display :0.0 r rate 240 20"
+            os.system(cmd)
             cprint(" - EXIT -",color="red")
             BASE_PATH = "/opt/LibreLight/Xdesk/"
             movewin.process_kill(BASE_PATH+"tksdl/")

+ 24 - 4
lib/jsbc.py

@@ -10,7 +10,9 @@ from lib.cprint import *
 import lib.fixlib as fixlib
 
 
+GLOBAL_old_exec_nr = -1
 def JSCB(x,sock=None):
+    global GLOBAL_old_exec_nr 
     print()
     # REMOTE KEY EVENT's
     i = ""
@@ -40,8 +42,10 @@ def JSCB(x,sock=None):
                     except:
                         exec_nr = -2
                 if "VAL" in msg:
-                    val = msg["VAL"]
-                
+                    try:
+                        val = int(msg["VAL"]) # fix int MIDI
+                    except:pass
+
                 if "FIX" in msg:
                     fix_nr=msg["FIX"]
                 if "ATTR" in msg:
@@ -131,10 +135,11 @@ def JSCB(x,sock=None):
 
 
                             if not OK:
+                                print("MIDI?",val)
                                 if val >= 0: #Press/Release
                                     MAIN.master.exec_go(exec_nr-1,xfade=None,val=val)
                                     OK = 1
-                                    EXEC_REFRESH = 1
+                                    #EXEC_REFRESH = 1
 
                     except Exception as e:
                         print("EXEC ERR:",e)
@@ -146,7 +151,22 @@ def JSCB(x,sock=None):
                     print()
                     if EXEC_REFRESH:
                         def xx():
-                            MAIN.execlib.exec_set_mc(MAIN.EXEC.label_exec,MAIN.EXEC.val_exec)
+                            #MAIN.execlib.exec_set_mc(MAIN.EXEC.label_exec,MAIN.EXEC.val_exec)
+                            nr = exec_nr-1
+                            label = MAIN.EXEC.label_exec[nr] #l[nr]
+                            data  = MAIN.EXEC.val_exec[nr] #d[k]
+                            print(" EXEC_REFRESH ? ",nr,label,"==================")
+                            MAIN.execlib.exec_set_mc_single(nr,label,data)
+                            print(time.time())
+
+                            global GLOBAL_old_exec_nr
+                            nr2 = GLOBAL_old_exec_nr
+                            if nr2 != nr and nr2 >= 0:
+                                label = MAIN.EXEC.label_exec[nr2] #l[nr]
+                                cprint(" GLOBAL_OLD_EXEC_NR",nr2,nr,label,"==================")
+                                data  = MAIN.EXEC.val_exec[nr2] #d[k]
+                                MAIN.execlib.exec_set_mc_single(nr2,label,data)
+                            GLOBAL_old_exec_nr = nr
                         thread.start_new_thread(xx,())
                 else:
                     cprint(" remote-key:",msg ,color="red")

+ 1 - 1
lib/libtk.py

@@ -595,7 +595,7 @@ class WindowContainer():
         try:
             self.tk.destroy()
         except Exception as e:
-            cprint("WindowContainer.close err",e,color="red")
+            cprint("WindowContainer.close ERR",[e],color="red")
 
     def title(self,title=None):
         if title is None:

+ 26 - 1
tkgui/EXEC.py

@@ -9,12 +9,32 @@ import _thread as thread
 
 import dialog
 DIALOG = dialog.Dialog()
+
+gui=None
+GLOBAL_old_btn_nr = -1
 def Dcb(exec_nr):
     def _Dcb(*args):
+        global GLOBAL_old_btn_nr 
         print("Dcb:",args)
         msg=json.dumps([{"event":"EXEC-CFG","EXEC":exec_nr,"VALUE":255,"DATA":args[0]}]).encode("utf-8")
         cprint("SEND DIALOG.cb",msg,color="green")
         cmd_client.send(msg)
+        if 1:#REFRESH:
+            btn_nr = exec_nr
+            time.sleep(0.8)
+            print()
+            print("CFG CB REFRESH !?",btn_nr)
+            nr = btn_nr-1
+            b = gui.elem_exec[nr]
+
+            gui._refresh_exec_single(nr,b) #,METAS):
+            time.sleep(0.2)
+            nr2= GLOBAL_old_btn_nr
+            if nr2 >= 0 and nr2 != nr:
+                gui._refresh_exec_single(nr2,b) #,METAS):
+                print("CFG CB2 REFRESH ",nr,nr2)
+            if 1:
+                GLOBAL_old_btn_nr = nr
     return _Dcb
 
 DIALOG._cb = Dcb(-3)
@@ -149,6 +169,8 @@ class Gui(): # DUMMY
                     data = mc.get("EXEC-META-"+str(nr)) #,json.dumps(index))
                     data = json.loads(data)
                     self.METAS[nr] = data #.append(data)
+                    print(time.time())
+                    print(" _REFRESH_EXEC_SINGLE",nr,b,data)
                 except Exception as e:
                     print("  ER1R mc...",e)
 
@@ -243,6 +265,7 @@ class Gui(): # DUMMY
                 DIALOG._cb = Dcb(btn_nr+1)
                 DIALOG.ask_exec_config(str(btn_nr+1),button=button,label=label,cfg=cfg)
                 #print("INFO",master.commands.elem)
+
             return #STOP
 
         PREFIX = ""
@@ -256,11 +279,13 @@ class Gui(): # DUMMY
                 REFRESH = 1
 
         msg=json.dumps([{"event": "EXEC","EXEC":btn_nr+1,"VAL":v,"NR-KEY":btn_nr}]).encode("utf-8")
-        cmd_client.send(msg)
+        if not _global_key_lock:
+            cmd_client.send(msg)
         cprint("SEND GUI.EXEC_GO",msg,color="green")
 
         if 1:#REFRESH:
             time.sleep(0.2)
+            print()
             print("REC REFRESH !?",PREFIX)
             nr = btn_nr
             b = self.elem_exec[nr]