예제 #1
0
 void ITracker.ClearCalibration(TrackerCallback callback)
 {
     if (callback != null)
     {
         callback(calibrating ? 0 : 1, 1);
     }
 }
예제 #2
0
 void ITracker.GetName(TrackerCallback callback)
 {
     if (callback != null)
     {
         callback(0, name);
     }
 }
예제 #3
0
 void ITracker.AddPoint(double x, double y, TrackerCallback callback)
 {
     if (callback != null)
     {
         callback(calibrating ? 0 : 1, 1);
     }
 }
예제 #4
0
        void ITracker.ClearCalibration(TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                {
                    callback(1, 0);
                }
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.ClearCalibration();
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            if (callback != null)
            {
                callback(0, 1);
            }
        }
예제 #5
0
        void ITracker.AddPoint(double x, double y, TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                {
                    callback(1, 0);
                }
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.AddCalibrationPoint(new Point2D(x, y));
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            if (callback != null)
            {
                callback(0, 1);
            }
        }
예제 #6
0
 void ITracker.StartCalibration(TrackerCallback callback)
 {
     if (et == null)
     {
         callback(1, 0);
         return;
     }
     if (calibrating)
     {
         callback(1, 0);
         return;
     }
     try
     {
         //setXconfig(angle);
         et.StartCalibration();
     }
     catch (EyeTrackerException e)
     {
         if (callback != null)
         {
             callback(e.ErrorCode, 0);
         }
         return;
     }
     calibrating = true;
     if (callback != null)
     {
         callback(0, 1);
     }
 }
예제 #7
0
 void ITracker.GetRate(TrackerCallback callback)
 {
     if (callback != null)
     {
         callback(0, fps);
     }
 }
예제 #8
0
        void ITracker.AddPoint(double x, double y, TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                    callback(1, 0);
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.AddCalibrationPoint(new Point2D(x, y));
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            if (callback != null)
                callback(0, 1);
        }
예제 #9
0
 void ITracker.SetRate(int rate, TrackerCallback callback)
 {
     fps = rate;
     if (callback != null)
     {
         callback(0, fps);
     }
 }
예제 #10
0
 void ITracker.Enable(TrackerCallback callback)
 {
     active = true;
     if (callback != null)
     {
         callback(0, 1);
     }
 }
예제 #11
0
 void ITracker.StartCalibration(TrackerCallback callback)
 {
     calibrating = true;
     if (callback != null)
     {
         callback(0, 1);
     }
 }
예제 #12
0
 void ITracker.Disable(TrackerCallback callback)
 {
     active = false;
     if (callback != null)
     {
         callback(0, 1);
     }
 }
예제 #13
0
        void ITracker.GetState(TrackerCallback callback)
        {
            int status = 0 + (active ? 1 : 0) + (calibrating ? 1 << 1 : 0);

            if (callback != null)
            {
                callback(0, status);
            }
        }
예제 #14
0
        void ITracker.EndCalibration(TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                {
                    callback(1, 0);
                }
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.ComputeCalibration();
            }
            catch (EyeTrackerException e)
            {
                //If error is not OPERATION_FAILED
                if (e.ErrorCode != 0x20000502)
                {
                    if (callback != null)
                    {
                        //We tell them of the error
                        callback(e.ErrorCode, 0);
                    }
                    return;
                }
                //Or we continue and let it stop calibrating without
                // calculating anything.
            }

            try
            {
                et.StopCalibration();
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            calibrating = false;
            if (callback != null)
            {
                callback(0, 1);
            }
        }
예제 #15
0
 void ITracker.EndCalibration(TrackerCallback callback)
 {
     if (!calibrating)
     {
         if (callback != null)
             callback(1, 0);
         return;
     }
     calibrating = false;
     if (callback != null)
         callback(0, 1);
 }
예제 #16
0
        void ITracker.Enable(TrackerCallback callback)
        {
            enabled = true;
            if (et != null)
            {
                et.StartTracking();
            }

            if (callback != null)
            {
                callback(0, 1);
            }
        }
예제 #17
0
        void ITracker.Disable(TrackerCallback callback)
        {
            enabled = false;

            if (et != null)
            {
                et.StopTracking();
            }

            if (callback != null)
            {
                callback(0, 1);
            }
        }
예제 #18
0
 void ITracker.EndCalibration(TrackerCallback callback)
 {
     if (!calibrating)
     {
         if (callback != null)
         {
             callback(1, 0);
         }
         return;
     }
     calibrating = false;
     if (callback != null)
     {
         callback(0, 1);
     }
 }
예제 #19
0
        void ITracker.GetState(TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                {
                    callback(1, -1);
                }
                return;
            }
            int status = (enabled ? 1 : 0) + (calibrating ? 1 << 1 : 0);

            if (callback != null)
            {
                callback(0, status);
            }
        }
예제 #20
0
 void ITracker.SetRate(int rate, TrackerCallback callback)
 {
     if (et.EnumerateFrameRates().Contains((float)rate))
     {
         if (et == null)
         {
             if (callback != null)
             {
                 callback(1, 0);
             }
             return;
         }
         et.SetFrameRate((float)rate);
         if (callback != null)
         {
             callback(0, 1);
         }
     }
     else
     {
         callback(1, 0);
     }
 }
예제 #21
0
        void ITracker.GetRate(TrackerCallback callback)
        {
            if (callback == null)
            {
                return;
            }
            if (et == null)
            {
                if (callback != null)
                {
                    callback(1, 0);
                }
                return;
            }

            try
            {
                callback(0, (int)et.GetFrameRate());
            }
            catch (EyeTrackerException e)
            {
                callback(e.ErrorCode, 0);
            }
        }
