public void OnGazeNotTracked()
        {
            Console.Beep(200, 100);
            //if first eyes closing, freezing cursor and running blinkveryfing timer
            if ((tbm.getIsVerifyingBlinkTimer() == false) && (tbm.getIsFirstBlinkTimer() == false))
            {
                mmgt.setIsCursorAllowedToMove(false);
                tbm.StartTimer(TimerBlinkManagement.TimersAvailable.verifyingBlinkTimer);
            }

            //second eyes closing, run blinkverifying, firstTimer still running
            if (tbm.getIsFirstBlinkTimer() == true)
            {
                tbm.StartTimer(TimerBlinkManagement.TimersAvailable.verifyingBlinkTimer);
            }
        }
        public EyeTracker_Management(MouseManagement mmgt, TimerBlinkManagement tbm, EyeTrackerDataManagement etdm)
        {
            this.tbm  = tbm;
            this.mmgt = mmgt;
            this.etdm = etdm;

            eyeXHost = new EyeXHost();
            eyeXHost.Start();

            lightlyFilteredGazeDataStream       = eyeXHost.CreateGazePointDataStream(GazePointDataMode.LightlyFiltered);
            lightlyFilteredGazeDataStream.Next += (s, e) => this.OnGazeDataStream(s, e);

            eyeXHost.GazeTrackingChanged += (s, e) => etdm.OnGazeTrackingChangedEvent(s, e);

            etdm.GazeNotTracked += (s, e) => this.OnGazeNotTracked();
            etdm.GazeTracked    += (s, e) => this.OnGazeTracked();

            tbm.AllowingCursorToMove += (s, e) => mmgt.setIsCursorAllowedToMove(true);

            mmgt.CursorAllowedToMoveChanged += (s, e) => this.OnCursorAllowedToMoveChanged(new CustomEventArgs(e.BooleanValue));
            etdm.CursorInBottomMidlleScreen += (s, e) => this.OnCursorInBottomMidlleScreen(new EventArgs());
        }