diff --git a/GazeWebSocketServer.sln b/GazeWebSocketServer.sln index 29f8d33..b754b70 100644 --- a/GazeWebSocketServer.sln +++ b/GazeWebSocketServer.sln @@ -13,8 +13,8 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.ActiveCfg = Release|Any CPU - {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.Build.0 = Release|Any CPU + {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Debug|Any CPU.Build.0 = Debug|Any CPU {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8F11E64-7946-4054-8C27-F0FCAF967F1A}.Release|Any CPU.Build.0 = Release|Any CPU {64D52257-ECA7-4F4D-A901-B14D544A1D0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU diff --git a/GazeWebSocketServer/GazeWebSocketServer.csproj b/GazeWebSocketServer/GazeWebSocketServer.csproj index ae28b1f..a283c99 100644 --- a/GazeWebSocketServer/GazeWebSocketServer.csproj +++ b/GazeWebSocketServer/GazeWebSocketServer.csproj @@ -50,6 +50,16 @@ 4 false + + true + bin\Tracker\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + diff --git a/TrackerBridge/FakeTracker.cs b/TrackerBridge/FakeTracker.cs index 344b94e..6a0ba06 100644 --- a/TrackerBridge/FakeTracker.cs +++ b/TrackerBridge/FakeTracker.cs @@ -8,22 +8,18 @@ namespace TrackerBridge { public class FakeTracker : IBridgeTracker { - private event GazeDataHandler gazeDataAvailable; + public event GazeDataHandler GazeDataAvailable { add { - gazeDataAvailable += value; - GazeDataProcessor.AddClient(value); + GazeDataProcessor.GazeDataProcessed += value; } remove { - gazeDataAvailable -= value; - GazeDataProcessor.RemoveClient(value); + GazeDataProcessor.GazeDataProcessed -= value; } } public event EventHandler TrackingFrequencyChanged; private Single trackerFrequency; - - public GazeDataHandler GazeDataAvailableMembers => gazeDataAvailable; public String SerialNumber => throw new NotImplementedException(); public GazeDataProcessor GazeDataProcessor { get; } diff --git a/TrackerBridge/GazeDataProcessor.cs b/TrackerBridge/GazeDataProcessor.cs index 04d811d..943fb62 100644 --- a/TrackerBridge/GazeDataProcessor.cs +++ b/TrackerBridge/GazeDataProcessor.cs @@ -11,6 +11,15 @@ namespace TrackerBridge { public class GazeDataProcessor { + public event GazeDataHandler GazeDataProcessed { + add { + gazeFilters[gazeFilters.Length - 1].OutputAvailable += value; + } + remove { + gazeFilters[gazeFilters.Length - 1].OutputAvailable -= value; + } + } + private readonly IGazeFilter[] gazeFilters; private readonly Single screenHeight; private readonly Single screenWidth; @@ -33,28 +42,12 @@ namespace TrackerBridge gazeFilters[0] = new GazeDecimator(60); //TODO: Refactor frequency passthrough //Chain filters - for(Int32 index= 0; index < gazeFilters.Length; index++) + for(Int32 index= 0; index < gazeFilters.Length-1; index++) { - if(index == gazeFilters.Length - 1) - { - gazeFilters[index].OutputAvailable += tracker.GazeDataAvailableMembers; - } - else - { - gazeFilters[index].OutputAvailable += gazeFilters[index + 1].Input; - } + gazeFilters[index].OutputAvailable += gazeFilters[index + 1].Input; } } - public void AddClient(GazeDataHandler gazeDataHandler) - { - gazeFilters[gazeFilters.Length - 1].OutputAvailable += gazeDataHandler; - } - public void RemoveClient(GazeDataHandler gazeDataHandler) - { - gazeFilters[gazeFilters.Length - 1].OutputAvailable -= gazeDataHandler; - } - public void Initialize() { foreach (IGazeFilter filter in gazeFilters) diff --git a/TrackerBridge/IBridgeTracker.cs b/TrackerBridge/IBridgeTracker.cs index a2c2f14..328fe8e 100644 --- a/TrackerBridge/IBridgeTracker.cs +++ b/TrackerBridge/IBridgeTracker.cs @@ -13,8 +13,6 @@ namespace TrackerBridge { event GazeDataHandler GazeDataAvailable; event EventHandler TrackingFrequencyChanged; - - GazeDataHandler GazeDataAvailableMembers { get; } GazeDataProcessor GazeDataProcessor { get;} String SerialNumber { get; } diff --git a/TrackerBridge/TobiiEyeTracker.cs b/TrackerBridge/TobiiEyeTracker.cs index 69d99d2..db6d4a2 100644 --- a/TrackerBridge/TobiiEyeTracker.cs +++ b/TrackerBridge/TobiiEyeTracker.cs @@ -9,20 +9,14 @@ namespace TrackerBridge { public class TobiiEyeTracker : IBridgeTracker { - //public delegate void ConnectionEventHandler(TobiiEyeTracker sender); - //public delegate void GazeDataHandler(TobiiEyeTracker sender, GazeData data); - public event ConnectionEventHandler ConnectionEvent; public event ConnectionEventHandler ConnectionTimeout; - private event GazeDataHandler gazeDataAvailable; public event GazeDataHandler GazeDataAvailable { add { - gazeDataAvailable += value; - GazeDataProcessor.AddClient(value); + GazeDataProcessor.GazeDataProcessed += value; } remove { - gazeDataAvailable -= value; - GazeDataProcessor.RemoveClient(value); + GazeDataProcessor.GazeDataProcessed -= value; } } public event EventHandler TrackingFrequencyChanged; @@ -33,8 +27,6 @@ namespace TrackerBridge public Boolean IsConnected { get; private set; } = false; public String SerialNumber { get; private set; } = null; - public GazeDataHandler GazeDataAvailableMembers => gazeDataAvailable; - public TobiiEyeTracker() { GazeDataProcessor = new GazeDataProcessor(this);