MGF Server  2.1
Multigaze framework server
 All Classes Functions
gdproto.h
1 /*
2  * etiproto.h - header file defining extension of RFB protocol for the purposes
3  * of eye-tracking information processing.
4  *
5  * message name format
6  * [marker][origin[description]
7  *
8  * [marker] - always "gd"
9  * [origin] - "server" or "client"
10  * [description] - short representation of that what this message is intented for
11  */
12 
13 #pragma once
14 
15 #include <map>
16 
17 //Define CARD* as in rfb.h
18 typedef unsigned long CARD32;
19 typedef unsigned short CARD16;
20 typedef short INT16;
21 typedef unsigned char CARD8;
22 
23 
24 #define SERVER_ID 65000
25 #define ANY_ID 64000
26 
27 /*****************************************************************************
28  *
29  * Message types
30  *
31  *****************************************************************************/
32 
33 //types
34 #define gdGazeMsg 201 //send gaze message
35 #define gdControlMsg 202 //send control message
36 #define gdTextMsg 203 //send text
37 
38 //subtypes gdGazeMsg
39 #define gdGazeSample 1 //send new eye tracking sample
40 #define gdGazeFixation 2 //send new eye tracking fixation
41 #define gdGazeBlink 3 //send new eye tracking blink
42 
43 //subtypes gdControlMsg
44 #define gdPoke 1 //poke client
45 #define gdRegister 2 //register client
46 #define gdUnregister 3 //unregister client
47 
48 //subtypes gdTextMsg
49 #define gdName 1 //name
50 #define gdDescription 2 //description
51 #define gdText 3 //text message
52 
53 
54 /*-----------------------------------------------------------------------------
55  * gdHdrMessage - header message
56  *
57  * This message holds source Id and amount of data entries, that follows this header.
58  * Type of the data that follows this header depend on the type of the message.
59  */
60 typedef struct _gdHdrMsg {
61  CARD8 type; // gdGazeMsg | gdControlMsg | gdTextMsg
62  CARD8 subtype; //subtype
63  CARD16 id; //source Id
64  CARD16 reserved2;
65  CARD16 count; //amount of following data entries
66 } gdHdrMsg;
67 
68 #define sz_gdHdrMsg 8
69 
70 
71 /* server -> client */
72 //Gaze Data messages
73 /*#define gdServerGazeSample 201 //send new eye tracking sample
74 #define gdServerGazeFixation 202 //send new eye tracking fixation
75 #define gdServerGazeBlink 203 //send new eye tracking blink
76 
77 //Client "control" messages
78 #define gdServerNickname 204 //send new nickname
79 #define gdServerDescription 205 //send new description
80 #define gdServerTxtMessage 206 //send text message to the client
81 
82 #define gdServerReg 207 //send add client to the tracking list
83 #define gdServerUnReg 208 //send remove client from the tracking list
84 #define gdServerPoke 209 //send client poke
85 
86 /* client -> server */
87 //Gaze Data messages
88 /*#define gdClientGazeSample 251 //send new eye tracking sample
89 #define gdClientGazeFixation 252 //send new eye tracking fixation
90 #define gdClientGazeBlink 253 //send new eye tracking blink
91 
92 //Client "control" messages
93 #define gdClientNickname 254 //send new nickname
94 #define gdClientDescription 255 //send new description
95 #define gdClientTxtMessage 256 //send text message
96 
97 #define gdClientReg 257 //send add client to the tracking list
98 #define gdClientUnReg 258 //send remove client from the tracking list
99 #define gdClientPoke 259 //send poke
100 */
101 
102 /*****************************************************************************
103  *
104  * Server -> client message definitions
105  *
106  *****************************************************************************/
107 
108 
109 
110 /*-----------------------------------------------------------------------------
111  * gdServerHdrMsg - Send header message that contains.
112  *
113  * This message holds source Id and amount of data entries, that follows this header.
114  * Type of the data that follows this header depend on the type of the message.
115  */
116 /*typedef struct _gdServerHdrMsg {
117  CARD8 type; // gdServerGazeSample | gdServerGazeFixation | gdServerGazeBlink | gdServerNickname | gdServerDescription | gdServerMessage | gdServerReg | gdServerUnReg | gdServerPoke
118  CARD8 subtype; //subtype
119  CARD16 id; //source Id
120  CARD16 reserved2;
121  CARD16 count; //amount of following data entries
122 } gdServerHdrMsg;
123 
124 #define sz_gdServerHdrMsg 8
125 
126 
127 /*-----------------------------------------------------------------------------
128  * gdServerGDHdrMsg - Send gaze data entries.
129  *
130  * This message is followed by "count" structures of gaze data entries
131  */
132 /*typedef struct _gdServerGDHdrMsg {
133  CARD8 type; // gdServerGazeSample | gdServerGazeFixation | gdServerGazeBlink
134  CARD8 pad1;
135  CARD16 id;
136  CARD16 pad2;
137  CARD16 count;
138 } gdServerGDHdrMsg;
139 
140 #define sz_gdServerGDHdrMsg 8
141 
142 /*-----------------------------------------------------------------------------
143  * gdServerTextHdrMsg - Send text.
144  *
145  * This message is followed by "length" characters of a text message
146  */
147 /*typedef struct _gdServerTextHdrMsg {
148  CARD8 type; // gdServerNickname | gdServerDescription | gdServerMessage
149  CARD8 pad1;
150  CARD16 id;
151  CARD16 pad2;
152  CARD16 length;
153 } gdServerTextHdrMsg;
154 
155 #define sz_gdServerTextHdrMsg 8
156 
157 /*-----------------------------------------------------------------------------
158  * gdServerIdMsg - Send id.
159  *
160  * This message send only client ID, that should be processed in some way
161  */
162 /*typedef struct _gdServerIdMsg {
163  CARD8 type; // gdServerReg | gdServerUnReg | gdServerPoke
164  CARD8 pad;
165  CARD16 id;
166 } gdServerIdMsg;
167 
168 #define sz_gdServerIdMsg 4*/
169 
170 
171 /*****************************************************************************
172  *
173  * Client -> server message definitions
174  *
175  *****************************************************************************/
176 
177 /*-----------------------------------------------------------------------------
178  * gdClientGDHdrMsg - Send gaze data entries.
179  *
180  * This message is followed by "count" structures of gaze data entries
181  */
182 /*typedef struct _gdClientGDHdrMsg {
183  CARD8 type; // gdClientGazeSample | gdClientGazeFixation | gdClientGazeBlink
184  CARD8 pad;
185  CARD16 count;
186 } gdClientGDHdrMsg;
187 
188 #define sz_gdClientGDHdrMsg 4
189 
190 /*-----------------------------------------------------------------------------
191  * gdClientTextHdrMsg - Send text.
192  *
193  * This message is followed by "length" characters of a text message
194  */
195 /*typedef struct _gdClientTextHdrMsg {
196  CARD8 type; // gdClientNickname | gdClientDescription | gdClientMessage
197  CARD8 pad1;
198  CARD16 pad2;
199  CARD16 dstid;
200  CARD16 length;
201 } gdClientTextHdrMsg;
202 
203 #define sz_gdClientTextHdrMsg 8
204 
205 /*-----------------------------------------------------------------------------
206  * gdClientIdMsg - Send id. This message is rceived from the client so do not contain ID
207  * itself.
208  *
209  * This message send only client ID, that should be processed in some way
210  */
211 /*typedef struct _gdClientIdMsg {
212  CARD8 type; // gdClientReg | gdClientUnReg | gdClientPoke
213 } gdClientIdMsg;
214 
215 #define sz_gdClientIdMsg 1*/
216 
217 /*typedef struct _gdClientHdrMsg {
218  CARD8 type; // gdClientGazeSample | gdClientGazeFixation | gdClientGazeBlink | gdClientNickname | gdClientDescription | gdClientMessage | gdClientReg | gdClientUnReg | gdClientPoke
219  CARD8 subtype;
220  CARD16 id; //destination Id
221  CARD16 reserved2;
222  CARD16 count; //amount of following data entries
223 } gdClientHdrMsg;
224 
225 #define sz_gdClientHdrMsg 8*/