diff options
-rw-r--r-- | include/libcamera/camera_manager.h | 1 | ||||
-rw-r--r-- | include/libcamera/internal/camera_manager.h | 3 | ||||
-rw-r--r-- | src/libcamera/camera_manager.cpp | 42 |
3 files changed, 1 insertions, 45 deletions
diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h index 9767acc4..1a891cac 100644 --- a/include/libcamera/camera_manager.h +++ b/include/libcamera/camera_manager.h @@ -32,7 +32,6 @@ public: std::vector<std::shared_ptr<Camera>> cameras() const; std::shared_ptr<Camera> get(const std::string &id); - std::shared_ptr<Camera> get(dev_t devnum); static const std::string &version() { return version_; } diff --git a/include/libcamera/internal/camera_manager.h b/include/libcamera/internal/camera_manager.h index e4f5aaf4..33ebe069 100644 --- a/include/libcamera/internal/camera_manager.h +++ b/include/libcamera/internal/camera_manager.h @@ -50,11 +50,10 @@ private: * This mutex protects * * - initialized_ and status_ during initialization - * - cameras_ and camerasByDevnum_ after initialization + * - cameras_ after initialization */ mutable Mutex mutex_; std::vector<std::shared_ptr<Camera>> cameras_ LIBCAMERA_TSA_GUARDED_BY(mutex_); - std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_ LIBCAMERA_TSA_GUARDED_BY(mutex_); ConditionVariable cv_; bool initialized_ LIBCAMERA_TSA_GUARDED_BY(mutex_); diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp index 7c65bb99..355f3ada 100644 --- a/src/libcamera/camera_manager.cpp +++ b/src/libcamera/camera_manager.cpp @@ -178,15 +178,9 @@ void CameraManager::Private::addCamera(std::shared_ptr<Camera> camera) } } - auto devnums = camera->properties() - .get(properties::SystemDevices) - .value_or(Span<int64_t>{}); - cameras_.push_back(std::move(camera)); unsigned int index = cameras_.size() - 1; - for (dev_t devnum : devnums) - camerasByDevnum_[devnum] = cameras_[index]; /* Report the addition to the public signal */ CameraManager *const o = LIBCAMERA_O_PTR(); @@ -219,13 +213,6 @@ void CameraManager::Private::removeCamera(std::shared_ptr<Camera> camera) LOG(Camera, Debug) << "Unregistering camera '" << camera->id() << "'"; - auto iter_d = std::find_if(camerasByDevnum_.begin(), camerasByDevnum_.end(), - [camera](const std::pair<dev_t, std::weak_ptr<Camera>> &p) { - return p.second.lock().get() == camera.get(); - }); - if (iter_d != camerasByDevnum_.end()) - camerasByDevnum_.erase(iter_d); - cameras_.erase(iter); /* Report the removal to the public signal */ @@ -367,35 +354,6 @@ std::shared_ptr<Camera> CameraManager::get(const std::string &id) } /** - * \brief Retrieve a camera based on device number - * \param[in] devnum Device number of camera to get - * - * This function is meant solely for the use of the V4L2 compatibility - * layer, to map device nodes to Camera instances. Applications shall - * not use it and shall instead retrieve cameras by name. - * - * Before calling this function the caller is responsible for ensuring that - * the camera manager is running. - * - * \context This function is \threadsafe. - * - * \return Shared pointer to Camera object, which is empty if the camera is - * not found - */ -std::shared_ptr<Camera> CameraManager::get(dev_t devnum) -{ - Private *const d = _d(); - - MutexLocker locker(d->mutex_); - - auto iter = d->camerasByDevnum_.find(devnum); - if (iter == d->camerasByDevnum_.end()) - return nullptr; - - return iter->second.lock(); -} - -/** * \var CameraManager::cameraAdded * \brief Notify of a new camera added to the system * |