front_idill/extern/fajran-npTuioClient/TuioClient/TuioClient.h
author bastiena
Thu, 12 Apr 2012 15:33:25 +0200
changeset 28 9ccef81f02ab
parent 27 6c08d4d7219e
permissions -rw-r--r--
Charset set to UTF-8 without bom tab replaced by 4 spaces \r\n replaced by \n in non cs files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     1
/*
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
     2
    TUIO C++ Library - part of the reacTIVision project
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
     3
    http://reactivision.sourceforge.net/
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     4
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
     5
    Copyright (c) 2005-2008 Martin Kaltenbrunner <mkalten@iua.upf.edu>
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     6
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     7
    This program is free software; you can redistribute it and/or modify
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     8
    it under the terms of the GNU General Public License as published by
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
     9
    the Free Software Foundation; either version 2 of the License, or
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    10
    (at your option) any later version.
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    11
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    12
    This program is distributed in the hope that it will be useful,
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    15
    GNU General Public License for more details.
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    16
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    17
    You should have received a copy of the GNU General Public License
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    18
    along with this program; if not, write to the Free Software
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    19
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    20
*/
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    21
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    22
/*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    23
    Modified by alexandre.bastien@iri.centrepompidou.fr to manage TUIO strings.
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    24
*/
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    25
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    26
#ifndef INCLUDED_TUIOCLIENT_H
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    27
#define INCLUDED_TUIOCLIENT_H
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    28
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    29
#ifndef WIN32
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    30
#include <pthread.h>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    31
#include <sys/time.h>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    32
#else
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    33
#include <windows.h>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    34
#endif
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    35
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    36
#include <iostream>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    37
#include <list>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    38
#include <algorithm>
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    39
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    40
#include "osc/OscReceivedElements.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    41
#include "osc/OscPrintReceivedElements.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    42
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    43
#include "ip/UdpSocket.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    44
#include "ip/PacketListener.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    45
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    46
#include "TuioListener.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    47
#include "TuioObject.h"
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    48
#include "TuioCursor.h"
27
6c08d4d7219e Middleware :
bastiena
parents: 21
diff changeset
    49
#include "TuioString.h"
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    50
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    51
using namespace osc;
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    52
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    53
class TuioClient : public PacketListener { 
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    54
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    55
    public:
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    56
        TuioClient();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    57
        TuioClient(int p);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    58
        ~TuioClient();
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    59
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    60
        void start(bool lk=false);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    61
        void stop();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    62
        bool isRunning() { return running; }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    63
            
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    64
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    65
        TuioObject* getTuioObject(long s_id);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    66
        TuioCursor* getTuioCursor(long s_id);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    67
        /*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    68
        * Ajouté par alexandre.bastien@iri.centrepompidou.fr
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    69
        */
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    70
        TuioString* getTuioString(long s_id);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    71
        std::list<TuioObject*> getTuioObjects();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    72
        std::list<TuioCursor*> getTuioCursors();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    73
        /*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    74
        * Ajouté par alexandre.bastien@iri.centrepompidou.fr
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    75
        */
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    76
        std::list<TuioString*> getTuioStrings();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    77
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    78
        void addTuioListener(TuioListener *listener);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    79
        void removeTuioListener(TuioListener *listener);
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    80
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    81
        void ProcessPacket( const char *data, int size, const IpEndpointName& remoteEndpoint );
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    82
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    83
        UdpListeningReceiveSocket *socket;
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    84
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    85
    protected:
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    86
        void ProcessBundle( const ReceivedBundle& b, const IpEndpointName& remoteEndpoint);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    87
        void ProcessMessage( const ReceivedMessage& m, const IpEndpointName& remoteEndpoint);
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    88
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    89
    private:
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    90
        std::list<TuioListener*> listenerList;
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
    91
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    92
        std::list<TuioObject*> objectList;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    93
        std::list<long> aliveObjectList, objectBuffer;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    94
        std::list<TuioCursor*> cursorList;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    95
        std::list<long> aliveCursorList, cursorBuffer;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    96
        /*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    97
        * Ajouté par alexandre.bastien@iri.centrepompidou.fr
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    98
        */
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
    99
        std::list<TuioString*> stringList;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   100
        std::list<long> aliveStringList, stringBuffer;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   101
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   102
        int32 currentFrame, lastFrame;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   103
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   104
        long startTime;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   105
        long lastTime;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   106
        long getCurrentTime();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   107
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   108
        std::list<TuioCursor*> freeCursorList, freeCursorBuffer;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   109
        /*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   110
        * Ajouté par alexandre.bastien@iri.centrepompidou.fr
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   111
        */
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   112
        std::list<TuioString*> freeStringList, freeStringBuffer;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   113
        int maxFingerID, maxStringID;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   114
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   115
        #ifndef WIN32
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   116
        pthread_t thread;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   117
        #else
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   118
           HANDLE thread;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   119
        #endif    
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   120
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   121
        bool locked;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 27
diff changeset
   122
        bool running;
21
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   123
};
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   124
e4e5f02787a1 Front IDILL :
bastiena
parents:
diff changeset
   125
#endif /* INCLUDED_TUIOCLIENT_H */