| Message ID | 20261029125844.170324-22-barnabas.pocze@ideasonboard.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Hi Barnabás On Thu, Oct 29, 2026 at 01:58:41PM +0100, Barnabás Pőcze wrote: > Move the setup of common controls to the end of `configure()`, so > that it happens after everything has been configured and calculated. > > Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > --- > src/ipa/libipa/agc.cpp | 82 +++++++++++++++++++++--------------------- > 1 file changed, 41 insertions(+), 41 deletions(-) > > diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp > index 59362409d8..d95daef941 100644 > --- a/src/ipa/libipa/agc.cpp > +++ b/src/ipa/libipa/agc.cpp > @@ -682,47 +682,6 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state, > config.ctrlMap.erase(&controls::AeConstraintMode); > config.ctrlMap.erase(&controls::AeExposureMode); > > - /* \todo Move this to the `Camera` class. */ > - config.ctrlMap[&controls::AeEnable] = ControlInfo{ > - false, session.autoAllowed, session.autoAllowed > - }; > - config.ctrlMap[&controls::AnalogueGain] = ControlInfo{ > - minGain, maxGain, defGain > - }; > - config.ctrlMap[&controls::ExposureTime] = ControlInfo{ > - static_cast<int32_t>(minExposure * lineDurationUs), > - static_cast<int32_t>(maxExposure * lineDurationUs), > - static_cast<int32_t>(defExposure * lineDurationUs), > - }; > - config.ctrlMap[&controls::FrameDurationLimits] = ControlInfo{ > - static_cast<int64_t>(session.minFrameDuration.get<std::micro>()), > - static_cast<int64_t>(session.maxFrameDuration.get<std::micro>()), > - std::span<const int64_t, 2>{ { > - static_cast<int64_t>(state.minFrameDuration.get<std::micro>()), > - static_cast<int64_t>(state.maxFrameDuration.get<std::micro>()), > - } }, > - }; > - > - const auto add = [&](const ControlId &cid, const auto &automatic, const auto &manual) { > - std::array<ControlValue, 2> values; > - size_t count = 0; > - > - if (session.autoAllowed) > - values[count++] = ControlValue(automatic); > - > - values[count++] = ControlValue(manual); > - > - config.ctrlMap[&cid] = ControlInfo{ > - { values.data(), count }, > - ControlValue(session.autoAllowed ? automatic : manual), > - }; > - }; > - > - add(controls::ExposureTimeMode, > - controls::ExposureTimeModeAuto, controls::ExposureTimeModeManual); > - add(controls::AnalogueGainMode, > - controls::AnalogueGainModeAuto, controls::AnalogueGainModeManual); > - > std::visit(utils::overloaded{ > [&](AgcMSV &) { > /* No constraint mode support. */ > @@ -769,6 +728,47 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state, > }, > }, impl_); > > + /* \todo Move this to the `Camera` class. */ > + config.ctrlMap[&controls::AeEnable] = ControlInfo{ > + false, session.autoAllowed, session.autoAllowed > + }; > + config.ctrlMap[&controls::AnalogueGain] = ControlInfo{ > + minGain, maxGain, defGain > + }; > + config.ctrlMap[&controls::ExposureTime] = ControlInfo{ > + static_cast<int32_t>(minExposure * lineDurationUs), > + static_cast<int32_t>(maxExposure * lineDurationUs), > + static_cast<int32_t>(defExposure * lineDurationUs), > + }; > + config.ctrlMap[&controls::FrameDurationLimits] = ControlInfo{ > + static_cast<int64_t>(session.minFrameDuration.get<std::micro>()), > + static_cast<int64_t>(session.maxFrameDuration.get<std::micro>()), > + std::span<const int64_t, 2>{ { > + static_cast<int64_t>(state.minFrameDuration.get<std::micro>()), > + static_cast<int64_t>(state.maxFrameDuration.get<std::micro>()), > + } }, > + }; > + > + const auto add = [&](const ControlId &cid, const auto &automatic, const auto &manual) { > + std::array<ControlValue, 2> values; > + size_t count = 0; > + > + if (session.autoAllowed) > + values[count++] = ControlValue(automatic); > + > + values[count++] = ControlValue(manual); > + > + config.ctrlMap[&cid] = ControlInfo{ > + { values.data(), count }, > + ControlValue(session.autoAllowed ? automatic : manual), > + }; > + }; > + > + add(controls::ExposureTimeMode, > + controls::ExposureTimeModeAuto, controls::ExposureTimeModeManual); > + add(controls::AnalogueGainMode, > + controls::AnalogueGainModeAuto, controls::AnalogueGainModeManual); > + > return 0; > } > > -- > 2.56.0 >
diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp index 59362409d8..d95daef941 100644 --- a/src/ipa/libipa/agc.cpp +++ b/src/ipa/libipa/agc.cpp @@ -682,47 +682,6 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state, config.ctrlMap.erase(&controls::AeConstraintMode); config.ctrlMap.erase(&controls::AeExposureMode); - /* \todo Move this to the `Camera` class. */ - config.ctrlMap[&controls::AeEnable] = ControlInfo{ - false, session.autoAllowed, session.autoAllowed - }; - config.ctrlMap[&controls::AnalogueGain] = ControlInfo{ - minGain, maxGain, defGain - }; - config.ctrlMap[&controls::ExposureTime] = ControlInfo{ - static_cast<int32_t>(minExposure * lineDurationUs), - static_cast<int32_t>(maxExposure * lineDurationUs), - static_cast<int32_t>(defExposure * lineDurationUs), - }; - config.ctrlMap[&controls::FrameDurationLimits] = ControlInfo{ - static_cast<int64_t>(session.minFrameDuration.get<std::micro>()), - static_cast<int64_t>(session.maxFrameDuration.get<std::micro>()), - std::span<const int64_t, 2>{ { - static_cast<int64_t>(state.minFrameDuration.get<std::micro>()), - static_cast<int64_t>(state.maxFrameDuration.get<std::micro>()), - } }, - }; - - const auto add = [&](const ControlId &cid, const auto &automatic, const auto &manual) { - std::array<ControlValue, 2> values; - size_t count = 0; - - if (session.autoAllowed) - values[count++] = ControlValue(automatic); - - values[count++] = ControlValue(manual); - - config.ctrlMap[&cid] = ControlInfo{ - { values.data(), count }, - ControlValue(session.autoAllowed ? automatic : manual), - }; - }; - - add(controls::ExposureTimeMode, - controls::ExposureTimeModeAuto, controls::ExposureTimeModeManual); - add(controls::AnalogueGainMode, - controls::AnalogueGainModeAuto, controls::AnalogueGainModeManual); - std::visit(utils::overloaded{ [&](AgcMSV &) { /* No constraint mode support. */ @@ -769,6 +728,47 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state, }, }, impl_); + /* \todo Move this to the `Camera` class. */ + config.ctrlMap[&controls::AeEnable] = ControlInfo{ + false, session.autoAllowed, session.autoAllowed + }; + config.ctrlMap[&controls::AnalogueGain] = ControlInfo{ + minGain, maxGain, defGain + }; + config.ctrlMap[&controls::ExposureTime] = ControlInfo{ + static_cast<int32_t>(minExposure * lineDurationUs), + static_cast<int32_t>(maxExposure * lineDurationUs), + static_cast<int32_t>(defExposure * lineDurationUs), + }; + config.ctrlMap[&controls::FrameDurationLimits] = ControlInfo{ + static_cast<int64_t>(session.minFrameDuration.get<std::micro>()), + static_cast<int64_t>(session.maxFrameDuration.get<std::micro>()), + std::span<const int64_t, 2>{ { + static_cast<int64_t>(state.minFrameDuration.get<std::micro>()), + static_cast<int64_t>(state.maxFrameDuration.get<std::micro>()), + } }, + }; + + const auto add = [&](const ControlId &cid, const auto &automatic, const auto &manual) { + std::array<ControlValue, 2> values; + size_t count = 0; + + if (session.autoAllowed) + values[count++] = ControlValue(automatic); + + values[count++] = ControlValue(manual); + + config.ctrlMap[&cid] = ControlInfo{ + { values.data(), count }, + ControlValue(session.autoAllowed ? automatic : manual), + }; + }; + + add(controls::ExposureTimeMode, + controls::ExposureTimeModeAuto, controls::ExposureTimeModeManual); + add(controls::AnalogueGainMode, + controls::AnalogueGainModeAuto, controls::AnalogueGainModeManual); + return 0; }