summaryrefslogtreecommitdiff
path: root/src/libcamera/request.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-06 09:54:16 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-13 20:37:34 +0300
commita1c6b2b6419cdf82c623355725efd48ff169a675 (patch)
tree790fba07e2a66c2a0f9cc47e51c46f746c16f67e /src/libcamera/request.cpp
parent576b8aa079388d2151f396bb947cf0a8e5ba255e (diff)
libcamera: controls: Support accessing controls by numerical ID
The ControlList class has template get() and set() methods to get and set control values. The methods require a reference to a Control instance, which is only available when calling them with a hardcoded control. In order to support usage of ControlList for V4L2 controls, as well as serialisation and deserialisation of ControlList, we need a way to get and set control values based on a control numerical ID. Add new contains(), get() and set() overload methods to do so. As this change prepares the ControlList to be used for other objects than camera, update its documentation accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Tested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/libcamera/request.cpp')
-rw-r--r--src/libcamera/request.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index e800f144..c14ed1a4 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -11,6 +11,7 @@
#include <libcamera/buffer.h>
#include <libcamera/camera.h>
+#include <libcamera/control_ids.h>
#include <libcamera/stream.h>
#include "camera_controls.h"
@@ -64,12 +65,12 @@ Request::Request(Camera *camera, uint64_t cookie)
* creating a new instance for each request?
*/
validator_ = new CameraControlValidator(camera);
- controls_ = new ControlList(validator_);
+ controls_ = new ControlList(controls::controls, validator_);
/**
* \todo: Add a validator for metadata controls.
*/
- metadata_ = new ControlList();
+ metadata_ = new ControlList(controls::controls);
}
Request::~Request()