[{"id":28453,"web_url":"https://patchwork.libcamera.org/comment/28453/","msgid":"<170505971980.3044059.8908906962659889000@ping.linuxembedded.co.uk>","date":"2024-01-12T11:41:59","subject":"Re: [libcamera-devel] [PATCH v3 4/7] apps: lc-compliance:\n\tRe-organize source directory","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Jacopo Mondi via libcamera-devel (2023-12-30 16:29:09)\n> Before adding more tests and more helper classes to lc-compliance,\n> reorganize the source tree to split test and helpers in two separate\n> directories.\n> \n> While at it, rename the 'SimpleCapture' class and its derived classes to\n> just 'Capture'. Rename the source files accordingly.\n\nSounds reasonable. I expect there might be other 'capture' helpers in\nthe future too.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> Re-sort headers inclusions to please checkstyle.py too.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n>  .../capture.cpp}                              | 38 +++++++++----------\n>  .../{simple_capture.h => helpers/capture.h}   | 14 +++----\n>  src/apps/lc-compliance/meson.build            | 10 ++++-\n>  .../{ => tests}/capture_test.cpp              |  9 +++--\n>  4 files changed, 39 insertions(+), 32 deletions(-)\n>  rename src/apps/lc-compliance/{simple_capture.cpp => helpers/capture.cpp} (81%)\n>  rename src/apps/lc-compliance/{simple_capture.h => helpers/capture.h} (76%)\n>  rename src/apps/lc-compliance/{ => tests}/capture_test.cpp (95%)\n> \n> diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp\n> similarity index 81%\n> rename from src/apps/lc-compliance/simple_capture.cpp\n> rename to src/apps/lc-compliance/helpers/capture.cpp\n> index 545b444c2593..5aab973f0392 100644\n> --- a/src/apps/lc-compliance/simple_capture.cpp\n> +++ b/src/apps/lc-compliance/helpers/capture.cpp\n> @@ -5,24 +5,24 @@\n>   * simple_capture.cpp - Simple capture helper\n>   */\n>  \n> -#include <gtest/gtest.h>\n> +#include \"capture.h\"\n>  \n> -#include \"simple_capture.h\"\n> +#include <gtest/gtest.h>\n>  \n>  using namespace libcamera;\n>  \n> -SimpleCapture::SimpleCapture(std::shared_ptr<Camera> camera)\n> +Capture::Capture(std::shared_ptr<Camera> camera)\n>         : loop_(nullptr), camera_(camera),\n>           allocator_(std::make_unique<FrameBufferAllocator>(camera))\n>  {\n>  }\n>  \n> -SimpleCapture::~SimpleCapture()\n> +Capture::~Capture()\n>  {\n>         stop();\n>  }\n>  \n> -void SimpleCapture::configure(StreamRole role)\n> +void Capture::configure(StreamRole role)\n>  {\n>         config_ = camera_->generateConfiguration({ role });\n>  \n> @@ -42,7 +42,7 @@ void SimpleCapture::configure(StreamRole role)\n>         }\n>  }\n>  \n> -void SimpleCapture::start()\n> +void Capture::start()\n>  {\n>         Stream *stream = config_->at(0).stream();\n>         int count = allocator_->allocate(stream);\n> @@ -50,12 +50,12 @@ void SimpleCapture::start()\n>         ASSERT_GE(count, 0) << \"Failed to allocate buffers\";\n>         EXPECT_EQ(count, config_->at(0).bufferCount) << \"Allocated less buffers than expected\";\n>  \n> -       camera_->requestCompleted.connect(this, &SimpleCapture::requestComplete);\n> +       camera_->requestCompleted.connect(this, &Capture::requestComplete);\n>  \n>         ASSERT_EQ(camera_->start(), 0) << \"Failed to start camera\";\n>  }\n>  \n> -void SimpleCapture::stop()\n> +void Capture::stop()\n>  {\n>         if (!config_ || !allocator_->allocated())\n>                 return;\n> @@ -69,14 +69,14 @@ void SimpleCapture::stop()\n>         allocator_->free(stream);\n>  }\n>  \n> -/* SimpleCaptureBalanced */\n> +/* CaptureBalanced */\n>  \n> -SimpleCaptureBalanced::SimpleCaptureBalanced(std::shared_ptr<Camera> camera)\n> -       : SimpleCapture(camera)\n> +CaptureBalanced::CaptureBalanced(std::shared_ptr<Camera> camera)\n> +       : Capture(camera)\n>  {\n>  }\n>  \n> -void SimpleCaptureBalanced::capture(unsigned int numRequests)\n> +void CaptureBalanced::capture(unsigned int numRequests)\n>  {\n>         start();\n>  \n> @@ -116,7 +116,7 @@ void SimpleCaptureBalanced::capture(unsigned int numRequests)\n>         ASSERT_EQ(captureCount_, captureLimit_);\n>  }\n>  \n> -int SimpleCaptureBalanced::queueRequest(Request *request)\n> +int CaptureBalanced::queueRequest(Request *request)\n>  {\n>         queueCount_++;\n>         if (queueCount_ > captureLimit_)\n> @@ -125,7 +125,7 @@ int SimpleCaptureBalanced::queueRequest(Request *request)\n>         return camera_->queueRequest(request);\n>  }\n>  \n> -void SimpleCaptureBalanced::requestComplete(Request *request)\n> +void CaptureBalanced::requestComplete(Request *request)\n>  {\n>         EXPECT_EQ(request->status(), Request::Status::RequestComplete)\n>                 << \"Request didn't complete successfully\";\n> @@ -141,14 +141,14 @@ void SimpleCaptureBalanced::requestComplete(Request *request)\n>                 loop_->exit(-EINVAL);\n>  }\n>  \n> -/* SimpleCaptureUnbalanced */\n> +/* CaptureUnbalanced */\n>  \n> -SimpleCaptureUnbalanced::SimpleCaptureUnbalanced(std::shared_ptr<Camera> camera)\n> -       : SimpleCapture(camera)\n> +CaptureUnbalanced::CaptureUnbalanced(std::shared_ptr<Camera> camera)\n> +       : Capture(camera)\n>  {\n>  }\n>  \n> -void SimpleCaptureUnbalanced::capture(unsigned int numRequests)\n> +void CaptureUnbalanced::capture(unsigned int numRequests)\n>  {\n>         start();\n>  \n> @@ -179,7 +179,7 @@ void SimpleCaptureUnbalanced::capture(unsigned int numRequests)\n>         ASSERT_EQ(status, 0);\n>  }\n>  \n> -void SimpleCaptureUnbalanced::requestComplete(Request *request)\n> +void CaptureUnbalanced::requestComplete(Request *request)\n>  {\n>         captureCount_++;\n>         if (captureCount_ >= captureLimit_) {\n> diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/helpers/capture.h\n> similarity index 76%\n> rename from src/apps/lc-compliance/simple_capture.h\n> rename to src/apps/lc-compliance/helpers/capture.h\n> index 2911d6019923..0574ab1c7ac7 100644\n> --- a/src/apps/lc-compliance/simple_capture.h\n> +++ b/src/apps/lc-compliance/helpers/capture.h\n> @@ -13,14 +13,14 @@\n>  \n>  #include \"../common/event_loop.h\"\n>  \n> -class SimpleCapture\n> +class Capture\n>  {\n>  public:\n>         void configure(libcamera::StreamRole role);\n>  \n>  protected:\n> -       SimpleCapture(std::shared_ptr<libcamera::Camera> camera);\n> -       virtual ~SimpleCapture();\n> +       Capture(std::shared_ptr<libcamera::Camera> camera);\n> +       virtual ~Capture();\n>  \n>         void start();\n>         void stop();\n> @@ -35,10 +35,10 @@ protected:\n>         std::vector<std::unique_ptr<libcamera::Request>> requests_;\n>  };\n>  \n> -class SimpleCaptureBalanced : public SimpleCapture\n> +class CaptureBalanced : public Capture\n>  {\n>  public:\n> -       SimpleCaptureBalanced(std::shared_ptr<libcamera::Camera> camera);\n> +       CaptureBalanced(std::shared_ptr<libcamera::Camera> camera);\n>  \n>         void capture(unsigned int numRequests);\n>  \n> @@ -51,10 +51,10 @@ private:\n>         unsigned int captureLimit_;\n>  };\n>  \n> -class SimpleCaptureUnbalanced : public SimpleCapture\n> +class CaptureUnbalanced : public Capture\n>  {\n>  public:\n> -       SimpleCaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);\n> +       CaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);\n>  \n>         void capture(unsigned int numRequests);\n>  \n> diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build\n> index 2f07a50f171b..ae8c6f4db51b 100644\n> --- a/src/apps/lc-compliance/meson.build\n> +++ b/src/apps/lc-compliance/meson.build\n> @@ -11,10 +11,15 @@ endif\n>  lc_compliance_enabled = true\n>  \n>  lc_compliance_sources = files([\n> -    'capture_test.cpp',\n>      'environment.cpp',\n> +    'helpers/capture.cpp',\n>      'main.cpp',\n> -    'simple_capture.cpp',\n> +    'tests/capture_test.cpp',\n> +])\n> +\n> +lc_compliance_includes = ([\n> +    include_directories('.'),\n> +    include_directories('helpers/')\n>  ])\n>  \n>  lc_compliance  = executable('lc-compliance', lc_compliance_sources,\n> @@ -26,5 +31,6 @@ lc_compliance  = executable('lc-compliance', lc_compliance_sources,\n>                                  libevent,\n>                                  libgtest,\n>                              ],\n> +                            include_directories : lc_compliance_includes,\n>                              install : true,\n>                              install_tag : 'bin-devel')\n> diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/tests/capture_test.cpp\n> similarity index 95%\n> rename from src/apps/lc-compliance/capture_test.cpp\n> rename to src/apps/lc-compliance/tests/capture_test.cpp\n> index 1dcfcf92fc8c..284d36307619 100644\n> --- a/src/apps/lc-compliance/capture_test.cpp\n> +++ b/src/apps/lc-compliance/tests/capture_test.cpp\n> @@ -6,12 +6,13 @@\n>   * capture_test.cpp - Test camera capture\n>   */\n>  \n> +#include \"capture.h\"\n> +\n>  #include <iostream>\n>  \n>  #include <gtest/gtest.h>\n>  \n>  #include \"environment.h\"\n> -#include \"simple_capture.h\"\n>  \n>  using namespace libcamera;\n>  \n> @@ -83,7 +84,7 @@ TEST_P(SingleStream, Capture)\n>  {\n>         auto [role, numRequests] = GetParam();\n>  \n> -       SimpleCaptureBalanced capture(camera_);\n> +       CaptureBalanced capture(camera_);\n>  \n>         capture.configure(role);\n>  \n> @@ -102,7 +103,7 @@ TEST_P(SingleStream, CaptureStartStop)\n>         auto [role, numRequests] = GetParam();\n>         unsigned int numRepeats = 3;\n>  \n> -       SimpleCaptureBalanced capture(camera_);\n> +       CaptureBalanced capture(camera_);\n>  \n>         capture.configure(role);\n>  \n> @@ -121,7 +122,7 @@ TEST_P(SingleStream, UnbalancedStop)\n>  {\n>         auto [role, numRequests] = GetParam();\n>  \n> -       SimpleCaptureUnbalanced capture(camera_);\n> +       CaptureUnbalanced capture(camera_);\n>  \n>         capture.configure(role);\n>  \n> -- \n> 2.41.0\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id AF1F9BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Jan 2024 11:42:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 63ABB61E17;\n\tFri, 12 Jan 2024 12:42:04 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3B16061E17\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Jan 2024 12:42:02 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 32C487FC;\n\tFri, 12 Jan 2024 12:40:56 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1705059724;\n\tbh=zY1lqlLnUT+UwpB/9gXPqpD72Ws72XiBaYoSoJjtctQ=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=CalQjiUxj6iPHbBI12c0fk2geTE1pGGicpTbid577FLc4jmOY0DP3LoMfj+4zypGn\n\t0VkuBhEYJRio0bV7R/rmT7N4+YDViJCMYiuAgmYdG4yfizVV8+UjPf00eN273UJ5cP\n\tgvsurAGqX0urz4AQUAllzwfg0ETXKj58n97typs0oA9rOcorL2AZcJnLH2HlWZZHJe\n\tJORiY6uBIKYOpG2H7SKRO6detBDlti4+tppsb2Bcuso60ZbrXoPxvKWMfMqD1IixMS\n\tvTd+Rn/HxQ6mzbs5S5ZO4ATLKu5eOiXdugTSgHhWOU30KFq3EhjKMPFQNvwf0eTxcv\n\tpzEp5lXWMo2EQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705059656;\n\tbh=zY1lqlLnUT+UwpB/9gXPqpD72Ws72XiBaYoSoJjtctQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ttoB61z/JbKb4lp7VtMk9d2F+nI0rJwT0OXMgBe9Yd3VHP78S2gBJ3Qtl8t1Hp6mX\n\tJzuGjy3cKWsivTiuPFBrJFIBiqtwwHBhokNEWmA2uzl+QP5cNBeGVDRVcXyhZoeetJ\n\tXEXaeLjKSySFgB43zcbZPUjBy2ZUj/gV5K578Gvo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ttoB61z/\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20231230162912.827669-5-jacopo.mondi@ideasonboard.com>","References":"<20231230162912.827669-1-jacopo.mondi@ideasonboard.com>\n\t<20231230162912.827669-5-jacopo.mondi@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 12 Jan 2024 11:41:59 +0000","Message-ID":"<170505971980.3044059.8908906962659889000@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v3 4/7] apps: lc-compliance:\n\tRe-organize source directory","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28981,"web_url":"https://patchwork.libcamera.org/comment/28981/","msgid":"<20240315115404.24yffxonefridzcf@jasper>","date":"2024-03-15T11:54:04","subject":"Re: [libcamera-devel] [PATCH v3 4/7] apps: lc-compliance:\n\tRe-organize source directory","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Jacopo,\n\nthanks for the patch. Had I known that before... :-)\n\nOn Sat, Dec 30, 2023 at 05:29:09PM +0100, Jacopo Mondi wrote:\n> Before adding more tests and more helper classes to lc-compliance,\n> reorganize the source tree to split test and helpers in two separate\n> directories.\n> \n> While at it, rename the 'SimpleCapture' class and its derived classes to\n> just 'Capture'. Rename the source files accordingly.\n> \n> Re-sort headers inclusions to please checkstyle.py too.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nlook all good to me.\n\nReviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> \nTested-by: Stefan Klug <stefan.klug@ideasonboard.com> \n\nCheers,\nStefan\n\n> ---\n>  .../capture.cpp}                              | 38 +++++++++----------\n>  .../{simple_capture.h => helpers/capture.h}   | 14 +++----\n>  src/apps/lc-compliance/meson.build            | 10 ++++-\n>  .../{ => tests}/capture_test.cpp              |  9 +++--\n>  4 files changed, 39 insertions(+), 32 deletions(-)\n>  rename src/apps/lc-compliance/{simple_capture.cpp => helpers/capture.cpp} (81%)\n>  rename src/apps/lc-compliance/{simple_capture.h => helpers/capture.h} (76%)\n>  rename src/apps/lc-compliance/{ => tests}/capture_test.cpp (95%)\n> \n> diff --git a/src/apps/lc-compliance/simple_capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp\n> similarity index 81%\n> rename from src/apps/lc-compliance/simple_capture.cpp\n> rename to src/apps/lc-compliance/helpers/capture.cpp\n> index 545b444c2593..5aab973f0392 100644\n> --- a/src/apps/lc-compliance/simple_capture.cpp\n> +++ b/src/apps/lc-compliance/helpers/capture.cpp\n> @@ -5,24 +5,24 @@\n>   * simple_capture.cpp - Simple capture helper\n>   */\n>  \n> -#include <gtest/gtest.h>\n> +#include \"capture.h\"\n>  \n> -#include \"simple_capture.h\"\n> +#include <gtest/gtest.h>\n>  \n>  using namespace libcamera;\n>  \n> -SimpleCapture::SimpleCapture(std::shared_ptr<Camera> camera)\n> +Capture::Capture(std::shared_ptr<Camera> camera)\n>  \t: loop_(nullptr), camera_(camera),\n>  \t  allocator_(std::make_unique<FrameBufferAllocator>(camera))\n>  {\n>  }\n>  \n> -SimpleCapture::~SimpleCapture()\n> +Capture::~Capture()\n>  {\n>  \tstop();\n>  }\n>  \n> -void SimpleCapture::configure(StreamRole role)\n> +void Capture::configure(StreamRole role)\n>  {\n>  \tconfig_ = camera_->generateConfiguration({ role });\n>  \n> @@ -42,7 +42,7 @@ void SimpleCapture::configure(StreamRole role)\n>  \t}\n>  }\n>  \n> -void SimpleCapture::start()\n> +void Capture::start()\n>  {\n>  \tStream *stream = config_->at(0).stream();\n>  \tint count = allocator_->allocate(stream);\n> @@ -50,12 +50,12 @@ void SimpleCapture::start()\n>  \tASSERT_GE(count, 0) << \"Failed to allocate buffers\";\n>  \tEXPECT_EQ(count, config_->at(0).bufferCount) << \"Allocated less buffers than expected\";\n>  \n> -\tcamera_->requestCompleted.connect(this, &SimpleCapture::requestComplete);\n> +\tcamera_->requestCompleted.connect(this, &Capture::requestComplete);\n>  \n>  \tASSERT_EQ(camera_->start(), 0) << \"Failed to start camera\";\n>  }\n>  \n> -void SimpleCapture::stop()\n> +void Capture::stop()\n>  {\n>  \tif (!config_ || !allocator_->allocated())\n>  \t\treturn;\n> @@ -69,14 +69,14 @@ void SimpleCapture::stop()\n>  \tallocator_->free(stream);\n>  }\n>  \n> -/* SimpleCaptureBalanced */\n> +/* CaptureBalanced */\n>  \n> -SimpleCaptureBalanced::SimpleCaptureBalanced(std::shared_ptr<Camera> camera)\n> -\t: SimpleCapture(camera)\n> +CaptureBalanced::CaptureBalanced(std::shared_ptr<Camera> camera)\n> +\t: Capture(camera)\n>  {\n>  }\n>  \n> -void SimpleCaptureBalanced::capture(unsigned int numRequests)\n> +void CaptureBalanced::capture(unsigned int numRequests)\n>  {\n>  \tstart();\n>  \n> @@ -116,7 +116,7 @@ void SimpleCaptureBalanced::capture(unsigned int numRequests)\n>  \tASSERT_EQ(captureCount_, captureLimit_);\n>  }\n>  \n> -int SimpleCaptureBalanced::queueRequest(Request *request)\n> +int CaptureBalanced::queueRequest(Request *request)\n>  {\n>  \tqueueCount_++;\n>  \tif (queueCount_ > captureLimit_)\n> @@ -125,7 +125,7 @@ int SimpleCaptureBalanced::queueRequest(Request *request)\n>  \treturn camera_->queueRequest(request);\n>  }\n>  \n> -void SimpleCaptureBalanced::requestComplete(Request *request)\n> +void CaptureBalanced::requestComplete(Request *request)\n>  {\n>  \tEXPECT_EQ(request->status(), Request::Status::RequestComplete)\n>  \t\t<< \"Request didn't complete successfully\";\n> @@ -141,14 +141,14 @@ void SimpleCaptureBalanced::requestComplete(Request *request)\n>  \t\tloop_->exit(-EINVAL);\n>  }\n>  \n> -/* SimpleCaptureUnbalanced */\n> +/* CaptureUnbalanced */\n>  \n> -SimpleCaptureUnbalanced::SimpleCaptureUnbalanced(std::shared_ptr<Camera> camera)\n> -\t: SimpleCapture(camera)\n> +CaptureUnbalanced::CaptureUnbalanced(std::shared_ptr<Camera> camera)\n> +\t: Capture(camera)\n>  {\n>  }\n>  \n> -void SimpleCaptureUnbalanced::capture(unsigned int numRequests)\n> +void CaptureUnbalanced::capture(unsigned int numRequests)\n>  {\n>  \tstart();\n>  \n> @@ -179,7 +179,7 @@ void SimpleCaptureUnbalanced::capture(unsigned int numRequests)\n>  \tASSERT_EQ(status, 0);\n>  }\n>  \n> -void SimpleCaptureUnbalanced::requestComplete(Request *request)\n> +void CaptureUnbalanced::requestComplete(Request *request)\n>  {\n>  \tcaptureCount_++;\n>  \tif (captureCount_ >= captureLimit_) {\n> diff --git a/src/apps/lc-compliance/simple_capture.h b/src/apps/lc-compliance/helpers/capture.h\n> similarity index 76%\n> rename from src/apps/lc-compliance/simple_capture.h\n> rename to src/apps/lc-compliance/helpers/capture.h\n> index 2911d6019923..0574ab1c7ac7 100644\n> --- a/src/apps/lc-compliance/simple_capture.h\n> +++ b/src/apps/lc-compliance/helpers/capture.h\n> @@ -13,14 +13,14 @@\n>  \n>  #include \"../common/event_loop.h\"\n>  \n> -class SimpleCapture\n> +class Capture\n>  {\n>  public:\n>  \tvoid configure(libcamera::StreamRole role);\n>  \n>  protected:\n> -\tSimpleCapture(std::shared_ptr<libcamera::Camera> camera);\n> -\tvirtual ~SimpleCapture();\n> +\tCapture(std::shared_ptr<libcamera::Camera> camera);\n> +\tvirtual ~Capture();\n>  \n>  \tvoid start();\n>  \tvoid stop();\n> @@ -35,10 +35,10 @@ protected:\n>  \tstd::vector<std::unique_ptr<libcamera::Request>> requests_;\n>  };\n>  \n> -class SimpleCaptureBalanced : public SimpleCapture\n> +class CaptureBalanced : public Capture\n>  {\n>  public:\n> -\tSimpleCaptureBalanced(std::shared_ptr<libcamera::Camera> camera);\n> +\tCaptureBalanced(std::shared_ptr<libcamera::Camera> camera);\n>  \n>  \tvoid capture(unsigned int numRequests);\n>  \n> @@ -51,10 +51,10 @@ private:\n>  \tunsigned int captureLimit_;\n>  };\n>  \n> -class SimpleCaptureUnbalanced : public SimpleCapture\n> +class CaptureUnbalanced : public Capture\n>  {\n>  public:\n> -\tSimpleCaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);\n> +\tCaptureUnbalanced(std::shared_ptr<libcamera::Camera> camera);\n>  \n>  \tvoid capture(unsigned int numRequests);\n>  \n> diff --git a/src/apps/lc-compliance/meson.build b/src/apps/lc-compliance/meson.build\n> index 2f07a50f171b..ae8c6f4db51b 100644\n> --- a/src/apps/lc-compliance/meson.build\n> +++ b/src/apps/lc-compliance/meson.build\n> @@ -11,10 +11,15 @@ endif\n>  lc_compliance_enabled = true\n>  \n>  lc_compliance_sources = files([\n> -    'capture_test.cpp',\n>      'environment.cpp',\n> +    'helpers/capture.cpp',\n>      'main.cpp',\n> -    'simple_capture.cpp',\n> +    'tests/capture_test.cpp',\n> +])\n> +\n> +lc_compliance_includes = ([\n> +    include_directories('.'),\n> +    include_directories('helpers/')\n>  ])\n>  \n>  lc_compliance  = executable('lc-compliance', lc_compliance_sources,\n> @@ -26,5 +31,6 @@ lc_compliance  = executable('lc-compliance', lc_compliance_sources,\n>                                  libevent,\n>                                  libgtest,\n>                              ],\n> +                            include_directories : lc_compliance_includes,\n>                              install : true,\n>                              install_tag : 'bin-devel')\n> diff --git a/src/apps/lc-compliance/capture_test.cpp b/src/apps/lc-compliance/tests/capture_test.cpp\n> similarity index 95%\n> rename from src/apps/lc-compliance/capture_test.cpp\n> rename to src/apps/lc-compliance/tests/capture_test.cpp\n> index 1dcfcf92fc8c..284d36307619 100644\n> --- a/src/apps/lc-compliance/capture_test.cpp\n> +++ b/src/apps/lc-compliance/tests/capture_test.cpp\n> @@ -6,12 +6,13 @@\n>   * capture_test.cpp - Test camera capture\n>   */\n>  \n> +#include \"capture.h\"\n> +\n>  #include <iostream>\n>  \n>  #include <gtest/gtest.h>\n>  \n>  #include \"environment.h\"\n> -#include \"simple_capture.h\"\n>  \n>  using namespace libcamera;\n>  \n> @@ -83,7 +84,7 @@ TEST_P(SingleStream, Capture)\n>  {\n>  \tauto [role, numRequests] = GetParam();\n>  \n> -\tSimpleCaptureBalanced capture(camera_);\n> +\tCaptureBalanced capture(camera_);\n>  \n>  \tcapture.configure(role);\n>  \n> @@ -102,7 +103,7 @@ TEST_P(SingleStream, CaptureStartStop)\n>  \tauto [role, numRequests] = GetParam();\n>  \tunsigned int numRepeats = 3;\n>  \n> -\tSimpleCaptureBalanced capture(camera_);\n> +\tCaptureBalanced capture(camera_);\n>  \n>  \tcapture.configure(role);\n>  \n> @@ -121,7 +122,7 @@ TEST_P(SingleStream, UnbalancedStop)\n>  {\n>  \tauto [role, numRequests] = GetParam();\n>  \n> -\tSimpleCaptureUnbalanced capture(camera_);\n> +\tCaptureUnbalanced capture(camera_);\n>  \n>  \tcapture.configure(role);\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 9CA41BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Mar 2024 11:54:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A5D2662C8C;\n\tFri, 15 Mar 2024 12:54:09 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 804E761C65\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Mar 2024 12:54:07 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:c477:4921:2179:342c])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 74CEE667;\n\tFri, 15 Mar 2024 12:53:43 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"u7JxQUxu\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1710503623;\n\tbh=zmKhKPAISIJEASYRqUn4b6I8sWCVfs45wN/EFnJDakA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=u7JxQUxuiB3fnnZBEGhQVV8RpuJmZnLUpeBPn9MPSO+y3q+4g0LolLnj9isBOOJT2\n\tEusuZ119ojLaR0cgr65EwAhMsaSK2clbtR3rpSNqAlP3tl8VEVFgwoI+EeZAiEg0Ps\n\twOKr2SH6h3w7gAt+nIO8PTBzce4IJVNgIzLT4WZk=","Date":"Fri, 15 Mar 2024 12:54:04 +0100","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 4/7] apps: lc-compliance:\n\tRe-organize source directory","Message-ID":"<20240315115404.24yffxonefridzcf@jasper>","References":"<20231230162912.827669-1-jacopo.mondi@ideasonboard.com>\n\t<20231230162912.827669-5-jacopo.mondi@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20231230162912.827669-5-jacopo.mondi@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]