Camera: Add default camera provider 2.4
Supports legacy camera HAL modules; also exports ICameraDevice
instances.
Test: compile
Bug: 30985004
Change-Id: I2b9624a412de95dd43979a5e6650b170010c577a
diff --git a/camera/common/1.0/default/CameraModule.cpp b/camera/common/1.0/default/CameraModule.cpp
index d8a424e..5d9ae4d 100644
--- a/camera/common/1.0/default/CameraModule.cpp
+++ b/camera/common/1.0/default/CameraModule.cpp
@@ -344,7 +344,7 @@
return res;
}
-bool CameraModule::isOpenLegacyDefined() {
+bool CameraModule::isOpenLegacyDefined() const {
if (getModuleApiVersion() < CAMERA_MODULE_API_VERSION_2_3) {
return false;
}
@@ -376,7 +376,7 @@
return res;
}
-bool CameraModule::isVendorTagDefined() {
+bool CameraModule::isVendorTagDefined() const {
return mModule->get_vendor_tag_ops != NULL;
}
@@ -388,11 +388,25 @@
}
}
+bool CameraModule::isSetTorchModeSupported() const {
+ if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_4) {
+ if (mModule->set_torch_mode == NULL) {
+ ALOGE("%s: Module 2.4 device must support set torch API!",
+ __FUNCTION__);
+ return false;
+ }
+ return true;
+ }
+ return false;
+}
+
int CameraModule::setTorchMode(const char* camera_id, bool enable) {
- int res;
- ATRACE_BEGIN("camera_module->set_torch_mode");
- res = mModule->set_torch_mode(camera_id, enable);
- ATRACE_END();
+ int res = INVALID_OPERATION;
+ if (mModule->set_torch_mode != NULL) {
+ ATRACE_BEGIN("camera_module->set_torch_mode");
+ res = mModule->set_torch_mode(camera_id, enable);
+ ATRACE_END();
+ }
return res;
}
@@ -409,19 +423,19 @@
return -ENODEV;
}
-uint16_t CameraModule::getModuleApiVersion() {
+uint16_t CameraModule::getModuleApiVersion() const {
return mModule->common.module_api_version;
}
-const char* CameraModule::getModuleName() {
+const char* CameraModule::getModuleName() const {
return mModule->common.name;
}
-uint16_t CameraModule::getHalApiVersion() {
+uint16_t CameraModule::getHalApiVersion() const {
return mModule->common.hal_api_version;
}
-const char* CameraModule::getModuleAuthor() {
+const char* CameraModule::getModuleAuthor() const {
return mModule->common.author;
}
diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h
index 907c807..68d4f90 100644
--- a/camera/common/1.0/default/include/CameraModule.h
+++ b/camera/common/1.0/default/include/CameraModule.h
@@ -49,16 +49,17 @@
int getDeviceVersion(int cameraId);
int getNumberOfCameras(void);
int open(const char* id, struct hw_device_t** device);
- bool isOpenLegacyDefined();
+ bool isOpenLegacyDefined() const;
int openLegacy(const char* id, uint32_t halVersion, struct hw_device_t** device);
int setCallbacks(const camera_module_callbacks_t *callbacks);
- bool isVendorTagDefined();
+ bool isVendorTagDefined() const;
void getVendorTagOps(vendor_tag_ops_t* ops);
+ bool isSetTorchModeSupported() const;
int setTorchMode(const char* camera_id, bool enable);
- uint16_t getModuleApiVersion();
- const char* getModuleName();
- uint16_t getHalApiVersion();
- const char* getModuleAuthor();
+ uint16_t getModuleApiVersion() const;
+ const char* getModuleName() const;
+ uint16_t getHalApiVersion() const;
+ const char* getModuleAuthor() const;
// Only used by CameraModuleFixture native test. Do NOT use elsewhere.
void *getDso();