diff --git a/light8/ExternalInput.py b/light8/ExternalInput.py --- a/light8/ExternalInput.py +++ b/light8/ExternalInput.py @@ -1,10 +1,15 @@ -import thread, SocketServer +import thread, SocketServer, socket + + +currentlevels = [0,0,0,0] + class NetSliderHandler(SocketServer.StreamRequestHandler): def handle(self): data = self.rfile.readline(1000) + currentlevels[:] = [float(x)/255 for x in list(data.split())] -def start_server(levelstorage): +def start_server(levelstorage=0): server = SocketServer.TCPServer( ('', socket.getservbyname('rlslider', 'tcp')), NetSliderHandler) @@ -23,7 +28,8 @@ class ExternalSliders: def update(self, *args): self.level_storage[:] = args def get_levels(self): - import math, time - return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus + return currentlevels +# import math, time +# return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus # return self.level_storage diff --git a/light8/rsn.py b/light8/rsn.py --- a/light8/rsn.py +++ b/light8/rsn.py @@ -33,6 +33,12 @@ root.tk_setPalette('gray40') signal(SIGINT, mr_lightboard.quit) +# +# start net slider server in separate thread +# +import ExternalInput, thread +thread.start_new_thread(ExternalInput.start_server,()) + bindkeys(root,'', mr_lightboard.quit) root.bind_class("all","",lambda ev: eventtoparent(ev,"")) diff --git a/light8/uihelpers.py b/light8/uihelpers.py --- a/light8/uihelpers.py +++ b/light8/uihelpers.py @@ -29,8 +29,11 @@ def bindkeys(root,key, func): def toplevel_savegeometry(tl,name): try: - f=open(".light9-window-geometry-%s" % name.replace(' ','_'),'w') - f.write(tl.geometry()) + geo = tl.geometry() + if not geo.startswith("1x1"): + f=open(".light9-window-geometry-%s" % name.replace(' ','_'),'w') + f.write(tl.geometry()) + # else the window never got mapped except: # it's ok if there's no saved geometry pass