From 40c934b711f9282243a924c2ba8d186f4a3a54b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Malte=20K=C3=B6gel?= <koegel@vr.rwth-aachen.de>
Date: Tue, 5 Sep 2023 17:28:12 +0200
Subject: [PATCH] WIP, NOT TESTED. removed delegate, now it compiles. It will
 probably not work as is, I'm pretty sure passing the bools with MoveTemp is
 wrong. Also there is some more cleaning up to do once tested.

---
 .../Private/GazeTracking/SFGazeTracker.cpp                | 8 +++++---
 .../Public/GazeTracking/SFGazeTracker.h                   | 4 ++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp b/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp
index 3001ae0..aaffdf5 100644
--- a/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp
+++ b/Source/StudyFrameworkPlugin/Private/GazeTracking/SFGazeTracker.cpp
@@ -27,13 +27,15 @@ bool USFGazeTracker::Tick(float DeltaTime)
 #ifdef WITH_SRANIPAL
 		bIsAsyncEyeTrackingTaskRunning = true;
 		ViveSR::anipal::Eye::EyeData_v2 TempEyeData;
-		AsyncTask(ENamedThreads::AnyThread, [TempEyeDataAddr = MoveTemp(&TempEyeData), OnEyeTrackingDataReceived]()
+		AsyncTask(ENamedThreads::AnyThread, [TempEyeDataAddr = &TempEyeData, SranipalEyeData = MoveTemp(SranipalEyeData), bIsAsyncEyeTrackingTaskRunning = MoveTemp(bIsAsyncEyeTrackingTaskRunning), bDataLogged = MoveTemp(bDataLogged)]()
 			{				
 				ViveSR::anipal::Eye::GetEyeData_v2(TempEyeDataAddr);
 
-				AsyncTask(ENamedThreads::GameThread, [TempEyeDataAddr = MoveTemp(TempEyeDataAddr), OnEyeTrackingDataReceived]() mutable
+				AsyncTask(ENamedThreads::GameThread, [TempEyeDataAddr =TempEyeDataAddr, SranipalEyeData, bIsAsyncEyeTrackingTaskRunning, bDataLogged]() mutable
 					{
-						OnEyeTrackingDataReceived.ExecuteIfBound(*TempEyeDataAddr);
+						SranipalEyeData = *TempEyeDataAddr;
+						bDataLogged = false;
+						bIsAsyncEyeTrackingTaskRunning = false;
 					});
 	
 			});		
diff --git a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
index 25782c8..9f7e393 100644
--- a/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
+++ b/Source/StudyFrameworkPlugin/Public/GazeTracking/SFGazeTracker.h
@@ -11,7 +11,7 @@
 
 #ifdef WITH_SRANIPAL
 //Use this to broadcast the data from async thread to game thread for logging
-DECLARE_DYNAMIC_DELEGATE_OneParam(FOnEyeTrackingDataReceived, const ViveSR::anipal::Eye::EyeData_v2, EyeData);
+//DECLARE_DYNAMIC_DELEGATE_OneParam(FOnEyeTrackingDataReceived, const ViveSR::anipal::Eye::EyeData_v2, EyeData);
 #endif
 
 UENUM()
@@ -82,7 +82,7 @@ public:
 
 
 #ifdef WITH_SRANIPAL
-	FOnEyeTrackingDataReceived& OnEyeTrackingDataReceived;
+	//FOnEyeTrackingDataReceived& OnEyeTrackingDataReceived;
 	void OnEyeTrackingDataReceived(ViveSR::anipal::Eye::EyeData_v2 EyeData);
 #endif
 private:
-- 
GitLab