Quellcode durchsuchen

add: apcmini to config, fix: window.top

micha vor 1 Jahr
Ursprung
Commit
545aa83295
3 geänderte Dateien mit 224 neuen und 173 gelöschten Zeilen
  1. 3 3
      _LibreLightDesk.py
  2. 138 128
      remote/apcmini.py
  3. 83 42
      tksdl/config.py

+ 3 - 3
_LibreLightDesk.py

@@ -4605,12 +4605,12 @@ class WindowManager():
         w = self.windows[name]
         #def get_lineno():
         print(" 2.1- ln",movewin.get_lineno(),w,str(type(w)))
-        if type(w) is type(window_create_buffer):
+        #if type(w) is type(window_create_buffer):
+        if not str(type(w)).startswith("<class 'function'>"): 
             w.tk.attributes('-topmost',True)
             w.tk.attributes('-topmost',False)
             w.tk.update_idletasks()
-
-        if str(type(w)).startswith("<class 'function'>"): # is type(window_create_sdl_buffer):
+        else:
             print(" 2.2-",w)
             w()
 

+ 138 - 128
remote/apcmini.py

@@ -10,7 +10,8 @@ import sys
 sys.stdout.write("\x1b]2;APCmini\x07")
 
 import os
-sys.path.append(os.getcwd() + '/..')
+#sys.path.append(os.getcwd() + '/..')
+sys.path.insert(0,"/opt/LibreLight/Xdesk/")
 import time
 import socket, struct
 import random
@@ -54,132 +55,141 @@ GREEN_BLINK = 2
 RED = 3
 RED_BLINK = 4
 
-def main():
-    release = 0
-    if 0:
-        r = 225
-        for i in range(4):
-            for i in range(r):
-                print(i)
-                midi.write([144,40+i,GREEN])
-            time.sleep(0.2)
-            for i in range(r):
-                print(i)
-                midi.write([144,40+i,BLACK])
-            time.sleep(0.2)
+
+class MAIN():
+    def __init__(self):
+        self.buf = []
+    def loop(self):
+        release = 0
+        if 0:
+            r = 225
+            for i in range(4):
+                for i in range(r):
+                    print(i)
+                    midi.write([144,40+i,GREEN])
+                time.sleep(0.2)
+                for i in range(r):
+                    print(i)
+                    midi.write([144,40+i,BLACK])
+                time.sleep(0.2)
+                for i in range(r):
+                    print(i)
+                    midi.write([144,40+i,RED])
+                time.sleep(1.52)
             for i in range(r):
                 print(i)