예제 #22
0
 void ITracker.ClearCalibration(TrackerCallback callback)
 {
     if (callback != null)
         callback(calibrating ? 0 : 1, 1);
 }
예제 #23
0
 void ITracker.AddPoint(double x, double y, TrackerCallback callback)
 {
     if (callback != null)
         callback(calibrating ? 0 : 1, 1);
 }
예제 #24
0
 void ITracker.SetRate(int rate, TrackerCallback callback)
 {
     if (et.EnumerateFrameRates().Contains((float)rate))
     {
         if (et == null)
         {
             if (callback != null)
                 callback(1, 0);
             return;
         }
         et.SetFrameRate((float)rate);
         if (callback != null)
             callback(0, 1);
     }
     else
     {
         callback(1, 0);
     }
 }
예제 #25
0
 void ITracker.GetRates(TrackerCallback callback)
 {
     //This part of the interface is to be changed soon, so I do not implement it for now.
     //No part of the ETServer uses it anyway...
     throw new NotImplementedException();
 }
예제 #26
0
 void ITracker.GetName(TrackerCallback callback)
 {
     if (callback != null)
         callback(0, name);
 }
예제 #27
0
        void ITracker.Enable(TrackerCallback callback)
        {
            enabled = true;
            if (et != null)
            {
                et.StartTracking();
            }

            if (callback != null)
                callback(0, 1);
        }
예제 #28
0
 void ITracker.Disable(TrackerCallback callback)
 {
     active = false;
     if (callback != null)
         callback(0, 1);
 }
예제 #29
0
 void ITracker.GetRates(TrackerCallback callback)
 {
     //This part of the interface is to be changed soon, so I do not implement it for now.
     //No part of the ETServer uses it anyway...
     throw new NotImplementedException();
 }
예제 #30
0
 void ITracker.GetRates(TrackerCallback callback)
 {
     throw new NotImplementedException();
 }
예제 #31
0
 void ITracker.Enable(TrackerCallback callback)
 {
     active = true;
     if (callback != null)
         callback(0, 1);
 }
예제 #32
0
 public static extern int VrpnStart(string device,
                                       AnalogCallback analogCallback,
                                       ButtonCallback buttonCallback,
                                       TrackerCallback trackerCallback);
예제 #33
0
        void ITracker.Disable(TrackerCallback callback)
        {
            enabled = false;

            if (et != null)
                et.StopTracking();

            if (callback != null)
                callback(0, 1);
        }
예제 #34
0
 void ITracker.GetRate(TrackerCallback callback)
 {
     if (callback != null)
         callback(0, fps);
 }
예제 #35
0
        void ITracker.EndCalibration(TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                    callback(1, 0);
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.ComputeCalibration();
            }
            catch (EyeTrackerException e)
            {
                //If error is not OPERATION_FAILED
                if (e.ErrorCode != 0x20000502)
                {
                    if (callback != null)
                    {
                        //We tell them of the error
                        callback(e.ErrorCode, 0);
                    }
                    return;
                }
                //Or we continue and let it stop calibrating without
                // calculating anything.
            }

            try
            {
                et.StopCalibration();
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            calibrating = false;
            if (callback != null)
                callback(0, 1);
        }
예제 #36
0
 void ITracker.GetRates(TrackerCallback callback)
 {
     throw new NotImplementedException();
 }
예제 #37
0
        void ITracker.GetRate(TrackerCallback callback)
        {
            if (callback == null) return;
            if (et == null)
            {
                if (callback != null)
                    callback(1, 0);
                return;
            }

            try
            {
                callback(0, (int)et.GetFrameRate());
            }
            catch (EyeTrackerException e)
            {
                callback(e.ErrorCode, 0);
            }
        }
예제 #38
0
 void ITracker.GetState(TrackerCallback callback)
 {
     int status = 0 + (active ? 1 : 0) + (calibrating ? 1 << 1 : 0);
     if (callback != null)
         callback(0, status);
 }
예제 #39
0
 void ITracker.GetState(TrackerCallback callback)
 {
     if (et == null)
     {
         if (callback != null)
             callback(1, -1);
         return;
     }
     int status = (enabled ? 1 : 0) + (calibrating ? 1 << 1 : 0);
     if (callback != null)
         callback(0, status);
 }
예제 #40
0
 void ITracker.SetRate(int rate, TrackerCallback callback)
 {
     fps = rate;
     if (callback != null)
         callback(0, fps);
 }
예제 #41
0
 void ITracker.StartCalibration(TrackerCallback callback)
 {
     if (et == null)
     {
         callback(1, 0);
         return;
     }
     if (calibrating)
     {
         callback(1, 0);
         return;
     }
     try
     {
         //setXconfig(angle);
         et.StartCalibration();
     }
     catch (EyeTrackerException e)
     {
         if (callback != null)
         {
             callback(e.ErrorCode, 0);
         }
         return;
     }
     calibrating = true;
     if (callback != null)
         callback(0, 1);
 }
예제 #42
0
 void ITracker.StartCalibration(TrackerCallback callback)
 {
     calibrating = true;
     if (callback != null)
         callback(0, 1);
 }
예제 #43
0
        void ITracker.ClearCalibration(TrackerCallback callback)
        {
            if (et == null)
            {
                if (callback != null)
                    callback(1, 0);
                return;
            }

            if (!calibrating)
            {
                callback(1, 0);
                return;
            }

            try
            {
                et.ClearCalibration();
            }
            catch (EyeTrackerException e)
            {
                if (callback != null)
                {
                    callback(e.ErrorCode, 0);
                }
                return;
            }

            if (callback != null)
                callback(0, 1);
        }
예제 #44
0
 public static extern int VrpnStart(string device,
                                    AnalogCallback analogCallback,
                                    ButtonCallback buttonCallback,
                                    TrackerCallback trackerCallback);