From afcc36fbaea7fb34fc8bc638edb08056dce01dc5 Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Sun, 26 Nov 2023 17:18:02 +0900 Subject: [PATCH] universal7885: libshims: Remove camera shim --- .../camera/provider/Android.bp | 1 - .../libshims/camera/Android.bp | 35 ---- .../libshims/camera/CamDevice_3_2.h | 160 --------------- .../libshims/camera/CorrectCameraID.cpp | 182 ------------------ universal7885-common/universal7885-common.mk | 3 +- 5 files changed, 1 insertion(+), 380 deletions(-) delete mode 100644 universal7885-common/libshims/camera/Android.bp delete mode 100644 universal7885-common/libshims/camera/CamDevice_3_2.h delete mode 100644 universal7885-common/libshims/camera/CorrectCameraID.cpp diff --git a/universal7885-common/camera/provider/Android.bp b/universal7885-common/camera/provider/Android.bp index 1464255..e13eb92 100644 --- a/universal7885-common/camera/provider/Android.bp +++ b/universal7885-common/camera/provider/Android.bp @@ -38,7 +38,6 @@ cc_binary { "libhidlbase", "liblog", "libutils", - "libcorrectcamera", ], static_libs: [ "android.hardware.camera.common@1.0-helper", diff --git a/universal7885-common/libshims/camera/Android.bp b/universal7885-common/libshims/camera/Android.bp deleted file mode 100644 index 4f2001d..0000000 --- a/universal7885-common/libshims/camera/Android.bp +++ /dev/null @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2022 Eureka Team. -* https://github.com/eurekadevelopment -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -*/ - -cc_library_shared { - name: "libcorrectcamera", - defaults: ["hidl_defaults"], - proprietary: true, - srcs: [ - "CorrectCameraID.cpp", - ], - shared_libs: [ - "libhidlbase", - "libhardware", - "camera.device@3.2-impl", - "libcamera_metadata", - "android.hardware.camera.device@3.2", - "android.hardware.camera.provider@2.4", - "android.hardware.graphics.mapper@2.0", - "android.hardware.graphics.mapper@3.0", - "android.hardware.graphics.mapper@4.0", - "liblog", - "libutils", - "libcutils", - ], - static_libs: [ - "android.hardware.camera.common@1.0-helper", - ], -} diff --git a/universal7885-common/libshims/camera/CamDevice_3_2.h b/universal7885-common/libshims/camera/CamDevice_3_2.h deleted file mode 100644 index 3fb9e7c..0000000 --- a/universal7885-common/libshims/camera/CamDevice_3_2.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ANDROID_HARDWARE_CAM_DEVICE_V3_2_CAMERADEVICE_H -#define ANDROID_HARDWARE_CAM_DEVICE_V3_2_CAMERADEVICE_H - -#include "CameraDeviceSession.h" -#include "CameraMetadata.h" -#include "CameraModule.h" -#include "utils/Mutex.h" - -#include -#include -#include - -namespace android { -namespace hardware { -namespace camera { -namespace device { -namespace V3_2 { -namespace implementation { - -using ::android::Mutex; -using ::android::sp; -using ::android::hardware::hidl_string; -using ::android::hardware::hidl_vec; -using ::android::hardware::Return; -using ::android::hardware::Void; -using ::android::hardware::camera::common::V1_0::CameraResourceCost; -using ::android::hardware::camera::common::V1_0::Status; -using ::android::hardware::camera::common::V1_0::TorchMode; -using ::android::hardware::camera::common::V1_0::helper::CameraModule; -using ::android::hardware::camera::device::V3_2::ICameraDevice; -using ::android::hardware::camera::device::V3_2::ICameraDeviceCallback; -using ::android::hardware::camera::device::V3_2::ICameraDeviceSession; -using ::android::hardware::camera::device::V3_2::RequestTemplate; - -/* - * The camera device HAL implementation is opened lazily (via the open call) - */ -struct CameraDevice : public virtual RefBase { - // Called by provider HAL. Provider HAL must ensure the uniqueness of - // CameraDevice object per cameraId, or there could be multiple CameraDevice - // trying to access the same physical camera. - // Also, provider will have to keep track of all CameraDevice objects in - // order to notify CameraDevice when the underlying camera is detached - CameraDevice(sp module, const std::string &cameraId, - const SortedVector> - &cameraDeviceNames); - virtual ~CameraDevice(); - - // Retrieve the HIDL interface, split into its own class to avoid inheritance - // issues when dealing with minor version revs and simultaneous implementation - // and interface inheritance - virtual sp getInterface() { - return new TrampolineDeviceInterface_3_2(this); - } - - // Caller must use this method to check if CameraDevice ctor failed - bool isInitFailed() { return mInitFail; } - // Used by provider HAL to signal external camera disconnected - void setConnectionStatus(bool connected); - - /* Methods from ::android::hardware::camera::device::V3_2::ICameraDevice - * follow. */ - // The following method can be called without opening the actual camera device - Return getResourceCost(ICameraDevice::getResourceCost_cb _hidl_cb); - Return - getCameraCharacteristics(ICameraDevice::getCameraCharacteristics_cb _hidl_cb); - Return setTorchMode(TorchMode mode); - - // Open the device HAL and also return a default capture session - Return open(const sp &callback, - ICameraDevice::open_cb _hidl_cb); - - // Forward the dump call to the opened session, or do nothing - Return dumpState(const ::android::hardware::hidl_handle &fd); - /* End of Methods from - * ::android::hardware::camera::device::V3_2::ICameraDevice */ - -protected: - // Overridden by child implementations for returning different versions of - // CameraDeviceSession - virtual sp - createSession(camera3_device_t *, const camera_metadata_t *deviceInfo, - const sp &); - - const sp mModule; - const std::string mCameraId; - // const after ctor - int mCameraIdInt; - int mDeviceVersion; - bool mInitFail = false; - // Set by provider (when external camera is connected/disconnected) - bool mDisconnected; - wp mSession = nullptr; - - const SortedVector> &mCameraDeviceNames; - - // gating access to mSession and mDisconnected - mutable Mutex mLock; - - // convert conventional HAL status to HIDL Status - static Status getHidlStatus(int); - - Status initStatus() const; - -private: - struct TrampolineDeviceInterface_3_2 : public ICameraDevice { - TrampolineDeviceInterface_3_2(sp parent) : mParent(parent) {} - - virtual Return - getResourceCost(V3_2::ICameraDevice::getResourceCost_cb _hidl_cb) override { - return mParent->getResourceCost(_hidl_cb); - } - - virtual Return getCameraCharacteristics( - V3_2::ICameraDevice::getCameraCharacteristics_cb _hidl_cb) override { - return mParent->getCameraCharacteristics(_hidl_cb); - } - - virtual Return setTorchMode(TorchMode mode) override { - return mParent->setTorchMode(mode); - } - - virtual Return open(const sp &callback, - V3_2::ICameraDevice::open_cb _hidl_cb) override { - return mParent->open(callback, _hidl_cb); - } - - virtual Return dumpState(const hidl_handle &fd) override { - return mParent->dumpState(fd); - } - - private: - sp mParent; - }; -}; - -} // namespace implementation -} // namespace V3_2 -} // namespace device -} // namespace camera -} // namespace hardware -} // namespace android - -#endif // ANDROID_HARDWARE_CAM_DEVICE_V3_2_CAMERADEVICE_H diff --git a/universal7885-common/libshims/camera/CorrectCameraID.cpp b/universal7885-common/libshims/camera/CorrectCameraID.cpp deleted file mode 100644 index a41b569..0000000 --- a/universal7885-common/libshims/camera/CorrectCameraID.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2022 Eureka Team. - * https://github.com/eurekadevelopment - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ - -#include "CamDevice_3_2.h" -#include -#include - -#include - -namespace remapper { - -// Reversed means changing second to first -static void applyRemap(std::pair config, int *intversion, std::string *stringversion) -{ - int cameraid = 0, selectedFromConfig = 0; - - if (intversion != nullptr) - cameraid = *intversion; - else if (stringversion != nullptr) - cameraid = std::stoi(*stringversion); - else return; - - if (config.first == cameraid) - selectedFromConfig = config.second; - else if (config.second == cameraid) - selectedFromConfig = config.first; - else return; - - if (intversion != nullptr) - *intversion = selectedFromConfig; - if (stringversion != nullptr) { - std::vector buf(2 /* single digit and null char */); - std::snprintf(buf.data(), buf.size(), "%d", selectedFromConfig); - *stringversion = std::string(buf.begin(), buf.end()); - } -} - -} // namespace remapper - -namespace android { -namespace hardware { -namespace camera { -namespace device { -namespace V3_2 { -namespace implementation { - -using ::android::hardware::camera::common::V1_0::Status; - -Return CameraDevice::getCameraCharacteristics( - ICameraDevice::getCameraCharacteristics_cb _hidl_cb) { - Status status = initStatus(); - CameraMetadata cameraCharacteristics; - if (status == Status::OK) { - // Module 2.1+ codepath. - struct camera_info info; - remapper::applyRemap(std::make_pair(1, 2), &mCameraIdInt, nullptr); - int ret = mModule->getCameraInfo(mCameraIdInt, &info); - if (ret == OK) { - convertToHidl(info.static_camera_characteristics, &cameraCharacteristics); - } else { - ALOGE("%s: get camera info failed!", __FUNCTION__); - status = Status::INTERNAL_ERROR; - } - } - _hidl_cb(status, cameraCharacteristics); - return Void(); -} - -Return CameraDevice::open(const sp &callback, - ICameraDevice::open_cb _hidl_cb) { - Status status = initStatus(); - sp session = nullptr; - - if (callback == nullptr) { - ALOGE("%s: cannot open camera %s. callback is null!", __FUNCTION__, - mCameraId.c_str()); - _hidl_cb(Status::ILLEGAL_ARGUMENT, nullptr); - return Void(); - } - - if (status != Status::OK) { - // Provider will never pass initFailed device to client, so - // this must be a disconnected camera - ALOGE("%s: cannot open camera %s. camera is disconnected!", __FUNCTION__, - mCameraId.c_str()); - _hidl_cb(Status::CAMERA_DISCONNECTED, nullptr); - return Void(); - } else { - mLock.lock(); - - ALOGV("%s: Initializing device for camera %d", __FUNCTION__, mCameraIdInt); - session = mSession.promote(); - if (session != nullptr && !session->isClosed()) { - ALOGE("%s: cannot open an already opened camera!", __FUNCTION__); - mLock.unlock(); - _hidl_cb(Status::CAMERA_IN_USE, nullptr); - return Void(); - } - - /** Open HAL device */ - status_t res; - camera3_device_t *device; - - std::string mCameraID = mCameraId; - remapper::applyRemap(std::make_pair(1, 2), &mCameraIdInt, &mCameraID); - - res = mModule->open(mCameraID.c_str(), - reinterpret_cast(&device)); - if (res != OK) { - ALOGE("%s: cannot open camera %s!", __FUNCTION__, mCameraID.c_str()); - mLock.unlock(); - _hidl_cb(getHidlStatus(res), nullptr); - return Void(); - } - - /** Cross-check device version */ - if (device->common.version < CAMERA_DEVICE_API_VERSION_3_2) { - ALOGE("%s: Could not open camera: " - "Camera device should be at least %x, reports %x instead", - __FUNCTION__, CAMERA_DEVICE_API_VERSION_3_2, - device->common.version); - device->common.close(&device->common); - mLock.unlock(); - _hidl_cb(Status::ILLEGAL_ARGUMENT, nullptr); - return Void(); - } - - struct camera_info info; - res = mModule->getCameraInfo(mCameraIdInt, &info); - if (res != OK) { - ALOGE("%s: Could not open camera: getCameraInfo failed", __FUNCTION__); - device->common.close(&device->common); - mLock.unlock(); - _hidl_cb(Status::ILLEGAL_ARGUMENT, nullptr); - return Void(); - } - - session = - createSession(device, info.static_camera_characteristics, callback); - if (session == nullptr) { - ALOGE("%s: camera device session allocation failed", __FUNCTION__); - mLock.unlock(); - _hidl_cb(Status::INTERNAL_ERROR, nullptr); - return Void(); - } - if (session->isInitFailed()) { - ALOGE("%s: camera device session init failed", __FUNCTION__); - session = nullptr; - mLock.unlock(); - _hidl_cb(Status::INTERNAL_ERROR, nullptr); - return Void(); - } - mSession = session; - - IF_ALOGV() { - session->getInterface()->interfaceChain( - [](::android::hardware::hidl_vec<::android::hardware::hidl_string> - interfaceChain) { - ALOGV("Session interface chain:"); - for (const auto &iface : interfaceChain) { - ALOGV(" %s", iface.c_str()); - } - }); - } - mLock.unlock(); - } - _hidl_cb(status, session->getInterface()); - return Void(); -} -} // namespace implementation -} // namespace V3_2 -} // namespace device -} // namespace camera -} // namespace hardware -} // namespace android diff --git a/universal7885-common/universal7885-common.mk b/universal7885-common/universal7885-common.mk index ab3d3b3..9b61c99 100644 --- a/universal7885-common/universal7885-common.mk +++ b/universal7885-common/universal7885-common.mk @@ -339,8 +339,7 @@ PRODUCT_PACKAGES += \ # Shims PRODUCT_PACKAGES += \ - libshim_sensorndkbridge \ - libcorrectcamera + libshim_sensorndkbridge # Skip Mount PRODUCT_PACKAGES += \