Browse Source

fix: FIXTURE_LOAD popup add: fixture files

micha 1 year ago
parent
commit
5ebd171f31

+ 68 - 34
_LibreLightDesk.py

@@ -2669,21 +2669,6 @@ from tkgui.GUI import *
 
 
 #draw_enc
 #draw_enc
 
 
-class LOAD_FIXTURE():
-    def __init__(self,name="",master=None):
-        self.name=name
-        self.master=master
-
-    def cb(self,event=None):
-        print("LOAD_FIXTURE",self.name,event)
-        if self.master is not None:
-            #for i in dir(self.master): #.load_MH2()
-            #    print(i)
-            if "SPARX" in self.name:
-                self.master.load_MH2()
-            else:
-                self.master.load_DIM()
-            print(dir(self.master))
 
 
 class LOAD_SHOW_AND_RESTAT():
 class LOAD_SHOW_AND_RESTAT():
     def __init__(self,fname=""):
     def __init__(self,fname=""):
@@ -2808,36 +2793,83 @@ def _load_show_list(frame,cb=None):
             c+=1
             c+=1
         r+=1
         r+=1
 
 
+def _parse_fixture_name(name):
+    out = ["FIX","MAN","CH","PATH"]
+    if name.count(".") == 2:
+        m,n,e = name.split(".")
+        out = [n,m,"0",name]
+    elif name.count("_") == 2:
+        name,e = name.split(".")
+        m,n,c = name.split("_")
+        out = [n,m,c,name]
+    else:
+        out = [name]
+    return out
 
 
 def _load_fixture_list(frame,cb=None,master=None,bg="black"):
 def _load_fixture_list(frame,cb=None,master=None,bg="black"):
     frame.configure(bg=bg)
     frame.configure(bg=bg)
     c=0
     c=0
     r=0
     r=0
     base = Base()
     base = Base()
-    for i in ["name","stamp"]: #,"create"]:
+    for i in ["source","name","manufacturer","channel's","file","path"]: #,"create"]:
         b = tk.Label(frame,bg="grey",text=i)
         b = tk.Label(frame,bg="grey",text=i)
-        b.grid(row=r, column=c, sticky=tk.W+tk.E)
+        b.grid(row=r, column=c, sticky=tk.W) #+tk.E)
         c+=1
         c+=1
     r+=1
     r+=1
     blist = [] #base._list()
     blist = [] #base._list()
-    blist.append(["MAC-500","martin","z"])
-    blist.append(["MAC-2000","martin","z"])
-    blist.append(["MAC-VIPER","martin","z"])
-    blist.append(["SPARX-7","JB","z"])
-    blist.append(["SPARX-11","JB","z"])
-    blist.append(["JB-P6","JB","z"])
-    blist.append(["JB-P7","JB","z"])
-    blist.append(["JB-A7","JB","z"])
-    blist.append(["TMH-12","Eurolight","z"])
-    for i in range(10):
-        blist.append(["",""])
+    try:
+        p = "/home/user/LibreLight/fixtures/"
+        ls = os.listdir(p)
+        ls.sort()
+        for l in ls:
+            b = _parse_fixture_name(l)
+            b.append(p)
+            b.insert(0,"user")
+            blist.append(b)
+    except Exception as e:
+        print("Exce 877 ",e)
+    try:
+        p="/opt/LibreLight/Xdesk/fixtures/"
+        ls = os.listdir(p )
+        ls.sort()
+        for l in ls:
+            b = _parse_fixture_name(l)
+            b.append(p)
+            b.insert(0,"base")
+            blist.append(b)
+    except Exception as e:
+        print("Exce 878 ",e)
+
+    if not blist:
+        blist.append(["MAC-500","martin","Demo"])
+        blist.append(["MAC-2000","martin","Demo"])
+        blist.append(["MAC-VIPER","martin","Demo"])
+        blist.append(["SPARX-7","JB","Demo"])
+        blist.append(["SPARX-11","JB","Demo"])
+        blist.append(["JB-P6","JB","Demo"])
+        blist.append(["JB-P7","JB","Demo"])
+        blist.append(["JB-A7","JB","Demo"])
+        blist.append(["TMH-12","Eurolight","Demo"])
+
+    if len(blist) < 30:
+        for i in range(30-len(blist)):
+            blist.append(["{:0>4}".format(len(blist)+i+1),"",""])
 
 
 
 
     if cb is None: 
     if cb is None: 
         cb = DummyCallback #("load_show_list.cb")
         cb = DummyCallback #("load_show_list.cb")
-
+    
+    _tmp_name = ""
+    _tmp_flag = 0
     for i in blist:
     for i in blist:
         #print(i)
         #print(i)
+        if i[0] != _tmp_name:
+            _tmp_flag = "#aaf"
+            if i[0] == "user":
+                _tmp_flag = "#aaf"
+            if i[0] == "base":
+                _tmp_flag = "#0f0"
+
         c=0
         c=0
         for j in i:
         for j in i:
             bg="lightgrey"
             bg="lightgrey"
