summaryrefslogtreecommitdiff
path: root/src/apps/cam/main.cpp
diff options
context:
space:
mode:
authorStefan Klug <stefan.klug@ideasonboard.com>2024-06-11 15:02:50 +0200
committerStefan Klug <stefan.klug@ideasonboard.com>2024-07-05 22:38:18 +0200
commit64d4e596a4065d78458adf95ddfc3f74e43a11d4 (patch)
tree21b3012a4befdb19bcd6accc97dee39ff2491e94 /src/apps/cam/main.cpp
parent902a78416c46e33b0bb1d79331ce15fc053e84ad (diff)
libtuning: Remove need for Cam object from ccm
Remove the need for the Cam object, as we don't want to port it from Raspberry Pi. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Diffstat (limited to 'src/apps/cam/main.cpp')
0 files changed, 0 insertions, 0 deletions
#include <stdint.h> #include <memory> #include <string> #include <vector> #include <libcamera/base/class.h> namespace libcamera { namespace ipa { class CameraSensorHelper { public: CameraSensorHelper() = default; virtual ~CameraSensorHelper() = default; virtual uint32_t gainCode(double gain) const; virtual double gain(uint32_t gainCode) const; protected: enum AnalogueGainType { AnalogueGainLinear, AnalogueGainExponential, }; struct AnalogueGainLinearConstants { int16_t m0; int16_t c0; int16_t m1; int16_t c1; }; struct AnalogueGainExpConstants { double a; double m; }; union AnalogueGainConstants { AnalogueGainLinearConstants linear; AnalogueGainExpConstants exp; }; AnalogueGainType gainType_; AnalogueGainConstants gainConstants_; private: LIBCAMERA_DISABLE_COPY_AND_MOVE(CameraSensorHelper) }; class CameraSensorHelperFactoryBase { public: CameraSensorHelperFactoryBase(const std::string name); virtual ~CameraSensorHelperFactoryBase() = default; static std::unique_ptr<CameraSensorHelper> create(const std::string &name); static std::vector<CameraSensorHelperFactoryBase *> &factories(); private: LIBCAMERA_DISABLE_COPY_AND_MOVE(CameraSensorHelperFactoryBase) static void registerType(CameraSensorHelperFactoryBase *factory); virtual std::unique_ptr<CameraSensorHelper> createInstance() const = 0; std::string name_; }; template<typename _Helper> class CameraSensorHelperFactory final : public CameraSensorHelperFactoryBase { public: CameraSensorHelperFactory(const char *name) : CameraSensorHelperFactoryBase(name) { } private: std::unique_ptr<CameraSensorHelper> createInstance() const override { return std::make_unique<_Helper>(); } }; #define REGISTER_CAMERA_SENSOR_HELPER(name, helper) \ static CameraSensorHelperFactory<helper> global_##helper##Factory(name); } /* namespace ipa */ } /* namespace libcamera */