diff --git a/EyeRecToo/src/GazeEstimation.cpp b/EyeRecToo/src/GazeEstimation.cpp index 099bc45991e0754d2a0bd404a4fa5e58903a6386..9d2f3bba438ecd0c0c5d759779df3c9ada9e0a2e 100644 --- a/EyeRecToo/src/GazeEstimation.cpp +++ b/EyeRecToo/src/GazeEstimation.cpp @@ -491,20 +491,21 @@ void GazeEstimation::loadTuplesFromFile(CollectionTuple::TupleType tupleType, QS void GazeEstimation::saveTuplesToFile(CollectionTuple::TupleType tupleType, QString fileName) { - vector pertinentTuples; - for (unsigned int i=0; i pertinentTuples; + for (unsigned int i=0; i &tuples, QString fileName, QFlags flags) diff --git a/EyeRecToo/src/GazeEstimation.h b/EyeRecToo/src/GazeEstimation.h index 2c118495108448044d63d5dddeaec61532128378..fce002a697bcc8c59a0abc28e75d62acf095f789 100644 --- a/EyeRecToo/src/GazeEstimation.h +++ b/EyeRecToo/src/GazeEstimation.h @@ -195,7 +195,8 @@ public slots: void saveTuplesToFile(const std::vector &tuples, QString fileName, QFlags flags); void addTuple(CollectionTuple tuple); void addTuples(std::vector tuples); - void reset(CollectionTuple::TupleType type); + void reset(CollectionTuple::TupleType type); + void saveCalibration() { saveTuplesToFile( CollectionTuple::TupleType::CALIBRATION, QString("%1-calibration.tup").arg( gTimer.elapsed() ) ); } void setCalibrating(bool v); diff --git a/EyeRecToo/src/GazeEstimationWidget.cpp b/EyeRecToo/src/GazeEstimationWidget.cpp index 8b38aaf6f6518499c7a76385ddf0b4a13e4e23f9..fe1f2120a4fdb4c9e0e17f721f23b6a8ccb3529d 100644 --- a/EyeRecToo/src/GazeEstimationWidget.cpp +++ b/EyeRecToo/src/GazeEstimationWidget.cpp @@ -13,7 +13,8 @@ GazeEstimationWidget::GazeEstimationWidget(QWidget *parent) : isCollecting(false), isSampling(false), lastStatus(false), - calibrationRequested(false), + calibrationRequested(false), + isRecording(false), ui(new Ui::GazeEstimationWidget) { ui->setupUi(this); @@ -298,6 +299,17 @@ void GazeEstimationWidget::on_collectionTypeComboBox_currentIndexChanged(int ind currentTupleType = static_cast( ui->collectionTypeComboBox->itemData(index).toInt() ); } +void GazeEstimationWidget::startRecording() +{ + isRecording = true; + QMetaObject::invokeMethod(gazeEstimation, "saveCalibration"); +} + +void GazeEstimationWidget::stopRecording() +{ + isRecording = false; +} + /* void GazeEstimationWidget::keyPressEvent(QKeyEvent *event) { @@ -472,7 +484,9 @@ void GazeEstimationWidget::updateStatus(bool status, QString msg) if (status) { statusBarLabel->setText("Calibrated."); - statusBarLabel->setStyleSheet("QLabel { font : bold; color : green }"); + statusBarLabel->setStyleSheet("QLabel { font : bold; color : green }"); + if (isRecording) + QMetaObject::invokeMethod(gazeEstimation, "saveCalibration"); } else { statusBarLabel->setText(QString("Uncalibrated: %1").arg(msg)); statusBarLabel->setStyleSheet("QLabel { font : bold; color : red }"); @@ -480,7 +494,6 @@ void GazeEstimationWidget::updateStatus(bool status, QString msg) } - void GazeEstimationWidget::on_minCentralCoverage_editingFinished() { cfg.minCentralAreaCoverage = ui->minCentralCoverage->value(); diff --git a/EyeRecToo/src/GazeEstimationWidget.h b/EyeRecToo/src/GazeEstimationWidget.h index dba6ab0c8f8082f9cd50e354e95fc48aa5c410d9..cdb912f7c2d3dad6290ce89e0dafa05c97c66b44 100644 --- a/EyeRecToo/src/GazeEstimationWidget.h +++ b/EyeRecToo/src/GazeEstimationWidget.h @@ -42,6 +42,8 @@ public slots: void toggleCalibration(); void enableMarkerCollection(); void disableMarkerCollection(); + void startRecording(); + void stopRecording(); private: QThread *gazeEstimationThread; @@ -56,7 +58,8 @@ private: bool isCollecting; bool isSampling; bool lastStatus; - bool calibrationRequested; + bool calibrationRequested; + bool isRecording; QLabel *statusBarLabel; diff --git a/EyeRecToo/src/MainWindow.cpp b/EyeRecToo/src/MainWindow.cpp index f12d4b74eb45ed49f8277dcff98de3459b4ea0ac..76deed915ed5a5abf5a9de4d1e29d3052e0ab5f9 100644 --- a/EyeRecToo/src/MainWindow.cpp +++ b/EyeRecToo/src/MainWindow.cpp @@ -118,8 +118,10 @@ MainWindow::MainWindow(QWidget *parent) : fieldWidget, SLOT(startRecording()) ); connect(this, SIGNAL(stopRecording()), fieldWidget, SLOT(stopRecording()) ); -// connect(this, SIGNAL(startRecording()), calibrationWidget, SLOT(startRecording()) ); -// connect(this, SIGNAL(stopRecording()), calibrationWidget, SLOT(stopRecording()) ); + connect(this, SIGNAL(startRecording()), + gazeEstimationWidget, SLOT(startRecording()) ); + connect(this, SIGNAL(stopRecording()), + gazeEstimationWidget, SLOT(stopRecording()) ); connect(this, SIGNAL(startRecording()), journal, SIGNAL(startRecording()) ); connect(this, SIGNAL(stopRecording()),