コード例 #1
0
USSavingRecorderFixture::USSavingRecorderFixture(QObject* parent) : QObject(parent)
{
	this->setUp();

	mRecorder.reset(new cx::USSavingRecorder());
	mRecorder->setWriteColor(true);
	mRecorder->set_rMpr(cx::Transform3D::Identity());
	connect(mRecorder.get(), SIGNAL(saveDataCompleted(QString)), this, SLOT(dataSaved(QString)));

	QTimer::singleShot(0, this, SLOT(runOperations()));
}
コード例 #2
0
USAcquisition::USAcquisition(AcquisitionPtr base, QObject* parent) :
	QObject(parent),
	mBase(base),
	mReady(true),
	mInfoText("")
{
	mCore.reset(new USSavingRecorder());
	connect(mCore.get(), SIGNAL(saveDataCompleted(QString)), this, SLOT(checkIfReadySlot()));
	connect(mCore.get(), SIGNAL(saveDataCompleted(QString)), this, SIGNAL(saveDataCompleted(QString)));


	connect(this->getServices()->tracking().get(), &TrackingService::stateChanged, this, &USAcquisition::checkIfReadySlot);
	connect(this->getServices()->tracking().get(), SIGNAL(activeToolChanged(const QString&)), this, SLOT(checkIfReadySlot()));
	connect(this->getServices()->video().get(), SIGNAL(activeVideoSourceChanged()), this, SLOT(checkIfReadySlot()));
	connect(this->getServices()->video().get(), &VideoService::connected, this, &USAcquisition::checkIfReadySlot);

	connect(mBase.get(), SIGNAL(started()), this, SLOT(recordStarted()));
	connect(mBase.get(), SIGNAL(acquisitionStopped()), this, SLOT(recordStopped()), Qt::QueuedConnection);
	connect(mBase.get(), SIGNAL(cancelled()), this, SLOT(recordCancelled()));

	this->checkIfReadySlot();
}
コード例 #3
0
void USSavingRecorder::fileMakerWriteFinished()
{
	std::list<QFutureWatcher<QString>*>::iterator iter;
    for (iter=mSaveThreads.begin(); iter!=mSaveThreads.end();)
	{
		if (!(*iter)->isFinished())
        {
            ++iter;
			continue;
        }
		QString result = (*iter)->future().result();
		delete *iter;
        //this increments the iter, so no need to do it in the for statement
        iter = mSaveThreads.erase(iter);

		emit saveDataCompleted(result);
	}
}