void pcl::ihs::InHandScanner::startGrabberImpl () { std::unique_lock<std::mutex> lock (mutex_); starting_grabber_ = true; lock.unlock (); try { grabber_ = GrabberPtr (new Grabber ()); } catch (const pcl::PCLException& e) { std::cerr << "ERROR in in_hand_scanner.cpp: " << e.what () << std::endl; exit (EXIT_FAILURE); } lock.lock (); if (destructor_called_) return; boost::function <void (const CloudXYZRGBAConstPtr&)> new_data_cb = boost::bind (&pcl::ihs::InHandScanner::newDataCallback, this, _1); new_data_connection_ = grabber_->registerCallback (new_data_cb); grabber_->start (); starting_grabber_ = false; }
//--------- bool DiskStreamer::getHasGrabber() const { return this->grabber != GrabberPtr(); }
//--------- void DiskStreamer::clearGrabber() { if (this->getHasGrabber()) { this->grabber->onNewFrameReceived.removeListeners(this); this->grabber = GrabberPtr(); } }