summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-09-28 00:40:51 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-04 19:33:08 +0300
commit224ef9776ac5be51f984780c761713027f2c6102 (patch)
tree3d626e0a4991c70e4b51b57abe0e821deb4a138b /src/libcamera/pipeline
parentc5dfd9d57eae881626a842c666cc6140b11bbba4 (diff)
libcamera: controls: Make ControlValue get/set accessors template methods
The ControlValue get accessors are implemented with functions of different names, whlie the set accessors use polymorphism to support different control types. This isn't very consistent and intuitive. Make the API clearer by using template methods. This will also have the added advantage that support for the new types will only require adding template specialisations, without adding new methods. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/libcamera/pipeline')
-rw-r--r--src/libcamera/pipeline/uvcvideo.cpp10
-rw-r--r--src/libcamera/pipeline/vimc.cpp6
2 files changed, 8 insertions, 8 deletions
diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp
index 89652105..81c548af 100644
--- a/src/libcamera/pipeline/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo.cpp
@@ -235,24 +235,24 @@ int PipelineHandlerUVC::processControls(UVCCameraData *data, Request *request)
switch (ci->id()) {
case Brightness:
- controls.add(V4L2_CID_BRIGHTNESS, value.getInt());
+ controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
break;
case Contrast:
- controls.add(V4L2_CID_CONTRAST, value.getInt());
+ controls.add(V4L2_CID_CONTRAST, value.get<int>());
break;
case Saturation:
- controls.add(V4L2_CID_SATURATION, value.getInt());
+ controls.add(V4L2_CID_SATURATION, value.get<int>());
break;
case ManualExposure:
controls.add(V4L2_CID_EXPOSURE_AUTO, 1);
- controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.getInt());
+ controls.add(V4L2_CID_EXPOSURE_ABSOLUTE, value.get<int>());
break;
case ManualGain:
- controls.add(V4L2_CID_GAIN, value.getInt());
+ controls.add(V4L2_CID_GAIN, value.get<int>());
break;
default:
diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
index f26a91f8..3e34e7a0 100644
--- a/src/libcamera/pipeline/vimc.cpp
+++ b/src/libcamera/pipeline/vimc.cpp
@@ -288,15 +288,15 @@ int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request)
switch (ci->id()) {
case Brightness:
- controls.add(V4L2_CID_BRIGHTNESS, value.getInt());
+ controls.add(V4L2_CID_BRIGHTNESS, value.get<int>());
break;
case Contrast:
- controls.add(V4L2_CID_CONTRAST, value.getInt());
+ controls.add(V4L2_CID_CONTRAST, value.get<int>());
break;
case Saturation:
- controls.add(V4L2_CID_SATURATION, value.getInt());
+ controls.add(V4L2_CID_SATURATION, value.get<int>());
break;
default: