Ejemplo n.º 1
0
 /// <summary>
 /// Shut down gaze watcher and stop listening for events.
 /// </summary>
 private void StopGazeDeviceWatcher()
 {
     if (gazeDeviceWatcher != null)
     {
         gazeDeviceWatcher.Stop();
         gazeDeviceWatcher.Added   -= this.DeviceAdded;
         gazeDeviceWatcher.Updated -= this.DeviceUpdated;
         gazeDeviceWatcher          = null;
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Start gaze watcher and declare watcher event handlers.
 /// </summary>
 private void StartGazeDeviceWatcher()
 {
     if (gazeDeviceWatcher == null)
     {
         gazeDeviceWatcher          = GazeInputSourcePreview.CreateWatcher();
         gazeDeviceWatcher.Added   += this.DeviceAdded;
         gazeDeviceWatcher.Updated += this.DeviceUpdated;
         gazeDeviceWatcher.Start();
     }
 }
        private void OnDeviceAdded(GazeDeviceWatcherPreview sender, GazeDeviceWatcherAddedPreviewEventArgs args)
        {
            _devices.Add(args.Device);

            if (_devices.Count == 1)
            {
                IsDeviceAvailableChanged?.Invoke(null, null);

                InitializeGazeInputSource();
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Eye-tracking device connected (added, or available when watcher is initialized).
 /// </summary>
 /// <param name="sender">Source of the device added event</param>
 /// <param name="e">Event args for the device added event</param>
 private void DeviceAdded(GazeDeviceWatcherPreview source,
                          GazeDeviceWatcherAddedPreviewEventArgs args)
 {
     if (IsSupportedDevice(args.Device))
     {
         deviceCounter++;
         TrackerCounter.Text = deviceCounter.ToString();
     }
     // Set up gaze tracking.
     TryEnableGazeTrackingAsync(args.Device);
 }
Ejemplo n.º 5
0
 private void StopGazeDeviceWatcher()
 {
     if (_gazeDeviceWatcher == null)
     {
         return;
     }
     _gazeDeviceWatcher.Stop();
     _gazeDeviceWatcher.Added   -= DeviceAdded;
     _gazeDeviceWatcher.Updated -= DeviceUpdated;
     _gazeDeviceWatcher.Removed -= DeviceRemoved;
     _gazeDeviceWatcher          = null;
 }
Ejemplo n.º 6
0
        private void OnDeviceAdded(GazeDeviceWatcherPreview sender, GazeDeviceWatcherAddedPreviewEventArgs args)
        {
            _deviceCount++;
            Log($"Device added, count={_deviceCount}", args.Device);

            if (!_isSourceHoooked)
            {
                _source.GazeEntered += OnGazeEntered;
                _source.GazeMoved   += OnGazeMoved;
                _source.GazeExited  += OnGazeExited;

                _isSourceHoooked = true;
            }
        }
Ejemplo n.º 7
0
        private void DeviceRemoved(GazeDeviceWatcherPreview source,
                                   GazeDeviceWatcherRemovedPreviewEventArgs args)
        {
            // Decrement gaze device counter and remove event handlers
            if (IsSupportedDevice(args.Device))
            {
                _deviceCounter--;

                if (_deviceCounter == 0)
                {
                    _gazeInputSource.GazeEntered -= GazeEntered;
                    _gazeInputSource.GazeMoved   -= GazeTrackerMoved;
                    _gazeInputSource.GazeExited  -= GazeExited;
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Handles disconnection of eye-tracking devices.
        /// </summary>
        /// <param name="sender">Source of the device removed event</param>
        /// <param name="e">Event args for the device removed event</param>
        private void DeviceRemoved(GazeDeviceWatcherPreview source,
                                   GazeDeviceWatcherRemovedPreviewEventArgs args)
        {
            // Decrement gaze device counter and remove event handlers.
            if (IsSupportedDevice(args.Device))
            {
                deviceCounter--;
                TrackerCounter.Text = deviceCounter.ToString();

                if (deviceCounter == 0)
                {
                    gazeInputSource.GazeEntered -= this.GazeEntered;
                    gazeInputSource.GazeMoved   -= this.GazeMoved;
                    gazeInputSource.GazeExited  -= this.GazeExited;
                }
            }
        }
        private void OnDeviceRemoved(GazeDeviceWatcherPreview sender, GazeDeviceWatcherRemovedPreviewEventArgs args)
        {
            var index = 0;

            while (index < _devices.Count && _devices.ElementAt(index).Id != args.Device.Id)
            {
                index++;
            }

            if (index < _devices.Count)
            {
                _devices.RemoveAt(index);
            }
            else
            {
                _devices.RemoveAt(0);
            }

            if (_devices.Count == 0)
            {
                IsDeviceAvailableChanged?.Invoke(null, null);
            }
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Initial device state might be uncalibrated,
 /// but device was subsequently calibrated.
 /// </summary>
 /// <param name="sender">Source of the device updated event</param>
 /// <param name="e">Event args for the device updated event</param>
 private void DeviceUpdated(GazeDeviceWatcherPreview source,
                            GazeDeviceWatcherUpdatedPreviewEventArgs args)
 {
     // Set up gaze tracking.
     TryEnableGazeTrackingAsync(args.Device);
 }
Ejemplo n.º 11
0
 private void OnDeviceEnumerationCompleted(GazeDeviceWatcherPreview sender, object args)
 {
     Log($"Device enumeration complete, count={_deviceCount}");
 }
Ejemplo n.º 12
0
 private void OnDeviceUpdated(GazeDeviceWatcherPreview sender, GazeDeviceWatcherUpdatedPreviewEventArgs args)
 {
     Log("Device updated", args.Device);
 }
Ejemplo n.º 13
0
 private void OnDeviceRemoved(GazeDeviceWatcherPreview sender, GazeDeviceWatcherRemovedPreviewEventArgs args)
 {
     _deviceCount--;
     Log($"Device removed, count={_deviceCount}", args.Device);
 }