From patchwork Sat Dec 30 16:29:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 19355 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 0C5D5C32BC for ; Sat, 30 Dec 2023 16:29:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 464E362B5D; Sat, 30 Dec 2023 17:29:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1703953778; bh=wAxlakPy353QsBJfhvYiGepVDOexcUVy88tbj9z6DxY=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=dEdIDRYcxqPSpBbadKlGSe34Y8Q5EywTVugPcPGucNWI8tiB7NZOBYBU7nvJR0m8Y tLQwGm8ZdsVYWHI/dI55OgxWtFBQwz2C5CE1OvOm/MhqJq8Ckj53FAJrt/68GZUR2+ 1ufkiSw00khugAH/RAJw2AeZ4PSqni7Z46StaXrTErdVj2LQl8an6Fd60ow8eKUVlH qG6Dw3Y54180V3zH+UuyW9d+LIP7ZBkz2wAMBg2Lc4w75IcUdUSvh9KNXVOTUDmaJA tRyIshL821or4fJIFStuQsdaF1aKZse8hTtxcmxidzitfJ0v8DFYPeAeUFM9AFlVPh D3zMea0oD205w== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 51A0A62B40 for ; Sat, 30 Dec 2023 17:29:33 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="OJFPY231"; dkim-atps=neutral Received: from localhost.localdomain (93-61-96-190.ip145.fastwebnet.it [93.61.96.190]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id F01C9C8A; Sat, 30 Dec 2023 17:28:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1703953716; bh=wAxlakPy353QsBJfhvYiGepVDOexcUVy88tbj9z6DxY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OJFPY231S0FiB1vK+Rl6pY6ggmQ2TYjRzMD66ePvNWm/nKTbPOCdLqi5QZVE4m0G0 plb6VzNb+TXfZtw16HLjVwh/4zG0+NFdCzATz56PuG9q/YALCv5wsoRZBefJOH8fUh GsMtyCFdFBZMVCC6lNiQQHYMRCWT+yeR19ihWncA= To: libcamera-devel@lists.libcamera.org Date: Sat, 30 Dec 2023 17:29:09 +0100 Message-ID: <20231230162912.827669-5-jacopo.mondi@ideasonboard.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231230162912.827669-1-jacopo.mondi@ideasonboard.com> References: <20231230162912.827669-1-jacopo.mondi@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 4/7] apps: lc-compliance: Re-organize source directory X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jacopo Mondi via libcamera-devel From: Jacopo Mondi Reply-To: Jacopo Mondi Cc: Jacopo Mondi Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Before adding more tests and more helper classes to lc-compliance, reorganize the source tree to split test and helpers in two separate directories. While at it, rename the 'SimpleCapture' class and its derived classes to just 'Capture'. Rename the source files accordingly. Re-sort headers inclusions to please checkstyle.py too. Signed-off-by: Jacopo Mondi Reviewed-by: Kieran Bingham Reviewed-by: Stefan Klug Tested-by: Stefan Klug --- .../capture.cpp} | 38 +++++++++---------- .../{simple_capture.h => helpers/capture.h} | 14 +++---- src/apps/lc-compliance/meson.build | 10 ++++- .../{ => tests}/capture_test.cpp | 9 +++-- 4 files changed, 39 insertions(+), 32 deletions(-) rename src/apps/lc-compliance/{simple_capture.cpp => helpers/capture.cpp} (81%) rename src/apps/lc-compliance/{simple_capture.h => helpers/capture.h} (76%) rename src/apps/lc-compliance/{ => tests}/capture_test.cpp (95%) diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp similarity index 81% rename from src/apps/lc-compliance/simple_capture.cpp rename to src/apps/lc-compliance/helpers/capture.cpp index 545b444c2593..5aab973f0392 100644 --- a/src/apps/lc-compliance/simple_capture.cpp +++ b/src/apps/lc-compliance/helpers/capture.cpp @@ -5,24 +5,24 @@ * simple_capture.cpp - Simple capture helper */ -#include +#include "capture.h" -#include "simple_capture.h" +#include using namespace libcamera; -SimpleCapture::SimpleCapture(std::shared_ptr camera) +Capture::Capture(std::shared_ptr camera) : loop_(nullptr), camera_(camera), allocator_(std::make_unique(camera)) { } -SimpleCapture::~SimpleCapture() +Capture::~Capture() { stop(); } -void SimpleCapture::configure(StreamRole role) +void Capture::configure(StreamRole role) { config_ = camera_->generateConfiguration({ role }); @@ -42,7 +42,7 @@ void SimpleCapture::configure(StreamRole role) } } -void SimpleCapture::start() +void Capture::start() { Stream *stream = config_->at(0).stream(); int count = allocator_->allocate(stream); @@ -50,12 +50,12 @@ void SimpleCapture::start() ASSERT_GE(count, 0) << "Failed to allocate buffers"; EXPECT_EQ(count, config_->at(0).bufferCount) << "Allocated less buffers than expected"; - camera_->requestCompleted.connect(this, &SimpleCapture::requestComplete); + camera_->requestCompleted.connect(this, &Capture::requestComplete); ASSERT_EQ(camera_->start(), 0) << "Failed to start camera"; } -void SimpleCapture::stop() +void Capture::stop() { if (!config_ || !allocator_->allocated()) return; @@ -69,14 +69,14 @@ void SimpleCapture::stop() allocator_->free(stream); } -/* SimpleCaptureBalanced */ +/* CaptureBalanced */ -SimpleCaptureBalanced::SimpleCaptureBalanced(std::shared_ptr camera) - : SimpleCapture(camera) +CaptureBalanced::CaptureBalanced(std::shared_ptr camera) + : Capture(camera) { } -void SimpleCaptureBalanced::capture(unsigned int numRequests) +void CaptureBalanced::capture(unsigned int numRequests) { start(); @@ -116,7 +116,7 @@ void SimpleCaptureBalanced::capture(unsigned int numRequests) ASSERT_EQ(captureCount_, captureLimit_); } -int SimpleCaptureBalanced::queueRequest(Request *request) +int CaptureBalanced::queueRequest(Request *request) { queueCount_++; if (queueCount_ > captureLimit_) @@ -125,7 +125,7 @@ int SimpleCaptureBalanced::queueRequest(Request *request) return camera_->queueRequest(request); } -void SimpleCaptureBalanced::requestComplete(Request *request) +void CaptureBalanced::requestComplete(Request *request) { EXPECT_EQ(request->status(), Request::Status::RequestComplete) << "Request didn't complete successfully"; @@ -141,14 +141,14 @@ void SimpleCaptureBalanced::requestComplete(Request *request) loop_->exit(-EINVAL); } -/* SimpleCaptureUnbalanced */ +/* CaptureUnbalanced */ -SimpleCaptureUnbalanced::SimpleCaptureUnbalanced(std::shared_ptr camera) - : SimpleCapture(camera) +CaptureUnbalanced::CaptureUnbalanced(std::shared_ptr camera) + : Capture(camera) { } -void SimpleCaptureUnbalanced::capture(unsigned int numRequests) +void CaptureUnbalanced::capture(unsigned int numRequests) { start(); @@ -179,7 +179,7 @@ void SimpleCaptureUnbalanced::capture(unsigned int numRequests) ASSERT_EQ(status, 0); } -void SimpleCaptureUnbalanced::requestComplete(Request *request) +void CaptureUnbalanced::requestComplete(Request *request) { captureCount_++; if (captureCount_ >= captureLimit_) { diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/helpers/capture.h similarity index 76% rename from src/apps/lc-compliance/simple_capture.h rename to src/apps/lc-compliance/helpers/capture.h index 2911d6019923..0574ab1c7ac7 100644 --- a/src/apps/lc-compliance/simple_capture.h +++ b/src/apps/lc-compliance/helpers/capture.h @@ -13,14 +13,14 @@ #include "../common/event_loop.h" -class SimpleCapture +class Capture { public: void configure(libcamera::StreamRole role); protected: - SimpleCapture(std::shared_ptr camera); - virtual ~SimpleCapture(); + Capture(std::shared_ptr camera); + virtual ~Capture(); void start(); void stop(); @@ -35,10 +35,10 @@ protected: std::vector> requests_; }; -class SimpleCaptureBalanced : public SimpleCapture +class CaptureBalanced : public Capture { public: - SimpleCaptureBalanced(std::shared_ptr camera); + CaptureBalanced(std::shared_ptr camera); void capture(unsigned int numRequests); @@ -51,10 +51,10 @@ private: unsigned int captureLimit_; }; -class SimpleCaptureUnbalanced : public SimpleCapture +class CaptureUnbalanced : public Capture { public: - SimpleCaptureUnbalanced(std::shared_ptr camera); + CaptureUnbalanced(std::shared_ptr camera); void capture(unsigned int numRequests); diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build index 2f07a50f171b..ae8c6f4db51b 100644 --- a/src/apps/lc-compliance/meson.build +++ b/src/apps/lc-compliance/meson.build @@ -11,10 +11,15 @@ endif lc_compliance_enabled = true lc_compliance_sources = files([ - 'capture_test.cpp', 'environment.cpp', + 'helpers/capture.cpp', 'main.cpp', - 'simple_capture.cpp', + 'tests/capture_test.cpp', +]) + +lc_compliance_includes = ([ + include_directories('.'), + include_directories('helpers/') ]) lc_compliance = executable('lc-compliance', lc_compliance_sources, @@ -26,5 +31,6 @@ lc_compliance = executable('lc-compliance', lc_compliance_sources, libevent, libgtest, ], + include_directories : lc_compliance_includes, install : true, install_tag : 'bin-devel') diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/tests/capture_test.cpp similarity index 95% rename from src/apps/lc-compliance/capture_test.cpp rename to src/apps/lc-compliance/tests/capture_test.cpp index 1dcfcf92fc8c..284d36307619 100644 --- a/src/apps/lc-compliance/capture_test.cpp +++ b/src/apps/lc-compliance/tests/capture_test.cpp @@ -6,12 +6,13 @@ * capture_test.cpp - Test camera capture */ +#include "capture.h" + #include #include #include "environment.h" -#include "simple_capture.h" using namespace libcamera; @@ -83,7 +84,7 @@ TEST_P(SingleStream, Capture) { auto [role, numRequests] = GetParam(); - SimpleCaptureBalanced capture(camera_); + CaptureBalanced capture(camera_); capture.configure(role); @@ -102,7 +103,7 @@ TEST_P(SingleStream, CaptureStartStop) auto [role, numRequests] = GetParam(); unsigned int numRepeats = 3; - SimpleCaptureBalanced capture(camera_); + CaptureBalanced capture(camera_); capture.configure(role); @@ -121,7 +122,7 @@ TEST_P(SingleStream, UnbalancedStop) { auto [role, numRequests] = GetParam(); - SimpleCaptureUnbalanced capture(camera_); + CaptureUnbalanced capture(camera_); capture.configure(role);