modules: camera: add get_camera_info support
Basic static metadata statically constructed from preprocessor passes
over an array of camera metadata tags.
Change-Id: I16ea9f4d68120d5a0bc010a4a67b0cbcd761329e
diff --git a/modules/camera/Camera.h b/modules/camera/Camera.h
index 4001453..e97dfd0 100644
--- a/modules/camera/Camera.h
+++ b/modules/camera/Camera.h
@@ -20,6 +20,7 @@
#include <pthread.h>
#include <hardware/hardware.h>
#include <hardware/camera3.h>
+#include "Metadata.h"
#include "Stream.h"
namespace default_camera_hal {
@@ -36,6 +37,7 @@
// Common Camera Device Operations (see <hardware/camera_common.h>)
int open(const hw_module_t *module, hw_device_t **device);
+ int getInfo(struct camera_info *info);
int close();
// Camera v3 Device Operations (see <hardware/camera3.h>)
@@ -51,6 +53,8 @@
camera3_device_t mDevice;
private:
+ // Separate initialization method for static metadata
+ int initStaticInfo();
// Reuse a stream already created by this device
Stream *reuseStream(camera3_stream_t *astream);
// Destroy all streams in a stream array, and the array itself
@@ -71,6 +75,10 @@
// Identifier used by framework to distinguish cameras
const int mId;
+ // Metadata containing persistent camera characteristics
+ Metadata mMetadata;
+ // camera_metadata structure containing static characteristics
+ camera_metadata_t *mStaticInfo;
// Busy flag indicates camera is in use
bool mBusy;
// Camera device operations handle shared by all devices