diff --git a/ECTrainer2/ECTrainer.cpp b/ECTrainer2/ECTrainer.cpp index f7eda3f..28a51f0 100644 --- a/ECTrainer2/ECTrainer.cpp +++ b/ECTrainer2/ECTrainer.cpp @@ -5,10 +5,7 @@ #include "Stimulus.h" #include "Marker.h" #include "ImageProc.h" - -#ifdef _DEBUG -#include -#endif +#include "EyeTrack.h" // �R���X�g���N�^ ECTrainer::ECTrainer() @@ -17,6 +14,7 @@ , _pStimulus(NULL) , _pMarker(NULL) , _pImageProc(NULL) + , _pEyeTrack(NULL) , _Running(true) , _HomographyOK(false) { @@ -25,6 +23,7 @@ _pImageProc = new ImageProc(this, _pMarker); _pSceneCam = new SceneCamera(this, _pImageProc); _pStimulus = new Stimulus(this, _pMarker); + _pEyeTrack = new EyeTrack(this); } // �f�X�g���N�^ @@ -34,6 +33,7 @@ if (_pStimulus) delete _pStimulus; if (_pMarker) delete _pMarker; if (_pImageProc) delete _pImageProc; + if (_pEyeTrack) delete _pEyeTrack; } // ������ @@ -42,24 +42,27 @@ if (!_pSceneCam->Init()) return false; if (!_pStimulus->Init()) return false; if (!_pImageProc->Init()) return false; + if (!_pEyeTrack->Init()) return false; - DWORD dwThreadIdSceneCam, dwThreadIdStimulus, dwThreadIdImageProc; + DWORD dwThreadIdSceneCam, dwThreadIdStimulus, dwThreadIdImageProc, dwThreadIdEyeTrack; HANDLE hThreadSceneCam = CreateThread(NULL, 0, SceneCamThreadEntry, this, 0, &dwThreadIdSceneCam); HANDLE hThreadStimulus = CreateThread(NULL, 0, StimulusThreadEntry, this, 0, &dwThreadIdStimulus); HANDLE hThreadImageProc = CreateThread(NULL, 0, ImageProcThreadEntry, this, 0, &dwThreadIdImageProc); + HANDLE hThreadEyeTrack = CreateThread(NULL, 0, ImageProcThreadEntry, this, 0, &dwThreadIdEyeTrack); _pGui->MainLoop(); - HANDLE handles[] = { hThreadSceneCam , hThreadStimulus, hThreadImageProc }; + HANDLE handles[] = { hThreadSceneCam , hThreadStimulus, hThreadImageProc, hThreadEyeTrack }; DWORD timeOut = 1000; // �^�C���A�E�g(ms) if (WaitForMultipleObjects(sizeof(handles) / sizeof(HANDLE), handles, TRUE, timeOut) != WAIT_TIMEOUT) { -#ifdef _DEBUG - std::cout << "All threads properly ended." << std::endl; -#endif + OutputDebugString(_T("All threads stopped sccessfully.\n")); + } else { + OutputDebugString(_T("Waiting threads stop timeout.\n")); } if (hThreadSceneCam) CloseHandle(hThreadSceneCam); if (hThreadStimulus) CloseHandle(hThreadStimulus); if (hThreadImageProc) CloseHandle(hThreadImageProc); + if (hThreadEyeTrack) CloseHandle(hThreadEyeTrack); return true; } diff --git a/ECTrainer2/ECTrainer.h b/ECTrainer2/ECTrainer.h index 5347a89..72c79dc 100644 --- a/ECTrainer2/ECTrainer.h +++ b/ECTrainer2/ECTrainer.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include "myOpenCV.h" class ECTrainerGUI; @@ -8,6 +9,7 @@ class Stimulus; class Marker; class ImageProc; +class EyeTrack; class ECTrainer { @@ -17,6 +19,7 @@ Stimulus* _pStimulus; Marker* _pMarker; ImageProc* _pImageProc; + EyeTrack* _pEyeTrack; bool _Running; bool _HomographyOK; // �X���b�h�J�n�_ diff --git a/ECTrainer2/EyeTrack.cpp b/ECTrainer2/EyeTrack.cpp index 5ae170a..704f9ad 100644 --- a/ECTrainer2/EyeTrack.cpp +++ b/ECTrainer2/EyeTrack.cpp @@ -1 +1,7 @@ #include "EyeTrack.h" +#include "ECTrainer.h" + + +// �R���X�g���N�^ +EyeTrack::EyeTrack(ECTrainer* pEct) :BaseProcess(pEct) { +} diff --git a/ECTrainer2/EyeTrack.h b/ECTrainer2/EyeTrack.h index 22e0a17..80679ee 100644 --- a/ECTrainer2/EyeTrack.h +++ b/ECTrainer2/EyeTrack.h @@ -5,4 +5,5 @@ class EyeTrack : public BaseProcess { public: + EyeTrack(ECTrainer* pEct); };