diff --git a/src/frame_base.h b/src/frame_base.h index 91be417bc23bd8c5eeb397b7a0f5521fef928bd9..d96a8fead8698b86a47fead5c94162141cf703df 100644 --- a/src/frame_base.h +++ b/src/frame_base.h @@ -133,6 +133,7 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase CaptureBaseList& getCaptureList(); CaptureBasePtr addCapture(CaptureBasePtr _capt_ptr); CaptureBasePtr getCaptureOf(const SensorBasePtr _sensor_ptr); + CaptureBasePtr getCaptureOf(const SensorBasePtr _sensor_ptr, const std::string& type); CaptureBaseList getCapturesOf(const SensorBasePtr _sensor_ptr); void unlinkCapture(CaptureBasePtr _cap_ptr); @@ -318,6 +319,16 @@ inline CaptureBasePtr FrameBase::getCaptureOf(const SensorBasePtr _sensor_ptr) return nullptr; } +inline CaptureBasePtr +FrameBase::getCaptureOf(const SensorBasePtr _sensor_ptr, const std::string& type) +{ + for (CaptureBasePtr capture_ptr : getCaptureList()) + if (capture_ptr->getSensorPtr() == _sensor_ptr && + capture_ptr->getType() == type) + return capture_ptr; + return nullptr; +} + inline CaptureBaseList FrameBase::getCapturesOf(const SensorBasePtr _sensor_ptr) { CaptureBaseList captures;