--- /dev/null
+#include "SequenceViewerCV.h"\r
+#include "ImageViewerCV.h"\r
+#include <iostream>\r
+#include <omp.h>\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Implementation *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+SequenceVieverCV::SequenceVieverCV(Capture_A* ptrCaptureur)\r
+ {\r
+ cout<<"[SequenceViever] : SequenceViever"<<endl;\r
+ this->ptrCaptureur = ptrCaptureur;\r
+ this->isStart = false;\r
+ }\r
+\r
+SequenceVieverCV::~SequenceVieverCV(void)\r
+ {\r
+ // rien\r
+ }\r
+\r
+void SequenceVieverCV::run()\r
+ {\r
+ cout<<"[SequenceViever] : run"<<endl;\r
+\r
+ if (!isStart)\r
+ {\r
+ isStart = true;\r
+\r
+ Mat image = ptrCaptureur->capturer();\r
+ ptrCaptureur->printInfo();\r
+\r
+ string titleFrame = ptrCaptureur->getTitle() + "[q to quit]";\r
+ ImageVieverCV imageViever(titleFrame);\r
+\r
+ Chronos chrono;\r
+ char key = 'a'; //disons\r
+ while (key != 'q')\r
+ {\r
+ imageViever.show(&image);\r
+ image = ptrCaptureur->capturer();\r
+\r
+ int timetoWaitYetMS = timeToWaitMS(&chrono); // FIXME\r
+ key = cvWaitKey(max(1, timetoWaitYetMS)); // attention 1 min, pour respecter cadence original\r
+\r
+ if (ptrCaptureur->nbCapture() % 60 == 0) //disons\r
+ {\r
+ cout << "[SequenceViewer] : fps = " << ptrCaptureur->fpsCapture() << endl;\r
+ // ptrCaptureur->printInfo();\r
+ }\r
+ }\r
+\r
+ isStart = false;\r
+ }\r
+ }\r
+\r
+int SequenceVieverCV::fps()\r
+ {\r
+ return ptrCaptureur->fpsCapture();\r
+ }\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+int SequenceVieverCV::timeToWaitMS(Chronos* ptrChrono) // TODO BUG play trop vite why?\r
+ {\r
+ double timeElapseS = ptrChrono->stop();\r
+ ptrChrono->start();\r
+\r
+ int timeElapseMS = (int) (timeElapseS * 1000);\r
+ int timeToWaitTheoriqueMS = ptrCaptureur->dtOriginalMS();\r
+\r
+ int timetoWaitYetMS = timeToWaitTheoriqueMS - timeElapseMS;\r
+ timetoWaitYetMS = max(0, timetoWaitYetMS); // 0 si negatif\r
+\r
+ // debug\r
+// {\r
+// cout << endl;\r
+// cout << "timeToWaitTheorique (MS) = " << timeToWaitTheoriqueMS << endl;\r
+// cout << "timeElapse (MS) = " << timeElapseMS << endl;\r
+// cout << "timetoWaitYet (MS) = " << timetoWaitYetMS << endl;\r
+// cout << endl;\r
+// }\r
+\r
+ return timetoWaitYetMS;\r
+ }\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r
+\r