@@ -2847,12 +2879,10 @@ def _load_fixture_list(frame,cb=None,master=None,bg="black"):
             elif i[1] > time.strftime("%Y-%m-%d %X",  time.localtime(time.time()-3600*24*7)):
             elif i[1] > time.strftime("%Y-%m-%d %X",  time.localtime(time.time()-3600*24*7)):
                 dbg = "green"
                 dbg = "green"
 
 
+            if _tmp_flag:
+                bg = "{}".format(_tmp_flag)
 
 
-            if c > 0:
-                b = tk.Button(frame,text=j,anchor="w",bg=dbg,relief="sunken")
-                b.config(activebackground=dbg)
-                b.grid(row=r, column=c, sticky=tk.W+tk.E)
-            else:
+            if c == 1:
                 if base.show_name == i[0]:
                 if base.show_name == i[0]:
                     bg="green"
                     bg="green"
 
 
@@ -2863,6 +2893,10 @@ def _load_fixture_list(frame,cb=None,master=None,bg="black"):
                 if base.show_name == i[0]:
                 if base.show_name == i[0]:
                     b.config(activebackground=bg)
                     b.config(activebackground=bg)
                 b.grid(row=r, column=c, sticky=tk.W+tk.E)
                 b.grid(row=r, column=c, sticky=tk.W+tk.E)
+            else:#ief c > 0:
+                b = tk.Button(frame,text=j,anchor="w",bg=dbg,relief="sunken")
+                b.config(activebackground=dbg)
+                b.grid(row=r, column=c, sticky=tk.W+tk.E)
             c+=1
             c+=1
         r+=1
         r+=1
 
 

+ 4 - 0
fixtures/JB-Lighting_Sparx7_27ch-3sub.json

