android: hal_manager: Do not hardcode properties
The CameraHalManager::getCameraInfo() method hardcodes the camera facing side and orientation (which corresponds, confusingly, to libcamera's location and rotation properties). Instead of hard-coding the values based on the camera id, inspect the libcamera properties that report the camera location and rotation in a new initialize() method, and use them to report the android camera info and to populate the static metadata buffer. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
@@ -27,12 +27,17 @@ public:
|
||||
CameraDevice(unsigned int id, const std::shared_ptr<libcamera::Camera> &camera);
|
||||
~CameraDevice();
|
||||
|
||||
int initialize();
|
||||
|
||||
int open(const hw_module_t *hardwareModule);
|
||||
void close();
|
||||
|
||||
unsigned int id() const { return id_; }
|
||||
camera3_device_t *camera3Device() { return &camera3Device_; }
|
||||
|
||||
int facing() const { return facing_; }
|
||||
int orientation() const { return orientation_; }
|
||||
|
||||
void setCallbacks(const camera3_callback_ops_t *callbacks);
|
||||
const camera_metadata_t *getStaticMetadata();
|
||||
const camera_metadata_t *constructDefaultRequestSettings(int type);
|
||||
@@ -69,6 +74,9 @@ private:
|
||||
CameraMetadata *staticMetadata_;
|
||||
std::map<unsigned int, CameraMetadata *> requestTemplates_;
|
||||
const camera3_callback_ops_t *callbacks_;
|
||||
|
||||
int facing_;
|
||||
int orientation_;
|
||||
};
|
||||
|
||||
#endif /* __ANDROID_CAMERA_DEVICE_H__ */
|
||||
|
||||
Reference in New Issue
Block a user