Camera: fix FlashLightTest
Fix issues related Treble HAL1 path.
Test: FlashLightTest pass on Angler HAL1/module 1.0
Bug: 35674539
Change-Id: I6bd749464c0e6e437a4743d2d66a0a5f54cdba38
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 562e6c9..bbeeca6 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -22,7 +22,6 @@
#include <chrono>
#include <inttypes.h>
-#include <set>
#include <hidl/ServiceManagement.h>
namespace android {
@@ -96,8 +95,21 @@
std::lock_guard<std::mutex> lock(mInterfaceMutex);
std::vector<std::string> deviceIds;
for (auto& provider : mProviders) {
- for (auto& deviceInfo : provider->mDevices) {
- deviceIds.push_back(deviceInfo->mId);
+ for (auto& id : provider->mUniqueCameraIds) {
+ deviceIds.push_back(id);
+ }
+ }
+ return deviceIds;
+}
+
+std::vector<std::string> CameraProviderManager::getStandardCameraDeviceIds() const {
+ std::lock_guard<std::mutex> lock(mInterfaceMutex);
+ std::vector<std::string> deviceIds;
+ for (auto& provider : mProviders) {
+ if (kStandardProviderTypes.find(provider->getType()) != std::string::npos) {
+ for (auto& id : provider->mUniqueCameraIds) {
+ deviceIds.push_back(id);
+ }
}
}
return deviceIds;
@@ -182,6 +194,23 @@
return OK;
}
+bool CameraProviderManager::supportSetTorchMode(const std::string &id) {
+ std::lock_guard<std::mutex> lock(mInterfaceMutex);
+ bool support = false;
+ for (auto& provider : mProviders) {
+ auto deviceInfo = findDeviceInfoLocked(id);
+ if (deviceInfo != nullptr) {
+ provider->mInterface->isSetTorchModeSupported(
+ [&support](auto status, bool supported) {
+ if (status == Status::OK) {
+ support = supported;
+ }
+ });
+ }
+ }
+ return support;
+}
+
status_t CameraProviderManager::setTorchMode(const std::string &id, bool enabled) {
std::lock_guard<std::mutex> lock(mInterfaceMutex);
@@ -472,11 +501,10 @@
}
}
- std::set<std::string> uniqueCameraIds;
for (auto& device : mDevices) {
- uniqueCameraIds.insert(device->mId);
+ mUniqueCameraIds.insert(device->mId);
}
- mUniqueDeviceCount = uniqueCameraIds.size();
+ mUniqueDeviceCount = mUniqueCameraIds.size();
ALOGI("Camera provider %s ready with %zu camera devices",
mProviderName.c_str(), mDevices.size());