0
|
1 import thread, SocketServer, socket
|
|
2
|
|
3
|
|
4 currentlevels = [0,0,0,0]
|
|
5
|
|
6
|
|
7 class NetSliderHandler(SocketServer.StreamRequestHandler):
|
|
8 def handle(self):
|
|
9 data = self.rfile.readline(1000)
|
|
10 currentlevels[:] = [round(self.bounds(float(x)/255),3) for x in list(data.split())]
|
|
11 def bounds(self,x):
|
|
12 # the last .1 both ways shall not do anything
|
|
13 x=x*1.1-.05
|
|
14 x=min(1,max(0,x))
|
|
15 return x
|
|
16
|
|
17 def start_server(levelstorage=0):
|
|
18 server = SocketServer.TCPServer(
|
|
19 ('', socket.getservbyname('rlslider', 'tcp')),
|
|
20 NetSliderHandler)
|
|
21 server.serve_forever()
|
|
22
|
|
23 class ExternalSliders:
|
|
24 def __init__(self, level_storage=[]):
|
|
25 self.level_storage = level_storage
|
|
26 self.spawn_server()
|
|
27 def test(self):
|
|
28 'Store fake inputs to test operations'
|
|
29 pass
|
|
30 def spawn_server(self):
|
|
31 pass
|
|
32 # thread.start_new_thread(start_server, (self.update))
|
|
33 def update(self, *args):
|
|
34 self.level_storage[:] = args
|
|
35 def get_levels(self):
|
|
36 return currentlevels
|
|
37 # import math, time
|
|
38 # return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus
|
|
39
|
|
40 # return self.level_storage
|