From f2ad561734ed3c6c3be68fb574db4fcc31c16fe0 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Fri, 24 Feb 2023 19:59:53 +0100 Subject: [PATCH] libcamera: find camera by partial match (if not found) --- device/libcamera/device.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/device/libcamera/device.cc b/device/libcamera/device.cc index 6c405eb..98d4d28 100644 --- a/device/libcamera/device.cc +++ b/device/libcamera/device.cc @@ -90,6 +90,20 @@ int libcamera_device_open(device_t *dev) dev->libcamera->camera = dev->libcamera->camera_manager->cameras().front(); } else { dev->libcamera->camera = dev->libcamera->camera_manager->get(dev->path); + + // Do partial match of camera + if (!dev->libcamera->camera) { + for (auto& camera : dev->libcamera->camera_manager->cameras()) { + if (!strstr(camera->id().c_str(), dev->path)) + continue; + + if (dev->libcamera->camera) { + libcamera_print_cameras(dev); + LOG_ERROR(dev, "Many cameras matching found."); + } + dev->libcamera->camera = camera; + } + } } if (!dev->libcamera->camera) {