From 6dc55d2cb41bf4cce940f63541f429bed2408dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Fri, 19 Jun 2026 11:14:51 +0200 Subject: [PATCH] spa: libcamera: move CameraManager acquisition Now that there is a "libcamera.cpp", move `libcamera_manager_acquire()` into that file since it is a common function used by all three factories. --- spa/plugins/libcamera/libcamera-device.cpp | 1 - spa/plugins/libcamera/libcamera-manager.cpp | 20 ----------------- spa/plugins/libcamera/libcamera-manager.hpp | 9 -------- spa/plugins/libcamera/libcamera-source.cpp | 1 - spa/plugins/libcamera/libcamera.cpp | 24 +++++++++++++++++++++ spa/plugins/libcamera/libcamera.hpp | 6 ++++++ 6 files changed, 30 insertions(+), 31 deletions(-) delete mode 100644 spa/plugins/libcamera/libcamera-manager.hpp diff --git a/spa/plugins/libcamera/libcamera-device.cpp b/spa/plugins/libcamera/libcamera-device.cpp index f3fc0b4e9..ce29671bd 100644 --- a/spa/plugins/libcamera/libcamera-device.cpp +++ b/spa/plugins/libcamera/libcamera-device.cpp @@ -22,7 +22,6 @@ #include #include "libcamera.hpp" -#include "libcamera-manager.hpp" #include #include diff --git a/spa/plugins/libcamera/libcamera-manager.cpp b/spa/plugins/libcamera/libcamera-manager.cpp index 277a680b3..9dc4ce49f 100644 --- a/spa/plugins/libcamera/libcamera-manager.cpp +++ b/spa/plugins/libcamera/libcamera-manager.cpp @@ -26,7 +26,6 @@ using namespace libcamera; #include #include "libcamera.hpp" -#include "libcamera-manager.hpp" namespace { @@ -388,22 +387,3 @@ const struct spa_handle_factory spa_libcamera_manager_factory = { impl_enum_interface_info, }; } - -std::shared_ptr libcamera_manager_acquire(int& res) -{ - static std::weak_ptr global_manager; - static std::mutex lock; - - std::lock_guard guard(lock); - - if (auto manager = global_manager.lock()) - return manager; - - auto manager = std::make_shared(); - if ((res = manager->start()) < 0) - return {}; - - global_manager = manager; - - return manager; -} diff --git a/spa/plugins/libcamera/libcamera-manager.hpp b/spa/plugins/libcamera/libcamera-manager.hpp deleted file mode 100644 index 71ebd6f8d..000000000 --- a/spa/plugins/libcamera/libcamera-manager.hpp +++ /dev/null @@ -1,9 +0,0 @@ -/* Spa libcamera support */ -/* SPDX-FileCopyrightText: Copyright © 2021 Wim Taymans */ -/* SPDX-License-Identifier: MIT */ - -#include - -#include - -std::shared_ptr libcamera_manager_acquire(int& res); diff --git a/spa/plugins/libcamera/libcamera-source.cpp b/spa/plugins/libcamera/libcamera-source.cpp index e4ed7f2ec..f027f661e 100644 --- a/spa/plugins/libcamera/libcamera-source.cpp +++ b/spa/plugins/libcamera/libcamera-source.cpp @@ -43,7 +43,6 @@ #include #include "libcamera.hpp" -#include "libcamera-manager.hpp" using namespace libcamera; diff --git a/spa/plugins/libcamera/libcamera.cpp b/spa/plugins/libcamera/libcamera.cpp index 3ea094e90..93671159a 100644 --- a/spa/plugins/libcamera/libcamera.cpp +++ b/spa/plugins/libcamera/libcamera.cpp @@ -2,6 +2,11 @@ /* SPDX-FileCopyrightText: Copyright © 2020 collabora */ /* SPDX-License-Identifier: MIT */ +#include +#include + +#include + #include #include @@ -38,3 +43,22 @@ int spa_handle_factory_enum(const struct spa_handle_factory **factory, } } + +std::shared_ptr libcamera_manager_acquire(int& res) +{ + static std::weak_ptr global_manager; + static std::mutex lock; + + std::lock_guard guard(lock); + + if (auto manager = global_manager.lock()) + return manager; + + auto manager = std::make_shared(); + if ((res = manager->start()) < 0) + return {}; + + global_manager = manager; + + return manager; +} diff --git a/spa/plugins/libcamera/libcamera.hpp b/spa/plugins/libcamera/libcamera.hpp index 0d74df21e..9b1089182 100644 --- a/spa/plugins/libcamera/libcamera.hpp +++ b/spa/plugins/libcamera/libcamera.hpp @@ -4,6 +4,10 @@ #pragma once +#include + +#include + #include extern "C" { @@ -22,3 +26,5 @@ static inline void libcamera_log_topic_init(struct spa_log *log) { spa_log_topic_init(log, &libcamera_log_topic); } + +std::shared_ptr libcamera_manager_acquire(int& res);