--- a/middleware/src/Communication/Server.cs Fri Mar 23 16:24:36 2012 +0100
+++ b/middleware/src/Communication/Server.cs Mon Mar 26 16:22:51 2012 +0200
@@ -53,7 +53,7 @@
private bool leftHandCursorCreated;
private bool rightHandCursorCreated;
private bool messageCreated;
- private bool gestureLocked;
+ private bool gestureLocked, modLocked;
//Intervalle minimum entre les gestures.
private int timerElapsing;
//Timer.
@@ -75,6 +75,7 @@
rightHandCursorCreated = false;
messageCreated = false;
gestureLocked = false;
+ modLocked = false;
timerElapsing = _timerElapsing;
@@ -105,12 +106,14 @@
}
/*
- * Méthode appelée à l'expiration du timer.
+ * Méthode appelée à l'expiration du timer pour les gestures et modes.
*/
public void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
//On débloque la détection de gesture.
gestureLocked = false;
+ //On débloque la notification de nouveau mode.
+ modLocked = false;
//On arrête le timer.
_timer.Stop();
}
@@ -191,7 +194,7 @@
/*
* Méthode appelée lors d'une notification de type : l'utilisateur fait un push/pull.
*/
- public void Pull(object sender, PushEventArgs e)
+ public void Push(object sender, PushEventArgs e)
{
if(e.hand == Tracking.Gestures.PushDetector.Hand.NONE)
return;
@@ -234,6 +237,27 @@
}
/*
+ * Méthode appelée lorsqu'on doit entrer dans un autre mode.
+ */
+ public void ModeNotification(String code)
+ {
+ //Si on a été notifié.
+ if (!modLocked)
+ {
+ modLocked = true;
+
+ //On crée un message contenant le code à envoyer.
+ if (!messageCreated)
+ {
+ messageCreated = true;
+ server.AddTuioString(2, code);
+ //On démarre le timer.
+ _timer.Start();
+ }
+ }
+ }
+
+ /*
* Permet de convertir un point de position de noeud en Point3D.
*/
private Point3D SkeletonPointToPoint3D(SkeletonPoint p)
@@ -258,7 +282,7 @@
Thread.Sleep(25);
//Si une gesture a été effectuée et que le délai d'attente est expiré.
- if (messageCreated && !gestureLocked)
+ if (messageCreated && !gestureLocked && !modLocked)
{
//On débloque la détection de gesture et on supprime l'objet envoyant les messages OSC de gesture.
messageCreated = false;