diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcamera/controls.cpp | 12 | ||||
-rw-r--r-- | src/libcamera/v4l2_controls.cpp | 9 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp index 34a8c8dd..0031cd06 100644 --- a/src/libcamera/controls.cpp +++ b/src/libcamera/controls.cpp @@ -357,10 +357,12 @@ Control<int64_t>::Control(unsigned int id, const char *name) * \brief Construct a ControlRange with minimum and maximum range parameters * \param[in] min The control minimum value * \param[in] max The control maximum value + * \param[in] def The control default value */ ControlRange::ControlRange(const ControlValue &min, - const ControlValue &max) - : min_(min), max_(max) + const ControlValue &max, + const ControlValue &def) + : min_(min), max_(max), def_(def) { } @@ -377,6 +379,12 @@ ControlRange::ControlRange(const ControlValue &min, */ /** + * \fn ControlRange::def() + * \brief Retrieve the default value of the control + * \return A ControlValue with the default value for the control + */ + +/** * \brief Provide a string representation of the ControlRange */ std::string ControlRange::toString() const diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp index b6547a7c..7446c388 100644 --- a/src/libcamera/v4l2_controls.cpp +++ b/src/libcamera/v4l2_controls.cpp @@ -121,17 +121,20 @@ V4L2ControlRange::V4L2ControlRange(const struct v4l2_query_ext_ctrl &ctrl) switch (ctrl.type) { case V4L2_CTRL_TYPE_BOOLEAN: ControlRange::operator=(ControlRange(static_cast<bool>(ctrl.minimum), - static_cast<bool>(ctrl.maximum))); + static_cast<bool>(ctrl.maximum), + static_cast<bool>(ctrl.default_value))); break; case V4L2_CTRL_TYPE_INTEGER64: ControlRange::operator=(ControlRange(static_cast<int64_t>(ctrl.minimum), - static_cast<int64_t>(ctrl.maximum))); + static_cast<int64_t>(ctrl.maximum), + static_cast<int64_t>(ctrl.default_value))); break; default: ControlRange::operator=(ControlRange(static_cast<int32_t>(ctrl.minimum), - static_cast<int32_t>(ctrl.maximum))); + static_cast<int32_t>(ctrl.maximum), + static_cast<int32_t>(ctrl.default_value))); break; } } |