[libcamera-devel,21/21] POC: cam: Set random controls

Message ID 20190924172503.30864-22-jacopo@jmondi.org
State Superseded
Headers show
Series
  • Implement control serialization
Related show

Commit Message

Jacopo Mondi Sept. 24, 2019, 5:25 p.m. UTC
Set random values for 3 controls supporte by the VIMC camera.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 src/cam/capture.cpp | 12 ++++++++++++
 src/cam/capture.h   |  2 ++
 2 files changed, 14 insertions(+)

Patch

diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp
index 8a939c622703..ce655c683a78 100644
--- a/src/cam/capture.cpp
+++ b/src/cam/capture.cpp
@@ -7,6 +7,7 @@ 
 
 #include <chrono>
 #include <climits>
+#include <cstdlib>
 #include <iomanip>
 #include <iostream>
 #include <sstream>
@@ -114,6 +115,7 @@  int Capture::capture(EventLoop *loop)
 	}
 
 	for (Request *request : requests) {
+		setControls(request);
 		ret = camera_->queueRequest(request);
 		if (ret < 0) {
 			std::cerr << "Can't queue request" << std::endl;
@@ -188,5 +190,15 @@  void Capture::requestComplete(Request *request, const std::map<Stream *, Buffer
 		request->addBuffer(std::move(newBuffer));
 	}
 
+	setControls(request);
 	camera_->queueRequest(request);
 }
+
+void Capture::setControls(libcamera::Request *request)
+{
+	ControlList &controls = request->controls();
+
+	controls[Brightness] = rand() % 255;
+	controls[Saturation] = rand() % 500;
+	controls[Contrast] = rand() % 128;
+}
diff --git a/src/cam/capture.h b/src/cam/capture.h
index ee0dc4211111..b98cd37eff87 100644
--- a/src/cam/capture.h
+++ b/src/cam/capture.h
@@ -31,6 +31,8 @@  private:
 	void requestComplete(libcamera::Request *request,
 			     const std::map<libcamera::Stream *, libcamera::Buffer *> &buffers);
 
+	void setControls(libcamera::Request *request);
+
 	libcamera::Camera *camera_;
 	libcamera::CameraConfiguration *config_;