#!/usr/bin/python3 import json import time import sys import os import tkinter as tk import traceback import _thread as thread sys.path.insert(0,"/opt/LibreLight/Xdesk/") gui=None INIT_OK = 1 IS_GUI = 0 import __main__ as MAIN import lib.meta as meta import tool.git as git CAPTION = "FX3" title = CAPTION title += git.get_all() from lib.cprint import cprint import lib.libtk as libtk import lib.libtk2 as libtk2 import lib.zchat as chat import lib.mytklib as mytklib import lib.tkevent as tkevent #import tkgui.draw as draw import tool.movewin as movewin movewin.check_is_started("FX3","/opt/LibreLight/Xdesk/tkgui/FX3.py") def _add_space(frame,r,c): b = tk.Canvas(frame,bg="black", height=2,bd=0,width=6,highlightthickness=0) #,bd="black") b.grid(row=r, column=c, sticky=tk.W+tk.E) r+=1 c=0 return r,c def basic(): for i in range(4): k = "GRP:1" #.format(i+1) MAIN.meta.fx3_grid[k].val("POS") k = "ATTR:1" #.format(i+1) MAIN.meta.fx3_grid[k].val("-") k = "ATTR:2" #.format(i+1) MAIN.meta.fx3_grid[k].val("-") k = "ATTR:3" #.format(i+1) MAIN.meta.fx3_grid[k].val("-") k = "ATTR:4" #.format(i+1) MAIN.meta.fx3_grid[k].val("-") k = "SIZE:{}".format(i+1) MAIN.meta.fx3_grid[k].val(255) MAIN.meta.fx3_grid[k].data["init_value"] = 255 MAIN.meta.fx3_grid[k].data["max"] = 512 MAIN.meta.fx3_grid[k].data["cycle"] = [0,127,255] k = "SPEED:{}".format(i+1) MAIN.meta.fx3_grid[k].val(10) MAIN.meta.fx3_grid[k].data["init_value"] = 10 MAIN.meta.fx3_grid[k].data["max"] = 255 MAIN.meta.fx3_grid[k].data["cycle"] = [0,5,25,30,100,255] k = "OFFSET:{}".format(i+1) MAIN.meta.fx3_grid[k].val(100) MAIN.meta.fx3_grid[k].data["init_value"] = 100 MAIN.meta.fx3_grid[k].data["inc"] = 25 k = "WIDTH:{}".format(i+1) MAIN.meta.fx3_grid[k].val(25) MAIN.meta.fx3_grid[k].data["init_value"] = 25 MAIN.meta.fx3_grid[k].data["max"] = 100 MAIN.meta.fx3_grid[k].data["inc"] = 5 k = "START:{}".format(i+1) MAIN.meta.fx3_grid[k].val(0) MAIN.meta.fx3_grid[k].data["init_value"] = 0 MAIN.meta.fx3_grid[k].data["max"] = 255 MAIN.meta.fx3_grid[k].data["inc"] = 5 k = "SHUFFLE:{}".format(i+1) MAIN.meta.fx3_grid[k].val(0) MAIN.meta.fx3_grid[k].data["init_value"] = 0 MAIN.meta.fx3_grid[k].data["max"] = 2 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 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 basic() def circle(): #basic() k = "GRP:1" #.format(i+1) MAIN.meta.fx3_grid[k].val("POS") k = "GRP:2" #.format(i+1) MAIN.meta.fx3_grid[k].val("POS") k = "ATTR:1" #.format(i+1) MAIN.meta.fx3_grid[k].val("PAN") k = "ATTR:2" #.format(i+1) MAIN.meta.fx3_grid[k].val("TILT") k = "ATTR:3" #.format(i+1) MAIN.meta.fx3_grid[k].val(" ") k = "TYPE:1" MAIN.meta.fx3_grid[k].val("SIN") k = "TYPE:2" MAIN.meta.fx3_grid[k].val("COS") def size(val=255): for i in range(4): k = "SIZE:{}".format(i+1) print(" ",k,val) 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) print(" ",k,val) MAIN.meta.fx3_grid[k].val(val) __refresh_fx3(_filter="SPEED") def rgb(): #basic() k = "GRP:1" MAIN.meta.fx3_grid[k].val("RGB") k = "GRP:2" MAIN.meta.fx3_grid[k].val("RGB") k = "GRP:3" MAIN.meta.fx3_grid[k].val("RGB") k = "ATTR:1" MAIN.meta.fx3_grid[k].val("RED") k = "ATTR:2" MAIN.meta.fx3_grid[k].val("GREEN") k = "ATTR:3" MAIN.meta.fx3_grid[k].val("BLUE") k = "TYPE:1" MAIN.meta.fx3_grid[k].val("FD") k = "TYPE:2" MAIN.meta.fx3_grid[k].val("STATIC") k = "TYPE:3" MAIN.meta.fx3_grid[k].val("STATIC") __refresh_fx3() def clear(): basic() k = "GRP:1" MAIN.meta.fx3_grid[k].val(" ") k = "GRP:2" MAIN.meta.fx3_grid[k].val(" ") k = "GRP:3" MAIN.meta.fx3_grid[k].val(" ") k = "ATTR:1" MAIN.meta.fx3_grid[k].val(" ") k = "ATTR:2" MAIN.meta.fx3_grid[k].val(" ") k = "ATTR:3" MAIN.meta.fx3_grid[k].val(" ") k = "TYPE:1" MAIN.meta.fx3_grid[k].val(" ") k = "TYPE:2" MAIN.meta.fx3_grid[k].val(" ") k = "TYPE:3" MAIN.meta.fx3_grid[k].val(" ") circle() def _refresh_fx3x(): #frame,c,r,gui,mode="FX"): time.sleep(5) while 1: print("Ö " *22) circle() time.sleep(3) rgb() time.sleep(3) clear() time.sleep(3) print("Ö " *22) break def __refresh_fx3(_filter=""): ct = MAIN.meta.fx3 #moves prm = MAIN.meta.fx3_prm for comm in ct.labels: if comm not in ct.elem: continue b = ct.elem[comm] if comm in MAIN.meta.fx3_grid: if _filter and _filter != comm: continue v2 = MAIN.meta.fx3_grid[comm].val() v1 = b["text"] if "ATTR" in comm or "GRP" in comm: print([comm,v1,v2,b]) if str(v2) != str(v1): print(" change") #print([comm,b,v1,v2]) b["text"] = str(v2) def _refresh_fx3(): #frame,c,r,gui,mode="FX"): while 1: __refresh_fx3() time.sleep(2) def _draw_fx3(frame,c,r,gui,mode="FX"): ct = MAIN.meta.fx3 #moves prm = MAIN.meta.fx3_prm for comm in ct.labels: print(" draw3",comm) if comm == "\n\n": b = tk.Label(frame,bg="black", text="-",font=space_font) b.grid(row=r, column=c,pady=0,padx=0, sticky=tk.W+tk.E) c=0 r+=1 continue if comm == "\n": c=0 r+=1 continue v=0 b = tk.Button(frame,bg="lightgrey", text=str(comm),width=6,height=1) ct.elem[comm] = b ct.val[comm] = 0 def _XXX(xcb,xcomm,xb): def XXX(event=None,**data): print("BTN:",xb["text"],xcomm) print("xXx "*22) print("XXX",event,data) if xcomm == "CIRCLE": circle() elif xcomm == "RED": rgb() elif xcomm == "MINI": size(10) elif xcomm == "SMALL": size(25) elif xcomm == "NORMAL": size(50) elif xcomm == "BIG": size(100) elif xcomm == "SLOW": speed(5) elif xcomm == "MID": speed(25) elif xcomm == "FAST": speed(100) elif xcomm == "TURBO": speed(200) xcb(event) #,data) return XXX _cb = tkevent.tk_event_fx(fix=0,elem=b,attr=comm,data=gui,mode=mode).cb _comm = comm _b = b XXX = _XXX(_cb,_comm,_b) b.bind("