package edu.ysu.itrace.trackers; import java.io.IOException; import edu.ysu.itrace.Gaze; import edu.ysu.itrace.exceptions.CalibrationException; public interface IEyeTracker { /** Closes eye tracker connection. */ public void close(); /** Clears all queued gaze data. */ public void clear(); /** Opens eye tracker calibration and exits after calibration completes. @throws CalibrationException if the eye tracker fails to calibrate or if there is a failure setting up the calibration environment. */ public void calibrate() throws CalibrationException; /** Starts eye tracking and collecting data. @throws IOException Failed to start eye tracking. */ public void startTracking() throws IOException; /** Stops eye tracking. Current data still available via getGaze, but no new gaze data is added. @throws IOException Failed to stop eye tracking. */ public void stopTracking() throws IOException; /** Gets next stored gaze data, or null if no more exists. */ public Gaze getGaze(); /** Toggles whether crosshair should be displayed. Crosshair follows the current gaze on screen. @param enabled If true, display crosshair, else do not display crosshair. */ public void displayCrosshair(boolean enabled); public void setXDrift(int drift); public void setYDrift(int drift); }