-                midi.write([144,40+i,RED])
-            time.sleep(1.52)
-        for i in range(r):
-            print(i)
-            midi.write([144,60+i,BLACK])
-    
-        time.sleep(0.5)
-
-
-    while True:
-        if release:
-            release = 0
-            for i in range(4):
-                midi.write([144,60+i,YELLOW])
-                midi.write([144,52+i,YELLOW])
-                midi.write([144,44+i,YELLOW])
-                midi.write([144,36+i,YELLOW])
-
-                midi.write([144,24+i,RED])
-                midi.write([144,24+i+4,RED])
-
-
-                midi.write([144,56+i,GREEN])
-
-                midi.write([144,8+i,GREEN])
-                midi.write([144,12+i,GREEN])
-
-        #midi.write([144,82,YELLOW])
-        #time.sleep(.5)
-        #midi.write([144,82,BLACK])
-
-        rows = [56,48,40,32,24,16,8,0,64,48]
-        midi_function = {
-                "Off": (128,144),
-                "On ":(144,160),
-                "PLY":(160,176),
-                "CC ":(176,192),
-                "PC ":(192,208),
-                "CA ":(208,223),
-                "QtrFrame":(241,242),
-                "tclock":(248,249),
-        }
-        # cut byte
-        # x=174;((x)^(x>>4<<4))
-        # int(bin(151)[-4:],2)+1
-        #nibl =  x=174;((x)^(x>>4<<4))
-        #nibl = int(bin(151)[-4:],2)+1
-        ch = -123
-        if midi.poll():
-            midi_date = midi.read(1)
-            #print("MIDI",midi_date)
-            if 1:# midi_date[0] >= 128 midi_date[0] <= 143:
-                ch = int(bin(midi_date[0])[-4:],2)+1
-
-            for fn,v in midi_function.items():
-                if midi_date[0] >= v[0] and midi_date[0] < v[1]:
-                    FN = fn
-                    break
-
-            r_old = 0
-            row = 0
-            for r in rows: 
-                #print(r_old,r)
-                if r_old and midi_date[1] >= r_old and midi_date[1] < r:
-                    row = midi_data[1] - r+1
-                    print("jo")
-                r_old=r   
-
-            nibl = int(bin(midi_date[1])[2:][-4:],2)+1
-            _bin2 = bin(midi_date[1])
-            _bin2 = _bin2[2:]
-            _bin2 = _bin2.rjust(8,"0")
-            _bin2 = int(_bin2[1:5],2)
-
-            _bin = bin(midi_date[1])
-            _bin = _bin[2:]
-            _bin = _bin.rjust(8,"0")
-            _bin = _bin[-3:] # 3 bit
-
-            value = ""
-            btn = int(midi_date[1]) #btn_row*btn_col
-            if FN == "CC ":
-                _bin2 =str(int(_bin2)+1000)
-                value = midi_date[-1]
-                btn += 1000
-            if FN == "On ":
-                value = 1
-                midi.write([144,midi_date[1],YELLOW])
-            if FN == "Off":
-                value = 0
-                release = 1
-                midi.write([144,midi_date[1],BLACK])
-
-            btn_row = int(_bin2)+1 
-            btn_col =int(_bin,2)+1
-
-            #print(row,"in:",FN,"ch",ch,"raw",midi_date,_bin,btn_row,btn_col,[value])
-            #print([btn_row,btn_col,btn,value])
-            print([btn,value])
-
-
-main()
-
-node = 244
-
-node2 = 0
-while 1:
-    inp = raw_input("end")
-    try:
-        inp = inp.split(" ")
-        midi.write(inp)
-        midi.write(inp)
-    
-    except:pass
+                midi.write([144,60+i,BLACK])
+        
+            time.sleep(0.5)
+
+
+        while True:
+            if release:
+                release = 0
+                for i in range(4):
+                    midi.write([144,60+i,YELLOW])
+                    midi.write([144,52+i,YELLOW])
+                    midi.write([144,44+i,YELLOW])
+                    midi.write([144,36+i,YELLOW])
+
+                    midi.write([144,24+i,RED])
+                    midi.write([144,24+i+4,RED])
+
+
+                    midi.write([144,56+i,GREEN])
+
+                    midi.write([144,8+i,GREEN])
+                    midi.write([144,12+i,GREEN])
+
+            #midi.write([144,82,YELLOW])
+            #time.sleep(.5)
+            #midi.write([144,82,BLACK])
+
+            rows = [56,48,40,32,24,16,8,0,64,48]
+            midi_function = {
+                    "Off": (128,144),
+                    "On ":(144,160),
+                    "PLY":(160,176),
+                    "CC ":(176,192),
+                    "PC ":(192,208),
+                    "CA ":(208,223),
+                    "QtrFrame":(241,242),
+                    "tclock":(248,249),
+            }
+            # cut byte
+            # x=174;((x)^(x>>4<<4))
+            # int(bin(151)[-4:],2)+1
+            #nibl =  x=174;((x)^(x>>4<<4))
+            #nibl = int(bin(151)[-4:],2)+1
+            ch = -123
+            if midi.poll():
+                midi_date = midi.read(1)
+                #print("MIDI",midi_date)
+                if 1:# midi_date[0] >= 128 midi_date[0] <= 143:
+                    ch = int(bin(midi_date[0])[-4:],2)+1
+
+                for fn,v in midi_function.items():
+                    if midi_date[0] >= v[0] and midi_date[0] < v[1]:
+                        FN = fn
+                        break
+
+                r_old = 0
+                row = 0
+                for r in rows: 
+                    #print(r_old,r)
+                    if r_old and midi_date[1] >= r_old and midi_date[1] < r:
+                        row = midi_data[1] - r+1
+                        print("jo")
+                    r_old=r   
+
+                nibl = int(bin(midi_date[1])[2:][-4:],2)+1
+                _bin2 = bin(midi_date[1])
+                _bin2 = _bin2[2:]
+                _bin2 = _bin2.rjust(8,"0")
+                _bin2 = int(_bin2[1:5],2)
+
+                _bin = bin(midi_date[1])
+                _bin = _bin[2:]
+                _bin = _bin.rjust(8,"0")
+                _bin = _bin[-3:] # 3 bit
+
+                value = ""
+                btn = int(midi_date[1]) #btn_row*btn_col
+                if FN == "CC ":
+                    _bin2 =str(int(_bin2)+1000)
+                    value = midi_date[-1]
+                    btn += 1000
+                if FN == "On ":
+                    value = 1
+                    midi.write([144,midi_date[1],YELLOW])
+                if FN == "Off":
+                    value = 0
+                    release = 1
+                    midi.write([144,midi_date[1],BLACK])
+
+                btn_row = int(_bin2)+1 
+                btn_col =int(_bin,2)+1
+
+                #print(row,"in:",FN,"ch",ch,"raw",midi_date,_bin,btn_row,btn_col,[value])
+                #print([btn_row,btn_col,btn,value])
+                print([btn,value])
+
+                self.buf.append([btn,value])
+
+
+if __name__ == "__main__":
+    import _thread as thread
+
+    main = MAIN()
+    thread.start_new_thread(main.loop,())
+    time.sleep(1)
+
+
+    while 1:
+        if main.buf:
+            buf = main.buf[:]
+            main.buf = []
+            for m in buf:
+                print("-> midi:",m)
+
+        time.sleep(0.1)

