middleware/Communication/Server.cs
author bastiena
Fri, 06 Apr 2012 10:44:54 +0200
changeset 21 e4e5f02787a1
parent 16 a9ebacd6c089
child 27 6c08d4d7219e
permissions -rw-r--r--
Front IDILL : Added Communication extern named fajran-npTuioClient It contains the project generating a dll used as a browser plugin.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     1
/*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     2
* This file is part of the TraKERS\Middleware package.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     3
*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     4
* (c) IRI <http://www.iri.centrepompidou.fr/>
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     5
*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     6
* For the full copyright and license information, please view the LICENSE_MIDDLEWARE
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     7
* file that was distributed with this source code.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     8
*/
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
     9
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    10
/*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    11
 * Projet : TraKERS
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    12
 * Module : MIDDLEWARE
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    13
 * Sous-Module : Communication
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    14
 * Classe : Server
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    15
 * 
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    16
 * Auteur : alexandre.bastien@iri.centrepompidou.fr
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    17
 * 
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    18
 * Fonctionnalités : Reçoit des notifications du module sous-module Tracking.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    19
 * Traduit les notifications sous forme de messages OSC et les envoie au Front Atelier.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    20
 * Forme des messages :
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    21
 * - Notification de main dans le champ de recherche : Point3D indiquant la position de la main dans l'espace.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    22
 */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    23
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    24
using System;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    25
using System.Collections.Generic;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    26
using System.Linq;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    27
using System.Text;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    28
using System.IO;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    29
using System.Net;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    30
using System.Net.Sockets;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    31
using System.Threading;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    32
using Tuio;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    33
using System.Windows;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    34
using Microsoft.Kinect;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    35
using System.Windows.Media.Media3D;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    36
using System.Timers;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    37
using System.Resources;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    38
using System.Reflection;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    39
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    40
namespace Trakers.Communication
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    41
{
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    42
    public class Server
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    43
    {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    44
        //Serveur TUIO, provenant de la DLL TuioServer créé par Bespoke.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    45
        private TuioServer server;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    46
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    47
        //Permet de savoir si un curseur pour la main gauche/droite a été créé.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    48
        private bool leftHandCursorCreated;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    49
        private bool rightHandCursorCreated;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    50
        private bool messageCreated;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    51
        private bool gestureLocked, modLocked;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    52
        //Intervalle minimum entre les gestures.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    53
        private int timerElapsing;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    54
        //Timer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    55
        private System.Timers.Timer _timer;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    56
        //Dernier code envoyé.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    57
        private String lastCode;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    58
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    59
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    60
        * Constructeur : On initialise le serveur avec une adresse et un port, au début les curseurs
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    61
        * ne sont pas créés et on indique au ThreadPool une fonction de callback de manière à vérifier
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    62
        * s'il reçoit des notifications.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    63
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    64
        public Server(String host, int port, int _timerElapsing)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    65
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    66
            //Au départ, aucune main n'est dans le champ de recherche et aucune gesture n'est détectée.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    67
            leftHandCursorCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    68
            rightHandCursorCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    69
            messageCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    70
            gestureLocked = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    71
            modLocked = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    72
            lastCode = "";
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    73
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    74
            timerElapsing = _timerElapsing;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    75
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    76
            //On démarre le serveur TUIO.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    77
            server = new TuioServer(host, port);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    78
            //On initialise le threadPool (appelé toutes les N ms).
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    79
            ThreadPool.QueueUserWorkItem(ThreadPoolCallback);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    80
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    81
            //On instancie le timer à N ms.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    82
            _timer = new System.Timers.Timer(timerElapsing);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    83
            //Dès que le timer est expiré, on appelle _timer_Elapsed.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    84
            _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    85
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    86
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    87
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    88
        * Getter du serveur.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    89
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    90
        public TuioServer getServer()
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    91
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    92
            return server;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    93
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    94
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    95
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    96
         * Méthode appelée à l'expiration du timer pour les gestures et modes.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    97
         */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    98
        public void _timer_Elapsed(object sender, ElapsedEventArgs e)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
    99
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   100
            //On débloque la détection de gesture.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   101
            gestureLocked = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   102
            //On débloque la notification de nouveau mode.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   103
            modLocked = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   104
            //On arrête le timer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   105
            _timer.Stop();
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   106
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   107
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   108
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   109
        * Méthode appelée lors d'une notification de type : main gauche entrée dans le champ.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   110
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   111
        public void LeftHandTracked(Point3D pt)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   112
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   113
            //Si le curseur de la main gauche n'est pas créé, alors on le crée.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   114
            if (!leftHandCursorCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   115
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   116
                server.AddTuioCursor(0, pt);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   117
                leftHandCursorCreated = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   118
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   119
            //S'il existe, on le met simplement à jour.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   120
            else
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   121
                server.UpdateTuioCursor(0, pt);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   122
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   123
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   124
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   125
        * Méthode appelée lors d'une notification de type : main droite entrée dans le champ.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   126
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   127
        public void RightHandTracked(Point3D pt)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   128
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   129
            //Si le curseur de la main droite n'est pas créé, alors on le crée.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   130
            if (!rightHandCursorCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   131
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   132
                server.AddTuioCursor(1, pt);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   133
                rightHandCursorCreated = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   134
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   135
            //S'il existe, on le met simplement à jour.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   136
            else
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   137
                server.UpdateTuioCursor(1, pt);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   138
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   139
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   140
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   141
        * Méthode appelée lors d'une notification de type : main gauche sortie du champ.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   142
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   143
        public void LeftHandQuit()
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   144
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   145
            //Si le curseur de la main gauche existe, alors on le supprime.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   146
            if (leftHandCursorCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   147
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   148
                server.DeleteTuioCursor(0);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   149
                leftHandCursorCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   150
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   151
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   152
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   153
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   154
        * Méthode appelée lors d'une notification de type : main droite sortie du champ.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   155
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   156
        public void RightHandQuit()
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   157
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   158
            //Si le curseur de la main droite existe, alors on le supprime.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   159
            if (rightHandCursorCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   160
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   161
                server.DeleteTuioCursor(1);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   162
                rightHandCursorCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   163
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   164
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   165
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   166
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   167
        * Méthode appelée lorsqu'une gesture a été détectée et que l'événement approprié a été lancé.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   168
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   169
        public void GesturePerformed(String code)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   170
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   171
            //Si le code vient d'être envoyé, on passe.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   172
            if (lastCode.Equals(code))
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   173
                return;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   174
            lastCode = code;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   175
            //Si une gesture a été effectuée, on bloque un certain temps.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   176
            if (!gestureLocked)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   177
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   178
                gestureLocked = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   179
                
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   180
                //On crée un message contenant le code à envoyer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   181
                if (!messageCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   182
                {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   183
                    messageCreated = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   184
                    server.AddTuioString(2, code);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   185
                    //On démarre le timer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   186
                    _timer.Start();
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   187
                }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   188
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   189
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   190
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   191
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   192
        * Méthode appelée lorsqu'on doit entrer dans un autre mode.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   193
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   194
        public void ModeNotification(String code)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   195
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   196
            //Si le code vient d'être envoyé, on passe.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   197
            if (lastCode.Equals(code))
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   198
                return;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   199
            lastCode = code;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   200
            //Si on a été notifié.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   201
            if (!modLocked)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   202
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   203
                modLocked = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   204
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   205
                //On crée un message contenant le code à envoyer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   206
                if (!messageCreated)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   207
                {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   208
                    messageCreated = true;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   209
                    server.AddTuioString(2, code);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   210
                    //On démarre le timer.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   211
                    _timer.Start();
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   212
                }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   213
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   214
        }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   215
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   216
        /*
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   217
        * Méthode de callback vérifiant toutes les 25 ms les nouvelles notifications.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   218
        * Il est à noter que si le temps de rafraîchissement des trop rapide, les messages n'ont pas
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   219
        * le temps d'être envoyés.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   220
        */
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   221
        private void ThreadPoolCallback(Object threadContext)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   222
        {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   223
            while (true)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   224
            {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   225
                //On initialise le message OSC.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   226
                server.InitFrame();
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   227
                //On l'envoie au client (au host et au port spécifiés dans le constructeur).
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   228
                server.CommitFrame();
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   229
                //On attend 25 ms.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   230
                Thread.Sleep(25);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   231
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   232
                //Si une gesture a été effectuée et que le délai d'attente est expiré.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   233
                if (messageCreated && !gestureLocked && !modLocked)
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   234
                {
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   235
                    //On débloque la détection de gesture et on supprime l'objet envoyant les messages OSC de gesture.
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   236
                    messageCreated = false;
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   237
                    server.DeleteTuioString(2);
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   238
                }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   239
            }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   240
        }
16
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   241
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   242
        /*
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   243
         * Getters et Setters
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   244
         */
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   245
        public void setTimerElapsing(int _timerElapsing)
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   246
        {
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   247
            timerElapsing = _timerElapsing;
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   248
        }
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   249
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   250
        public int getTimerElapsing()
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   251
        {
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   252
            return timerElapsing;
a9ebacd6c089 Middleware :
bastiena
parents: 15
diff changeset
   253
        }
15
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   254
    }
4b78f179e7ce Middleware :
bastiena
parents:
diff changeset
   255
}