diff options
author | Paul Elder <paul.elder@ideasonboard.com> | 2019-05-02 16:50:49 -0400 |
---|---|---|
committer | Paul Elder <paul.elder@ideasonboard.com> | 2019-05-03 16:31:10 -0400 |
commit | 977cfbd526f2da1cfce5c5c2b187c83af3d3efdc (patch) | |
tree | bc80ecc5b23a7a78c1c019b31aff0ad62600339a /src/libcamera/device_enumerator.cpp | |
parent | 05ff3d56e04a33756a679d24fe5542e9e50935b4 (diff) |
libcamera: device_enumerator: add DeviceEnumeratorSysfs class
A udev-based device enumerator is not sufficient, since libudev is an
optional dependency, or udev might fail. In these cases, we should fall
back to using sysfs to enumerate devices.
Add a DeviceEnumeratorSysfs class which is a specialization of
DeviceEnumerator that uses sysfs to enumerate media devices on the
system.
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/device_enumerator.cpp')
-rw-r--r-- | src/libcamera/device_enumerator.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp index f6878b3d..259eec41 100644 --- a/src/libcamera/device_enumerator.cpp +++ b/src/libcamera/device_enumerator.cpp @@ -6,6 +6,7 @@ */ #include "device_enumerator.h" +#include "device_enumerator_sysfs.h" #include "device_enumerator_udev.h" #include <string.h> @@ -153,8 +154,9 @@ std::unique_ptr<DeviceEnumerator> DeviceEnumerator::create() * Either udev is not available or udev initialization failed. Fall back * on the sysfs enumerator. */ - - /** \todo Add a sysfs-based enumerator. */ + enumerator = utils::make_unique<DeviceEnumeratorSysfs>(); + if (!enumerator->init()) + return enumerator; return nullptr; } |