diff -r f4303074311f -r e4e5f02787a1 front_idill/extern/fajran-npTuioClient/src/client.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/front_idill/extern/fajran-npTuioClient/src/client.cpp Fri Apr 06 10:44:54 2012 +0200
@@ -0,0 +1,113 @@
+//
+// Copyright (C) 2009 Fajran Iman Rusadi
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+
+#include "client.h"
+
+#include
+#include
+#include
+#include
+
+static inline void call(TuioEvent type, long sid, int fid, float x, float y, float a)
+{
+ TuioEventData data;
+ data.type = type;
+ data.sid = sid;
+ data.fid = fid;
+ data.x = x;
+ data.y = y;
+ data.a = a;
+ tuio_callback(data);
+}
+
+class Listener : public TuioListener
+{
+public:
+ Listener() { };
+ ~Listener() { };
+
+ void addTuioObject(TuioObject *object)
+ {
+ call(TE_OBJECT_ADD,
+ object->getSessionID(), object->getFiducialID(),
+ object->getX(), object->getY(), object->getAngle());
+ }
+
+ void updateTuioObject(TuioObject *object)
+ {
+ call(TE_OBJECT_UPDATE,
+ object->getSessionID(), object->getFiducialID(),
+ object->getX(), object->getY(), object->getAngle());
+ }
+
+ void removeTuioObject(TuioObject *object)
+ {
+ call(TE_OBJECT_REMOVE,
+ object->getSessionID(), object->getFiducialID(),
+ object->getX(), object->getY(), object->getAngle());
+ }
+
+ void addTuioCursor(TuioCursor *cursor)
+ {
+ call(TE_CURSOR_ADD,
+ cursor->getSessionID(), cursor->getFingerID(),
+ cursor->getX(), cursor->getY(), 0);
+ }
+
+ void updateTuioCursor(TuioCursor *cursor)
+ {
+ call(TE_CURSOR_UPDATE,
+ cursor->getSessionID(), cursor->getFingerID(),
+ cursor->getX(), cursor->getY(), 0);
+ }
+
+ void removeTuioCursor(TuioCursor *cursor)
+ {
+ call(TE_CURSOR_REMOVE,
+ cursor->getSessionID(), cursor->getFingerID(),
+ cursor->getX(), cursor->getY(), 0);
+ }
+
+ void refresh(long timestamp)
+ {
+ }
+};
+
+static TuioClient* client = 0;
+static Listener* listener = 0;
+
+void tuio_start(int port)
+{
+ if (!client) {
+ listener = new Listener();
+
+ client = new TuioClient(port);
+ client->addTuioListener(listener);
+ client->start();
+ }
+}
+
+void tuio_stop()
+{
+ client->stop();
+ delete listener;
+ delete client;
+
+ client = 0;
+ listener = 0;
+}
+