summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/internal/camera_sensor.h9
-rw-r--r--include/libcamera/internal/camera_sensor_properties.h3
-rw-r--r--src/libcamera/camera_sensor.cpp4
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp7
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);
}