From 977cfbd526f2da1cfce5c5c2b187c83af3d3efdc Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Thu, 2 May 2019 16:50:49 -0400 Subject: 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 Reviewed-by: Laurent Pinchart --- src/libcamera/device_enumerator.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/libcamera/device_enumerator.cpp') 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 @@ -153,8 +154,9 @@ std::unique_ptr 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(); + if (!enumerator->init()) + return enumerator; return nullptr; } -- cgit v1.2.1