Ejemplo n.º 1
0
        /// <summary>
        /// Adds a {@link TETCSharpClient.IGazeListener} to the TET C# client. This listener 
        /// will recieve {@link TETCSharpClient.Data.GazeData} updates when available
        /// </summary>
        /// <param name="listener"/>The {@link TETCSharpClient.IGazeListener} instance to add</param>
        public void AddGazeListener(IGazeListener listener)
        {
            if (null != listener)
            {
                lock (((ICollection)gazeListeners).SyncRoot)
                {
                    if (gazeListeners.Count == 0)
                    {
                        //init wait handles
                        events = new WaitHandleWrap();

                        //init broadcasting routines,
                        gazeBroadcaster = new GazeBroadcaster(queueGazeData, gazeListeners, events);
                        gazeBroadcaster.Start();
                    }

                    if (!gazeListeners.Contains(listener))
                        gazeListeners.Add(listener);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Clear all attached listeners, clears GazeData queue and stop broadcating
        /// </summary>
        public void ClearListeners()
        {
            lock (((ICollection)gazeListeners).SyncRoot)
            {
                gazeListeners.Clear();
            }

            lock (((ICollection)calibrationStateListeners).SyncRoot)
            {
                calibrationStateListeners.Clear();
            }

            lock (((ICollection)trackerStateListeners).SyncRoot)
            {
                trackerStateListeners.Clear();
            }

            lock (((ICollection)queueGazeData).SyncRoot)
            {
                queueGazeData.Clear();
            }

            if (null != gazeBroadcaster)
            {
                gazeBroadcaster.Stop();
                gazeBroadcaster = null;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Remove a {@link TETCSharpClient.IGazeListener} from the TET C# client.
        /// </summary>
        /// <returns>True if succesfully removed, false otherwise</returns>
        /// <param name="listener"/>The {@link TETCSharpClient.IGazeListener} instance to remove</param>
        public bool RemoveGazeListener(IGazeListener listener)
        {
            bool result = false;

            lock (((ICollection)gazeListeners).SyncRoot)
            {
                if (gazeListeners.Contains(listener))
                    result = gazeListeners.Remove(listener);

                if (gazeListeners.Count == 0)
                {
                    if (null != gazeBroadcaster)
                    {
                        gazeBroadcaster.Stop();
                        gazeBroadcaster = null;
                    }

                    lock (((ICollection)queueGazeData).SyncRoot)
                    {
                        queueGazeData.Clear();
                    }
                }
            }

            return result;
        }
Ejemplo n.º 4
0
 public MainWindow() : base(Gtk.WindowType.Toplevel)
 {
     Build();
     gb = new GazeBroadcaster();
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Remove a <see cref="TETCSharpClient.IGazeListener"/> from the TET C# client.
        /// </summary>
        /// <returns>True if succesfully removed, false otherwise</returns>
        /// <param name="listener">The <see cref="TETCSharpClient.IGazeListener"/> instance to remove</param>
        public bool RemoveGazeListener(IGazeListener listener)
        {
            bool result = false;

            if (null != listener)
            {
                lock (gazeListeners)
                {
                    if (gazeListeners.Contains(listener))
                        result = gazeListeners.Remove(listener);

                    if (gazeListeners.Count == 0)
                    {
                        if (null != gazeBroadcaster)
                        {
                            gazeBroadcaster.Stop();
                            gazeBroadcaster = null;
                        }
                    }
                }
            }

            return result;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Clear all attached listeners, clears GazeData queue and stop broadcating
        /// </summary>
        public void ClearListeners()
        {
            if (null != gazeListeners)
                gazeListeners.Clear();

            if (null != calibrationResultListeners)
                calibrationResultListeners.Clear();

            if (null != trackerStateListeners)
                trackerStateListeners.Clear();

            if (null != connectionStateListeners)
                connectionStateListeners.Clear();

            if (null != gazeBroadcaster)
            {
                gazeBroadcaster.Stop();
                gazeBroadcaster = null;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Adds a <see cref="TETCSharpClient.IGazeListener"/> to the TET C# client. This listener 
        /// will recieve <see cref="TETCSharpClient.Data.GazeData"/> updates when available
        /// </summary>
        /// <param name="listener">The <see cref="TETCSharpClient.IGazeListener"/> instance to add</param>
        public void AddGazeListener(IGazeListener listener)
        {
            if (null != listener)
            {
                lock (gazeListeners)
                {
                    if (gazeListeners.Count == 0)
                    {
                        //init broadcasting routines
                        gazeBroadcaster = new GazeBroadcaster(gazeQueue, gazeListeners);
                        gazeBroadcaster.Start();
                    }

                    if (!gazeListeners.Contains(listener))
                        gazeListeners.Add(listener);
                }
            }
        }