From 874efff89c2087769893064292f8fd9b437b35eb Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Wed, 23 Feb 2022 19:25:34 +0900 Subject: [PATCH] Revert "universal7885: camera.provider: drop front camera hacks" Change-Id: I3946a41bdde83388205d4ebcc39bc9f63e88d9d8 Signed-off-by: roynatech2544 --- .../camera/provider/SamsungCameraProvider.cpp | 26 ++++++++++++++++++- .../camera/provider/SamsungCameraProvider.h | 3 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/universal7885-common/hidl/camera/provider/SamsungCameraProvider.cpp b/universal7885-common/hidl/camera/provider/SamsungCameraProvider.cpp index cfca718..780b8e9 100644 --- a/universal7885-common/hidl/camera/provider/SamsungCameraProvider.cpp +++ b/universal7885-common/hidl/camera/provider/SamsungCameraProvider.cpp @@ -23,11 +23,15 @@ using ::android::NO_ERROR; using ::android::OK; +using ::android::hardware::Void; +using ::android::hardware::hidl_vec; +using ::android::hardware::hidl_string; + const int kMaxCameraIdLen = 16; SamsungCameraProvider::SamsungCameraProvider() : LegacyCameraProviderImpl_2_5() { mExtraIDs.push_back(50); - + mDisabledIDs.push_back(2); if (!mInitFailed) { for (int i : mExtraIDs) { struct camera_info info; @@ -59,4 +63,24 @@ SamsungCameraProvider::SamsungCameraProvider() : LegacyCameraProviderImpl_2_5() } } +Return SamsungCameraProvider::getCameraIdList( + ICameraProvider::getCameraIdList_cb _hidl_cb) { + std::vector deviceNameList; + for (auto const& deviceNamePair : mCameraDeviceNames) { + int id = std::stoi(deviceNamePair.first); + if (id >= mNumberOfLegacyCameras || std::find(mDisabledIDs.begin(), mDisabledIDs.end(), id) != mDisabledIDs.end()) { + // External camera devices must be reported through the device status change callback, + // not in this list. + // Linux4: Also skip disabled camera IDs. + continue; + } + if (mCameraStatusMap[deviceNamePair.first] == CAMERA_DEVICE_STATUS_PRESENT) { + deviceNameList.push_back(deviceNamePair.second); + } + } + hidl_vec hidlDeviceNameList(deviceNameList); + _hidl_cb(::android::hardware::camera::common::V1_0::Status::OK, hidlDeviceNameList); + return Void(); +} + SamsungCameraProvider::~SamsungCameraProvider() {} diff --git a/universal7885-common/hidl/camera/provider/SamsungCameraProvider.h b/universal7885-common/hidl/camera/provider/SamsungCameraProvider.h index bb7f2e1..5866be5 100644 --- a/universal7885-common/hidl/camera/provider/SamsungCameraProvider.h +++ b/universal7885-common/hidl/camera/provider/SamsungCameraProvider.h @@ -20,6 +20,7 @@ #define SAMSUNG_CAMERA_DEBUG +using ::android::hardware::camera::provider::V2_5::ICameraProvider; using ::android::hardware::camera::provider::V2_5::implementation::LegacyCameraProviderImpl_2_5; using ::android::hardware::Return; @@ -28,8 +29,10 @@ public: SamsungCameraProvider(); ~SamsungCameraProvider(); + Return getCameraIdList(ICameraProvider::getCameraIdList_cb _hidl_cb); private: std::vector mExtraIDs; + std::vector mDisabledIDs; }; #endif // SAMSUNG_CAMERA_PROVIDER_H