summaryrefslogtreecommitdiff
path: root/src/libcamera/camera_controls.cpp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-09-28 02:45:02 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-05 20:02:51 +0300
commitf671d84ceb491fdb07ad39d1fe20950fd6482e4f (patch)
tree12ba1aafc8d27adca79fcdd976489e8e5e10e0c6 /src/libcamera/camera_controls.cpp
parentaae2b5d6665f7878f234d4ce19de04e81154354e (diff)
libcamera: Add ControlValidator implementation for Camera
Add a new CameraControlValidator class that implements the ControlValidator interface for a Camera object. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/libcamera/camera_controls.cpp')
-rw-r--r--src/libcamera/camera_controls.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/libcamera/camera_controls.cpp b/src/libcamera/camera_controls.cpp
new file mode 100644
index 00000000..341da560
--- /dev/null
+++ b/src/libcamera/camera_controls.cpp
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * camera_controls.cpp - Camera controls
+ */
+
+#include "camera_controls.h"
+
+#include <libcamera/camera.h>
+#include <libcamera/controls.h>
+
+/**
+ * \file camera_controls.h
+ * \brief Controls for Camera instances
+ */
+
+namespace libcamera {
+
+/**
+ * \class CameraControlValidator
+ * \brief A control validator for Camera instances
+ *
+ * This ControlValidator specialisation validates that controls exist in the
+ * Camera associated with the validator.
+ */
+
+/**
+ * \brief Construst a CameraControlValidator for the \a camera
+ * \param[in] camera The camera
+ */
+CameraControlValidator::CameraControlValidator(Camera *camera)
+ : camera_(camera)
+{
+}
+
+const std::string &CameraControlValidator::name() const
+{
+ return camera_->name();
+}
+
+/**
+ * \brief Validate a control
+ * \param[in] id The control ID
+ * \return True if the control is valid, false otherwise
+ */
+bool CameraControlValidator::validate(const ControlId &id) const
+{
+ const ControlInfoMap &controls = camera_->controls();
+ return controls.find(&id) != controls.end();
+}
+
+} /* namespace libcamera */