|
SMI RED eye tracking plugin 1.0
|
00001 00011 #include "common.h" 00012 00013 00017 class EyeTracking 00018 { 00019 public: 00023 EyeTracking(); 00024 ~EyeTracking(); 00025 00029 void SetCalibration(int method, int visualization, int displayDevice, int speed, int autoAccept, int foregroundBrightness, 00030 int backgroundBrightness, int targetShape, int targetSize, char* targetFilename); 00031 bool Calibrate(int validation); 00032 bool SaveCalibrationToFile(char* fileName); 00033 bool LoadCalibrationFromFile(char* fileName); 00034 00038 AccuracyStruct* GetAccuracy(); 00039 SystemInfoStruct* GetSystemInfo(); 00040 CalibrationStruct* GetCalibration(); 00041 00045 bool Connect(char* senderIp, int senderPort, char* receiverIp, int receiverPort); 00046 bool Disconnect(); 00047 00051 bool ShowTrackingWindow(); 00052 00056 bool CreateLogFile(char* logFileName); 00057 bool WriteToLog(char* logFileLine); 00058 00062 static int __stdcall SampleCallbackFunction(SampleStruct sampleData); 00063 static int __stdcall CalibrationUpdated(CalibrationPointStruct calibrationPoint); 00064 static int __stdcall FixationUpdated(EventStruct eventDataSample); 00065 void AddCallbacks(); 00066 00070 void GoThread(); 00071 00075 void HandleFixationEvent(); 00076 void HandleSampleEvent(); 00077 00078 private: 00079 AccuracyStruct* m_accuracyData; 00080 SystemInfoStruct* m_systemInfoData; 00081 CalibrationStruct* m_calibrationData; 00082 00083 char* m_senderIp, m_receiverIp; 00084 int m_senderPort, m_receiverPort; 00085 00089 bool exitRequested; // Global variable used to ask the loop thread to end 00090 boost::thread* loopThread; // Pointer to the update loop thread 00091 }; 00092 00093 00097 class FixationData 00098 { 00099 public: 00100 float duration; 00101 int posX; 00102 int posY; 00103 FixationData(){}; 00104 ~FixationData(){}; 00105 }; 00106 00107 class SampleData 00108 { 00109 public: 00110 float leftPupilDiameter; 00111 float rightPupilDiameter; 00112 int leftGazeX; 00113 int rightGazeX; 00114 int leftGazeY; 00115 int rightGazeY; 00116 SampleData(){}; 00117 ~SampleData(){}; 00118 }; 00119
1.7.3