Files @ 97c08a1c4351
Branch filter:

Location: light9/light8/ExternalInput.py

David McClosky
gyrocontroller: remap buttons, fix keep mode
Also, solo mode is now default, colors are brighter, numeric names for subs
are converted to subs with only that channel up, send zeroes when exiting
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