Mercurial > code > home > repos > light9
diff light8/ExternalInput.py @ 0:45b12307c695
Initial revision
author | drewp |
---|---|
date | Wed, 03 Jul 2002 09:37:57 +0000 |
parents | |
children | 0969d8a6729d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/light8/ExternalInput.py Wed Jul 03 09:37:57 2002 +0000 @@ -0,0 +1,40 @@ +import thread, SocketServer, socket + + +currentlevels = [0,0,0,0] + + +class NetSliderHandler(SocketServer.StreamRequestHandler): + def handle(self): + data = self.rfile.readline(1000) + currentlevels[:] = [round(self.bounds(float(x)/255),3) for x in list(data.split())] + def bounds(self,x): + # the last .1 both ways shall not do anything + x=x*1.1-.05 + x=min(1,max(0,x)) + return x + +def start_server(levelstorage=0): + server = SocketServer.TCPServer( + ('', socket.getservbyname('rlslider', 'tcp')), + NetSliderHandler) + server.serve_forever() + +class ExternalSliders: + def __init__(self, level_storage=[]): + self.level_storage = level_storage + self.spawn_server() + def test(self): + 'Store fake inputs to test operations' + pass + def spawn_server(self): + pass + # thread.start_new_thread(start_server, (self.update)) + def update(self, *args): + self.level_storage[:] = args + def get_levels(self): + return currentlevels +# import math, time +# return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus + + # return self.level_storage