using System; using System.Drawing; using System.Threading.Tasks; using System.Timers; using System.Windows.Forms; namespace TrackerBridge { public class FakeTracker : IBridgeTracker { public event GazeDataHandler GazeDataAvailable { add { GazeDataProcessor.GazeDataProcessed += value; } remove { GazeDataProcessor.GazeDataProcessed -= value; } } public event EventHandler TrackingFrequencyChanged; private Single trackerFrequency; public String SerialNumber => throw new NotImplementedException(); public GazeDataProcessor GazeDataProcessor { get; } public FakeTracker(Single frequency) { trackerFrequency = frequency; GazeDataProcessor = new GazeDataProcessor(this); //GazeDataProcessor.OutputFrequency = 1; Task.Run(() => SimulateGazeDataHz(frequency)); } private void SimulateGazeDataHz(Single frequency) { System.Timers.Timer timer = new System.Timers.Timer(1000.0 / frequency); //TODO: Implement Dispose timer.Elapsed += (Object sender, ElapsedEventArgs e) => { Point mousePosition = Control.MousePosition; GazeData data = new GazeData(mousePosition.X, mousePosition.Y, mousePosition.X, mousePosition.Y, 0, 0); GazeDataProcessor.Process(this, data); }; timer.AutoReset = true; timer.Start(); } public Single GetTrackingFrequency() { return trackerFrequency; } public void SetTrackingFrequency(Single value) { throw new NotImplementedException(); } } }