+ 83 - 42
tksdl/config.py

@@ -19,7 +19,7 @@ print("file:",_file_path)
 import tool.movewin as movewin
 pids = movewin.search_process(_file_path)
 
-CAPTION = 'LibreLight Start '
+CAPTION = 'LibreLight SDL-CONFIG '
 
 if len(pids) >= 2:
     search = CAPTION[:]
@@ -97,26 +97,26 @@ i += 1
 r+=bx.get_rect()[3]
 bx = sdl_elm.Button(window,pos=[20,r,80,40])
 bx.text = "FIX:{}\n<val>\nx".format(i+1)
-bx.font0 = pygame.font.SysFont("freesans",20)
+#bx.font0 = pygame.font.SysFont("freesans",20)
 bx.btn4.val.set( 100)
 bx.fader = 0
 table.append(bx)
 r+=bx.get_rect()[3]
 
 i += 1
-bx = sdl_elm.Button(window,pos=[30,r,190,60])
+bx = sdl_elm.Button(window,pos=[20,r,80,60])
 bx.text = "FIX:{}\n<val>\nx".format(i+1)
-bx.font0 = pygame.font.SysFont("freesans-bold",20)
+#bx.font0 = pygame.font.SysFont("freesans-bold",20)
 bx.btn1.type = "flash"
 table.append(bx)
 r+=bx.get_rect()[3]
 
 i += 1
-bx = sdl_elm.Button(window,pos=[20,r,60,20])
+bx = sdl_elm.Button(window,pos=[20,r,80,20])
 bx.text = "FIX:{}\n<val>\nx".format(i+1)
-bx.font0 = pygame.font.SysFont("freesans",12)
+#bx.font0 = pygame.font.SysFont("freesans",12)
 table.append(bx)
-
+table = []
 mouse_down = 0
 mouse_pos1 = [0,0]
 mouse_pos2 = [0,0]
@@ -125,6 +125,28 @@ print(int((time.time()-boot)*10),"loop...")
 fps_t = time.time()
 fps = 0
 fps_old = 0