@@ -0,0 +1,4 @@
+50101	50101	{"DMX": 1, "UNIVERS": 1, "NAME": "SPX__50101", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT": {"PAN": {"NR": 1, "MASTER": "0", "MODE": "F", "VALUE": 139.74, "ACTIVE": 0, "FX": "", "FX2": {}}, "PAN-FINE": {"NR": 2, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "TILT": {"NR": 3, "MASTER": "0", "MODE": "S", "VALUE": 119.19, "ACTIVE": 0, "FX": "", "FX2": {}}, "TILT-FINE": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "SHUTTER": {"NR": 6, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "DIM": {"NR": 7, "MASTER": "0", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "ZOOM": {"NR": 8, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "GOBO": {"NR": 9, "MASTER": "0", "MODE": "S", "VALUE": 41.1, "ACTIVE": 0, "FX": "", "FX2": {}}, "GOBO2": {"NR": 11, "MASTER": "0", "MODE": "S", "VALUE": 36.99, "ACTIVE": 0, "FX": "", "FX2": {}}, "G-ROT": {"NR": 12, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "PRISMA": {"NR": 14, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "P-ROT": {"NR": 15, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}
+50102	50102	{"DMX": 21, "UNIVERS": 1, "NAME": "SPX__50102", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT": {"RED": {"NR": 1, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "WHITE": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}
+50103	50103	{"DMX": 25, "UNIVERS": 1, "NAME": "SPX__50103", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT": {"RED": {"NR": 1, "MASTER": "0", "MODE": "F", "VALUE": 63, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 255, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "WHITE": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}
+50104	50104	{"DMX": 29, "UNIVERS": 1, "NAME": "SPX__50104", "TYPE": "MOVER", "VENDOR": "JB", "ATTRIBUT": {"RED": {"NR": 1, "MASTER": "0", "MODE": "F", "VALUE": 255, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "WHITE": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}

+ 1 - 0
fixtures/LibreLight_VPU-COUNT-000_1ch.json

@@ -0,0 +1 @@
+1101	1101	{"DMX": 31, "UNIVERS": 1, "NAME": "COUNT1", "TYPE": "VPU", "VENDOR": "", "ATTRIBUT": {"DIM": {"NR": 1, "MASTER": "1", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "PAN": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 136.81, "ACTIVE": 0, "FX": "", "FX2": {}}, "TILT": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 156.18, "ACTIVE": 0, "FX": "", "FX2": {}}, "CONTROL": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "ZOOM": {"NR": 5, "MASTER": "0", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "SEC": {"NR": 6, "MASTER": "0", "MODE": "S", "VALUE": 11.33, "ACTIVE": 0, "FX": "", "FX2": {}}, "RED": {"NR": 7, "MASTER": "0", "MODE": "F", "VALUE": 149.14, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 8, "MASTER": "0", "MODE": "F", "VALUE": 186.13, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 9, "MASTER": "0", "MODE": "F", "VALUE": 255, "ACTIVE": 0, "FX": "", "FX2": {}}, "_ACTIVE": {"NR": 0, "ACTIVE": 0, "VALUE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}

+ 1 - 0
fixtures/LibreLight_VPU-FUNC-000_9ch.json

@@ -0,0 +1 @@
+1000	1000	{"DMX": 11, "UNIVERS": 1, "NAME": "FUNC", "TYPE": "DIMMER", "VENDOR": "", "ATTRIBUT": {"FUNC": {"NR": 1, "MASTER": "1", "MODE": "F", "VALUE": 32.88, "ACTIVE": 0, "FX": "", "FX2": {}}, "_ACTIVE": {"NR": 0, "ACTIVE": 0, "VALUE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}

+ 1 - 0
fixtures/LibreLight_VPU-PIX-000_4ch.json

@@ -0,0 +1 @@
+1	1	{"DMX": 1, "UNIVERS": 2, "NAME": "VPU_001", "TYPE": "MOVER", "VENDOR": "AYERTON", "ATTRIBUT": {"DIM": {"NR": 1, "MASTER": "0", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "RED": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 4, "MASTER": "0", "MODE": "F", "VALUE": 255, "ACTIVE": 0, "FX": "", "FX2": {}}, "_ACTIVE": {"NR": 0, "ACTIVE": 0, "VALUE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}

+ 1 - 0
fixtures/LibreLight_VPU-VPLAY-000_9ch.json

@@ -0,0 +1 @@
+1201	1201	{"DMX": 181, "UNIVERS": 1, "NAME": "VPLAY1", "TYPE": "VPU", "VENDOR": "", "ATTRIBUT": {"DIM": {"NR": 1, "MASTER": "1", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "PAN": {"NR": 2, "MASTER": "0", "MODE": "F", "VALUE": 78.09, "ACTIVE": 0, "FX": "", "FX2": {}}, "TILT": {"NR": 3, "MASTER": "0", "MODE": "F", "VALUE": 256, "ACTIVE": 0, "FX": "", "FX2": {}}, "CONTROL": {"NR": 4, "MASTER": "0", "MODE": "S", "VALUE": 32.88, "ACTIVE": 0, "FX": "", "FX2": {}}, "ZOOM": {"NR": 5, "MASTER": "0", "MODE": "F", "VALUE": 24.66, "ACTIVE": 0, "FX": "", "FX2": {}}, "SEC": {"NR": 6, "MASTER": "0", "MODE": "S", "VALUE": 15.44, "ACTIVE": 0, "FX": "", "FX2": {}}, "RED": {"NR": 7, "MASTER": "0", "MODE": "F", "VALUE": 45.21, "ACTIVE": 0, "FX": "", "FX2": {}}, "GREEN": {"NR": 8, "MASTER": "0", "MODE": "F", "VALUE": 194.35, "ACTIVE": 0, "FX": "", "FX2": {}}, "BLUE": {"NR": 9, "MASTER": "0", "MODE": "F", "VALUE": 0, "ACTIVE": 0, "FX": "", "FX2": {}}, "_ACTIVE": {"NR": 0, "ACTIVE": 0, "VALUE": 0, "FX": "", "FX2": {}}}, "ACTIVE": 0}

+ 18 - 8
tkgui/GUI.py

@@ -1,6 +1,7 @@
 
 
 import tkinter as tk
 import tkinter as tk
 from __main__ import *
 from __main__ import *
+import __main__ as _M
 import lib.mytklib as mytklib
 import lib.mytklib as mytklib
 
 
 class Event():
 class Event():
@@ -19,6 +20,21 @@ class scroll():
         canvas.configure(scrollregion=canvas.bbox("all"))#,width=400,height=200)
         canvas.configure(scrollregion=canvas.bbox("all"))#,width=400,height=200)
 
 
 
 
+class LOAD_FIXTURE():
+    def __init__(self,name="",master=None):
+        self.name=name
+        self.master=master
+
+    def cb(self,event=None):
+        print("LOAD_FIXTURE",self.name,event)
+        if self.master is not None:
+            #for i in dir(self.master): #.load_MH2()
+            #    print(i)
+            if "SPARX" in self.name:
+                self.master.load_MH2()
+            else:
+                self.master.load_DIM()
+            print(dir(self.master))
 
 
 class TableFrame():
 class TableFrame():
     def __init__(self,root, width=50,height=100,bd=1):
     def __init__(self,root, width=50,height=100,bd=1):
@@ -725,15 +741,9 @@ class GUI_FaderLayout():
         line1="Fixture Library"
         line1="Fixture Library"
         line2="CHOOS to EDIT >> DEMO MODUS"
         line2="CHOOS to EDIT >> DEMO MODUS"
         cb = LOAD_FIXTURE
         cb = LOAD_FIXTURE
-        #cb.master=self
-        pw = PopupList(name,cb=cb,left=_POS_LEFT+820,bg="red")
+        pw = _M.PopupList(name,width=600,cb=cb,left=_M._POS_LEFT+620,bg="#333")
         frame = pw.sframe(line1=line1,line2=line2)
         frame = pw.sframe(line1=line1,line2=line2)
-        r=_load_fixture_list(frame,cb=cb,master=self,bg="red")
-
-
-        #self.elem["bg"] = "red"
-        #self.elem.config(activebackground="red")
-        #w.tk.attributes('-topmost',False)
+        r=_M._load_fixture_list(frame,cb=cb,master=self,bg="#333")
 
 
     def load_EMPTY(self,_event=None,attr=[]):
     def load_EMPTY(self,_event=None,attr=[]):
         #attr = [,"RED","GREEN","BLUE"]
         #attr = [,"RED","GREEN","BLUE"]