public EyeClickerFiniteStateMachine(BlinkLinkEyeClickData blinkLinkEyeClickData, EyeStatusWindow eyeStatusWindow) { this.blinkLinkEyeClickData = blinkLinkEyeClickData; this.eyeStatusWindow = eyeStatusWindow; leftEyeStatusList = new List <EyeStatus>(); rightEyeStatusList = new List <EyeStatus>(); leftEyeClosedTime = 0; rightEyeClosedTime = 0; leftEyeState = EyeClickState.EyeOpen; rightEyeState = EyeClickState.EyeOpen; noActionImageSet = true; mouseEventImageTimer = -1; isDragging = false; }
public EyeClicker(CMSTrackingSuiteAdapter cmsTrackingSuiteAdapter, BlinkLinkEyeClickData blinkLinkEyeClickData) { workerUpdateDataMutex = new object(); eyeStatusWindow = (EyeStatusWindow)cmsTrackingSuiteAdapter.CreateForm(typeof(EyeStatusWindow)); eyeClickerResetOnly = false; timer = new Stopwatch(); this.blinkLinkEyeClickData = blinkLinkEyeClickData; this.cmsTrackingSuiteAdapter = cmsTrackingSuiteAdapter; leftEyeBlinkDetector = new NccBlinkDetector(true, cmsTrackingSuiteAdapter); rightEyeBlinkDetector = new NccBlinkDetector(false, cmsTrackingSuiteAdapter); stageTime = 0; firstUpdate = true; currentStage = Stages.Start; waitHandler = new AutoResetEvent(false); updateDataMutex = new object(); updateData = null; xDistanceBetweenEyesSet = false; workerThread = new Thread(new ThreadStart(workerThreadMain)); workerThread.Priority = ThreadPriority.Highest; workerThread.Start(); clickerFSM = new EyeClickerFiniteStateMachine(blinkLinkEyeClickData, eyeStatusWindow); }