@@ -57,24 +57,18 @@ constexpr Duration controllerMinFrameDuration = 1.0s / 30.0;
const ControlInfoMap::Map ipaControls{
/* \todo Move this to the Camera class */
{ &controls::AeEnable, ControlInfo(false, true, true) },
- { &controls::ExposureTimeMode,
- ControlInfo(static_cast<int32_t>(controls::ExposureTimeModeAuto),
- static_cast<int32_t>(controls::ExposureTimeModeManual),
- static_cast<int32_t>(controls::ExposureTimeModeAuto)) },
+ { &controls::ExposureTimeMode, ControlInfo(controls::ExposureTimeModeValues) },
{ &controls::ExposureTime,
ControlInfo(1, 66666, static_cast<int32_t>(defaultExposureTime.get<std::micro>())) },
- { &controls::AnalogueGainMode,
- ControlInfo(static_cast<int32_t>(controls::AnalogueGainModeAuto),
- static_cast<int32_t>(controls::AnalogueGainModeManual),
- static_cast<int32_t>(controls::AnalogueGainModeAuto)) },
+ { &controls::AnalogueGainMode, ControlInfo(controls::AnalogueGainModeValues) },
{ &controls::AnalogueGain, ControlInfo(1.0f, 16.0f, 1.0f) },
{ &controls::AeMeteringMode, ControlInfo(controls::AeMeteringModeValues) },
{ &controls::AeConstraintMode, ControlInfo(controls::AeConstraintModeValues) },
{ &controls::AeExposureMode, ControlInfo(controls::AeExposureModeValues) },
{ &controls::ExposureValue, ControlInfo(-8.0f, 8.0f, 0.0f) },
- { &controls::AeFlickerMode, ControlInfo(static_cast<int>(controls::FlickerOff),
- static_cast<int>(controls::FlickerManual),
- static_cast<int>(controls::FlickerOff)) },
+ { &controls::AeFlickerMode,
+ ControlInfo({ { ControlValue(controls::FlickerOff), ControlValue(controls::FlickerManual) } },
+ controls::FlickerOff) },
{ &controls::AeFlickerPeriod, ControlInfo(100, 1000000) },
{ &controls::Brightness, ControlInfo(-1.0f, 1.0f, 0.0f) },
{ &controls::Contrast, ControlInfo(0.0f, 32.0f, 1.0f) },
This is how uvcvideo and rkisp1 do it. See ee918b370a08b ("ipa: rkisp1: agc: Initialize enum controls with a list of values") for the motivation. In summary, having a list of values is used as a sign that the control is an enum in multiple places (e.g. `cam`, `camshark`). Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- src/ipa/rpi/common/ipa_base.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)