diff options
-rw-r--r-- | src/libcamera/device_enumerator.cpp | 13 | ||||
-rw-r--r-- | src/libcamera/device_enumerator_sysfs.cpp | 11 | ||||
-rw-r--r-- | src/libcamera/device_enumerator_udev.cpp | 19 | ||||
-rw-r--r-- | src/libcamera/include/device_enumerator.h | 2 | ||||
-rw-r--r-- | src/libcamera/include/device_enumerator_sysfs.h | 2 | ||||
-rw-r--r-- | src/libcamera/include/device_enumerator_udev.h | 2 |
6 files changed, 25 insertions, 24 deletions
diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp index e76438af..0b596bce 100644 --- a/src/libcamera/device_enumerator.cpp +++ b/src/libcamera/device_enumerator.cpp @@ -306,17 +306,4 @@ std::shared_ptr<MediaDevice> DeviceEnumerator::search(const DeviceMatch &dm) return nullptr; } -/** - * \fn DeviceEnumerator::lookupDeviceNode(int major, int minor) - * \brief Lookup device node path from device number - * \param[in] major The device major number - * \param[in] minor The device minor number - * - * Translate a device number given as \a major and \a minor to a device node - * path. - * - * \return the device node path on success, or an empty string if the lookup - * fails - */ - } /* namespace libcamera */ diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp index 78a7da8d..ad26affb 100644 --- a/src/libcamera/device_enumerator_sysfs.cpp +++ b/src/libcamera/device_enumerator_sysfs.cpp @@ -112,6 +112,17 @@ int DeviceEnumeratorSysfs::populateMediaDevice(const std::shared_ptr<MediaDevice return 0; } +/** + * \brief Lookup device node path from device number + * \param[in] major The device major number + * \param[in] minor The device minor number + * + * Translate a device number given as \a major and \a minor to a device node + * path. + * + * \return The device node path on success, or an empty string if the lookup + * fails + */ std::string DeviceEnumeratorSysfs::lookupDeviceNode(int major, int minor) { std::string deviceNode; diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp index 40853e77..e0c646c9 100644 --- a/src/libcamera/device_enumerator_udev.cpp +++ b/src/libcamera/device_enumerator_udev.cpp @@ -178,10 +178,9 @@ int DeviceEnumeratorUdev::populateMediaDevice(const std::shared_ptr<MediaDevice> if (entity->deviceMajor() == 0 && entity->deviceMinor() == 0) continue; - std::string deviceNode = lookupDeviceNode(entity->deviceMajor(), - entity->deviceMinor()); dev_t devnum = makedev(entity->deviceMajor(), entity->deviceMinor()); + std::string deviceNode = lookupDeviceNode(devnum); /* Take device from orphan list first, if it is in the list. */ if (std::find(orphans_.begin(), orphans_.end(), devnum) != orphans_.end()) { @@ -205,14 +204,21 @@ int DeviceEnumeratorUdev::populateMediaDevice(const std::shared_ptr<MediaDevice> return pendingNodes; } -std::string DeviceEnumeratorUdev::lookupDeviceNode(int major, int minor) +/** + * \brief Lookup device node path from device number + * \param[in] devnum The device number + * + * Translate a device number given as \a devnum to a device node path. + * + * \return The device node path on success, or an empty string if the lookup + * fails + */ +std::string DeviceEnumeratorUdev::lookupDeviceNode(dev_t devnum) { struct udev_device *device; const char *name; - dev_t devnum; std::string deviceNode = std::string(); - devnum = makedev(major, minor); device = udev_device_new_from_devnum(udev_, 'c', devnum); if (!device) return std::string(); @@ -246,8 +252,7 @@ int DeviceEnumeratorUdev::addV4L2Device(dev_t devnum) return 0; } - std::string deviceNode = lookupDeviceNode(entity->deviceMajor(), - entity->deviceMinor()); + std::string deviceNode = lookupDeviceNode(devnum); if (deviceNode.empty()) return -EINVAL; diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/device_enumerator.h index c5d26f1a..770f4277 100644 --- a/src/libcamera/include/device_enumerator.h +++ b/src/libcamera/include/device_enumerator.h @@ -50,8 +50,6 @@ protected: private: std::vector<std::shared_ptr<MediaDevice>> devices_; - - virtual std::string lookupDeviceNode(int major, int minor) = 0; }; } /* namespace libcamera */ diff --git a/src/libcamera/include/device_enumerator_sysfs.h b/src/libcamera/include/device_enumerator_sysfs.h index 242b22b2..9063f6a7 100644 --- a/src/libcamera/include/device_enumerator_sysfs.h +++ b/src/libcamera/include/device_enumerator_sysfs.h @@ -24,7 +24,7 @@ public: private: int populateMediaDevice(const std::shared_ptr<MediaDevice> &media); - std::string lookupDeviceNode(int major, int minor) final; + std::string lookupDeviceNode(int major, int minor); }; } /* namespace libcamera */ diff --git a/src/libcamera/include/device_enumerator_udev.h b/src/libcamera/include/device_enumerator_udev.h index 5bdcdea6..fb7cac80 100644 --- a/src/libcamera/include/device_enumerator_udev.h +++ b/src/libcamera/include/device_enumerator_udev.h @@ -47,7 +47,7 @@ private: int addUdevDevice(struct udev_device *dev); int populateMediaDevice(const std::shared_ptr<MediaDevice> &media); - std::string lookupDeviceNode(int major, int minor) final; + std::string lookupDeviceNode(dev_t devnum); int addV4L2Device(dev_t devnum); void udevNotify(EventNotifier *notifier); |