|
@@ -2,6 +2,7 @@ from OSC import OSCServer
|
|
|
OSCServer.print_tracebacks = True
|
|
OSCServer.print_tracebacks = True
|
|
|
|
|
|
|
|
from input_server import InputServer
|
|
from input_server import InputServer
|
|
|
|
|
+from screen import pixel_coords
|
|
|
|
|
|
|
|
|
|
|
|
|
class TuioServer2D(InputServer):
|
|
class TuioServer2D(InputServer):
|
|
@@ -51,15 +52,20 @@ class TuioServer2D(InputServer):
|
|
|
if sid not in self.alive:
|
|
if sid not in self.alive:
|
|
|
raise ValueError('Point with sid "%d" is not alive.' % sid)
|
|
raise ValueError('Point with sid "%d" is not alive.' % sid)
|
|
|
|
|
|
|
|
|
|
+ # Translate to pixel coordinates
|
|
|
|
|
+ px, py = pixel_coords(x, y)
|
|
|
|
|
+
|
|
|
# Check if 'point_down' has already been triggered. If so, trigger
|
|
# Check if 'point_down' has already been triggered. If so, trigger
|
|
|
# a 'point_move' event instead
|
|
# a 'point_move' event instead
|
|
|
if sid in self.down:
|
|
if sid in self.down:
|
|
|
- self.debug('Moved %d to (%s, %s).' % (sid, x, y))
|
|
|
|
|
- self.handler_obj.on_point_move(sid, x, y)
|
|
|
|
|
|
|
+ self.debug('Moved %d to (%.4f, %.4f) or (%d, %d).'
|
|
|
|
|
+ % (sid, x, y, px, py))
|
|
|
|
|
+ self.handler_obj.on_point_move(sid, px, py)
|
|
|
else:
|
|
else:
|
|
|
- self.debug('Down %d at (%s, %s).' % (sid, x, y))
|
|
|
|
|
|
|
+ self.debug('Down %d at (%.4f, %.4f) or (%d, %d).'
|
|
|
|
|
+ % (sid, x, y, px, py))
|
|
|
self.down.add(sid)
|
|
self.down.add(sid)
|
|
|
- self.handler_obj.on_point_down(sid, x, y)
|
|
|
|
|
|
|
+ self.handler_obj.on_point_down(sid, px, py)
|
|
|
|
|
|
|
|
def run(self):
|
|
def run(self):
|
|
|
self.server.handle_request()
|
|
self.server.handle_request()
|
|
@@ -98,13 +104,13 @@ if __name__ == '__main__':
|
|
|
# Define handlers
|
|
# Define handlers
|
|
|
class Handler(InputServerHandler, Logger):
|
|
class Handler(InputServerHandler, Logger):
|
|
|
def on_point_down(self, sid, x, y):
|
|
def on_point_down(self, sid, x, y):
|
|
|
- self.info('Point down: sid=%d (%s, %s)' % (sid, x, y))
|
|
|
|
|
|
|
+ self.info('Point down: sid=%d (%.4f, %.4f)' % (sid, x, y))
|
|
|
|
|
|
|
|
def on_point_up(self, sid):
|
|
def on_point_up(self, sid):
|
|
|
self.info('Point up: sid=%d' % sid)
|
|
self.info('Point up: sid=%d' % sid)
|
|
|
|
|
|
|
|
def on_point_move(self, sid, x, y):
|
|
def on_point_move(self, sid, x, y):
|
|
|
- self.info('Point move: sid=%d (%s, %s)' % (sid, x, y))
|
|
|
|
|
|
|
+ self.info('Point move: sid=%d (%.4f, %.4f)' % (sid, x, y))
|
|
|
|
|
|
|
|
server = TuioServer2D(Handler())
|
|
server = TuioServer2D(Handler())
|
|
|
|
|
|