summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libcamera/device_enumerator.cpp13
-rw-r--r--src/libcamera/device_enumerator_sysfs.cpp11
-rw-r--r--src/libcamera/device_enumerator_udev.cpp19
-rw-r--r--src/libcamera/include/device_enumerator.h2
-rw-r--r--src/libcamera/include/device_enumerator_sysfs.h2
-rw-r--r--src/libcamera/include/device_enumerator_udev.h2
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);