+
+
+
+
+import _thread as thread
+try:
+    import remote.apcmini as apcmini
+    apc_main = apcmini.MAIN()
+    thread.start_new_thread(apc_main.loop,())
+    time.sleep(1)
+except Exception as e:
+    print("MIDI INI",e)
+
+
+#while 1:
+#    if apc_main.buf:
+#        buf = apc_main.buf[:]
+#        apc_main.buf = []
+#        for m in buf:
+#            print("-> midi:",m)
+
+buf = []
 while 1:
     fps +=1
     t = time.time()
@@ -145,41 +167,60 @@ while 1:
     fr = font22.render("FPS:"+str(fps_old)  ,1, (200,200,200))
     window.blit(fr,(10,10 ))
 
-    fr = font22.render("DEMO / TEST - MODE ! "  ,1, (200,200,200))
-    window.blit(fr,(10,30 ))
-
-    pos = [160,110,70+80,20]
-    pygame.draw.rect(window,rgb,pos)
-
-    t=(time.time()-start)
-    if t > 15:
-        start = time.time()
-    b= 80-int(t*10)
-    pos = [160,110,70+(b),20]
-    rgb = (0x00,0xff,0xff,0)
-    pygame.draw.rect(window,rgb,pos)
-    rgb = (0x00,0x00,0x00,0)
-    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
-    window.blit(fr,pos[:2])
-    
-    pos = [160,200,80,20]
-    #fd = sdl_elm.Fader(window,pos)
-    #fd.draw()
-    
-    pos = [160,90,70+80,20]
-    pygame.draw.rect(window,rgb,pos)
-    b= int(t*10)
-    pos = [160,90,0+(b),20]
-    rgb = (0x00,0xff,0xff,0)
-    pygame.draw.rect(window,rgb,pos)
-    rgb = (0x00,0x00,0x00,0)
-    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
-    window.blit(fr,pos[:2])
-
-
-    rgb = (0xaa,0xaa,0xaa,0)
-    fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
-    window.blit(fr,(500,500))
+    fr = font22.render("SDL-CONFIG "  ,1, (200,200,200))
+    window.blit(fr,(100,10 ))
+
+
+
+    try:
+        if apc_main.buf:
+            buf = apc_main.buf[:]
+            apc_main.buf = []
+    except Exception as e:
+        print("midi",e)
+
+    r = 10
+    fr = font22.render("MIDI: APCMINI"  ,1, (200,100,200))
+    window.blit(fr,(330,30+r ))
+    r+=30
+    for m in buf:
+        #print("-> midi:",m)
+        fr = font22.render("MIDI:"+str(m)  ,1, (200,200,0))
+        window.blit(fr,(330,30+r ))
+        r+=30
+
+    if 0: #timer balken
+        pos = [160,110,70+80,20]
+        pygame.draw.rect(window,rgb,pos)
+        t=(time.time()-start)
+        if t > 15:
+            start = time.time()
+        b= 80-int(t*10)
+        pos = [160,110,70+(b),20]
+        rgb = (0x00,0xff,0xff,0)
+        pygame.draw.rect(window,rgb,pos)
+        rgb = (0x00,0x00,0x00,0)
+        fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+        window.blit(fr,pos[:2])
+        
+        pos = [160,200,80,20]
+        #fd = sdl_elm.Fader(window,pos)
+        #fd.draw()
+        
+        pos = [160,90,70+80,20]
+        pygame.draw.rect(window,rgb,pos)
+        b= int(t*10)
+        pos = [160,90,0+(b),20]
+        rgb = (0x00,0xff,0xff,0)
+        pygame.draw.rect(window,rgb,pos)
+        rgb = (0x00,0x00,0x00,0)
+        fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+        window.blit(fr,pos[:2])
+
+
+        rgb = (0xaa,0xaa,0xaa,0)
+        fr = font22.render(str(round(t,1)) ,1, rgb) #(200,200,200))
+        window.blit(fr,(500,500))
 
     for t in table:
         t.draw()