diff options
-rw-r--r-- | include/libcamera/internal/camera_sensor.h | 9 | ||||
-rw-r--r-- | include/libcamera/internal/camera_sensor_properties.h | 3 | ||||
-rw-r--r-- | src/libcamera/camera_sensor.cpp | 4 | ||||
-rw-r--r-- | src/libcamera/pipeline/ipu3/ipu3.cpp | 7 |
4 files changed, 14 insertions, 9 deletions
diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h index 788c2fa3..bb70ed9e 100644 --- a/include/libcamera/internal/camera_sensor.h +++ b/include/libcamera/internal/camera_sensor.h @@ -14,8 +14,10 @@ #include <libcamera/base/class.h> #include <libcamera/base/log.h> +#include <libcamera/control_ids.h> #include <libcamera/controls.h> #include <libcamera/geometry.h> + #include <libcamera/ipa/core_ipa_interface.h> #include "libcamera/internal/formats.h" @@ -41,7 +43,7 @@ public: const std::vector<unsigned int> &mbusCodes() const { return mbusCodes_; } const std::vector<Size> sizes(unsigned int mbusCode) const; Size resolution() const; - const std::vector<int32_t> &testPatternModes() const + const std::vector<controls::draft::TestPatternModeEnum> &testPatternModes() const { return testPatternModes_; } @@ -74,7 +76,8 @@ private: void initVimcDefaultProperties(); void initStaticProperties(); void initTestPatternModes( - const std::map<int32_t, int32_t> &testPatternModeMap); + const std::map<controls::draft::TestPatternModeEnum, int32_t> + &testPatternModeMap); int initProperties(); const MediaEntity *entity_; @@ -87,7 +90,7 @@ private: V4L2Subdevice::Formats formats_; std::vector<unsigned int> mbusCodes_; std::vector<Size> sizes_; - std::vector<int32_t> testPatternModes_; + std::vector<controls::draft::TestPatternModeEnum> testPatternModes_; Size pixelArraySize_; Rectangle activeArea_; diff --git a/include/libcamera/internal/camera_sensor_properties.h b/include/libcamera/internal/camera_sensor_properties.h index af381a12..1ee3cb99 100644 --- a/include/libcamera/internal/camera_sensor_properties.h +++ b/include/libcamera/internal/camera_sensor_properties.h @@ -10,6 +10,7 @@ #include <map> #include <string> +#include <libcamera/control_ids.h> #include <libcamera/geometry.h> namespace libcamera { @@ -18,7 +19,7 @@ struct CameraSensorProperties { static const CameraSensorProperties *get(const std::string &sensor); Size unitCellSize; - std::map<int32_t, int32_t> testPatternModes; + std::map<controls::draft::TestPatternModeEnum, int32_t> testPatternModes; }; } /* namespace libcamera */ diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp index 4c142a58..dc871abf 100644 --- a/src/libcamera/camera_sensor.cpp +++ b/src/libcamera/camera_sensor.cpp @@ -311,7 +311,7 @@ void CameraSensor::initStaticProperties() } void CameraSensor::initTestPatternModes( - const std::map<int32_t, int32_t> &testPatternModes) + const std::map<controls::draft::TestPatternModeEnum, int32_t> &testPatternModes) { const auto &v4l2TestPattern = controls().find(V4L2_CID_TEST_PATTERN); if (v4l2TestPattern == controls().end()) { @@ -327,7 +327,7 @@ void CameraSensor::initTestPatternModes( * control index is supported in the below for loop that creates the * list of supported test patterns. */ - std::map<int32_t, int32_t> indexToTestPatternMode; + std::map<int32_t, controls::draft::TestPatternModeEnum> indexToTestPatternMode; for (const auto &it : testPatternModes) indexToTestPatternMode[it.second] = it.first; diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 16380d20..e7cfc66a 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -983,13 +983,14 @@ int PipelineHandlerIPU3::updateControls(IPU3CameraData *data) return ret; ControlInfoMap::Map controls = IPU3Controls; - const std::vector<int32_t> &testPatternModes = sensor->testPatternModes(); + const std::vector<controls::draft::TestPatternModeEnum> + &testPatternModes = sensor->testPatternModes(); if (!testPatternModes.empty()) { std::vector<ControlValue> values; values.reserve(testPatternModes.size()); - for (int32_t pattern : testPatternModes) - values.emplace_back(pattern); + for (auto pattern : testPatternModes) + values.emplace_back(static_cast<int32_t>(pattern)); controls[&controls::draft::TestPatternMode] = ControlInfo(values); } |