From 77ae64eb24bf6c2fe241b6f7b841315b1ee15707 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Mon, 29 Apr 2019 15:15:23 +0300 Subject: libcamera: Refactor the camera configuration storage and API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor the CameraConfiguration structure to not rely on Stream instances. This is a step towards making the camera configuration object more powerful with configuration validation using "try" semantics. The CameraConfiguration now exposes a simple vector-like API to access the contained stream configurations. Both operator[]() and at() are provided to access elements. The isEmpty() method is renamed to empty() and the methods reordered to match the std::vector class. As applications need access to the Stream instances associated with the configuration entries in order to associate buffers with streams when creating requests, expose the stream selected by the pipeline handler through a new StreamConfiguration::stream(). Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Reviewed-by: Jacopo Mondi --- test/camera/capture.cpp | 4 ++-- test/camera/configuration_set.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'test/camera') diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp index e7e64382..bfd11eef 100644 --- a/test/camera/capture.cpp +++ b/test/camera/capture.cpp @@ -44,8 +44,7 @@ protected: { CameraConfiguration config = camera_->generateConfiguration({ StreamRole::VideoRecording }); - Stream *stream = config.front(); - StreamConfiguration *cfg = &config[stream]; + StreamConfiguration *cfg = &config[0]; if (!config.isValid()) { cout << "Failed to read default configuration" << endl; @@ -67,6 +66,7 @@ protected: return TestFail; } + Stream *stream = cfg->stream(); BufferPool &pool = stream->bufferPool(); std::vector requests; for (Buffer &buffer : pool.buffers()) { diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp index 76d8bc3e..25b5db67 100644 --- a/test/camera/configuration_set.cpp +++ b/test/camera/configuration_set.cpp @@ -20,7 +20,7 @@ protected: { CameraConfiguration config = camera_->generateConfiguration({ StreamRole::VideoRecording }); - StreamConfiguration *cfg = &config[config.front()]; + StreamConfiguration *cfg = &config[0]; if (!config.isValid()) { cout << "Failed to read default configuration" << endl; -- cgit v1.2.1