libcamera: libipa: camera_sensor: Define AR0521 helper functions inline

All CameraSensorHelper subclasses define their member functions inline,
except for the CameraSensorHelperAr0521 class. Inline the gainCode() and
gain() functions to match the other classes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2024-06-04 00:19:17 +03:00
parent e76bb1f54c
commit d9c6835e23

View file

@ -369,30 +369,26 @@ static constexpr double expGainDb(double step)
class CameraSensorHelperAr0521 : public CameraSensorHelper class CameraSensorHelperAr0521 : public CameraSensorHelper
{ {
public: public:
uint32_t gainCode(double gain) const override; uint32_t gainCode(double gain) const override
double gain(uint32_t gainCode) const override; {
gain = std::clamp(gain, 1.0, 15.5);
unsigned int coarse = std::log2(gain);
unsigned int fine = (gain / (1 << coarse) - 1) * kStep_;
return (coarse << 4) | (fine & 0xf);
}
double gain(uint32_t gainCode) const override
{
unsigned int coarse = gainCode >> 4;
unsigned int fine = gainCode & 0xf;
return (1 << coarse) * (1 + fine / kStep_);
}
private: private:
static constexpr double kStep_ = 16; static constexpr double kStep_ = 16;
}; };
uint32_t CameraSensorHelperAr0521::gainCode(double gain) const
{
gain = std::clamp(gain, 1.0, 15.5);
unsigned int coarse = std::log2(gain);
unsigned int fine = (gain / (1 << coarse) - 1) * kStep_;
return (coarse << 4) | (fine & 0xf);
}
double CameraSensorHelperAr0521::gain(uint32_t gainCode) const
{
unsigned int coarse = gainCode >> 4;
unsigned int fine = gainCode & 0xf;
return (1 << coarse) * (1 + fine / kStep_);
}
REGISTER_CAMERA_SENSOR_HELPER("ar0521", CameraSensorHelperAr0521) REGISTER_CAMERA_SENSOR_HELPER("ar0521", CameraSensorHelperAr0521)
class CameraSensorHelperImx219 : public CameraSensorHelper class CameraSensorHelperImx219 : public CameraSensorHelper