SMI RED eye tracking plugin 1.0

src/EyeTracking.h

Go to the documentation of this file.
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