diff options
| author | LuK1337 <priv.luk@gmail.com> | 2017-09-21 22:06:32 +0200 |
|---|---|---|
| committer | Ethan Chen <intervigil@gmail.com> | 2017-10-11 20:52:51 -0700 |
| commit | 5bd173065402ef998874d2cae80a7e27576e05be (patch) | |
| tree | 1b33380b75630fe038fb06772a9c26af062b6cfe | |
| parent | 5aad8936be1fbae6b0d7d0d66d83d9472b5708b2 (diff) | |
| download | android_hardware_lineage_interfaces-5bd173065402ef998874d2cae80a7e27576e05be.tar.gz android_hardware_lineage_interfaces-5bd173065402ef998874d2cae80a7e27576e05be.tar.bz2 android_hardware_lineage_interfaces-5bd173065402ef998874d2cae80a7e27576e05be.zip | |
lineage/interfaces: Add custom camera provider for legacy devices
* Camera HALs before Treble used to pass camera id
in user field, in Treble they are meant to pass
pointer to CameraDevice.
* This patch workarounds this by storing local pointer
to CameraDevice and not relying on user field.
Change-Id: I415343d02edd96d8da56e1f25bf23ffce83fb2ce
| -rw-r--r-- | camera/Android.bp | 4 | ||||
| -rw-r--r-- | camera/device/1.0-legacy/Android.bp (renamed from camera/device/1.0/Android.bp) | 2 | ||||
| -rw-r--r-- | camera/device/1.0-legacy/CameraDevice.cpp (renamed from camera/device/1.0/CameraDevice.cpp) | 22 | ||||
| -rw-r--r-- | camera/device/1.0-legacy/CameraDevice_1_0.h (renamed from camera/device/1.0/CameraDevice_1_0.h) | 0 | ||||
| -rw-r--r-- | camera/provider/2.4-legacy/Android.bp (renamed from camera/provider/2.4/Android.bp) | 4 | ||||
| -rw-r--r-- | camera/provider/2.4-legacy/CameraProvider.cpp (renamed from camera/provider/2.4/CameraProvider.cpp) | 2 | ||||
| -rw-r--r-- | camera/provider/2.4-legacy/CameraProvider.h (renamed from camera/provider/2.4/CameraProvider.h) | 0 |
7 files changed, 19 insertions, 15 deletions
diff --git a/camera/Android.bp b/camera/Android.bp index de47f5f..f5dfcce 100644 --- a/camera/Android.bp +++ b/camera/Android.bp @@ -1,4 +1,4 @@ subdirs = [ - "device/1.0", - "provider/2.4", + "device/1.0-legacy", + "provider/2.4-legacy", ] diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0-legacy/Android.bp index fa246c1..ebc0490 100644 --- a/camera/device/1.0/Android.bp +++ b/camera/device/1.0-legacy/Android.bp @@ -1,5 +1,5 @@ cc_library_shared { - name: "camera.device@1.0-impl", + name: "camera.device@1.0-impl-legacy", defaults: ["hidl_defaults"], proprietary: true, srcs: [ diff --git a/camera/device/1.0/CameraDevice.cpp b/camera/device/1.0-legacy/CameraDevice.cpp index c53c0d8..63e5c40 100644 --- a/camera/device/1.0/CameraDevice.cpp +++ b/camera/device/1.0-legacy/CameraDevice.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "CamDev@1.0-impl" +#define LOG_TAG "CamDev@1.0-impl.legacy" #include <hardware/camera.h> #include <hardware/gralloc1.h> #include <hidlmemory/mapping.h> @@ -36,6 +36,8 @@ using ::android::hardware::graphics::common::V1_0::PixelFormat; HandleImporter CameraDevice::sHandleImporter; +static CameraDevice *sCameraDevice; + Status CameraDevice::getHidlStatus(const int& status) { switch (status) { case 0: return Status::OK; @@ -359,9 +361,10 @@ CameraDevice::CameraHeapMemory::~CameraHeapMemory() { } // shared memory methods -camera_memory_t* CameraDevice::sGetMemory(int fd, size_t buf_size, uint_t num_bufs, void *user) { +camera_memory_t* CameraDevice::sGetMemory(int fd, size_t buf_size, uint_t num_bufs, + void *user __unused) { ALOGV("%s", __FUNCTION__); - CameraDevice* object = static_cast<CameraDevice*>(user); + CameraDevice* object = sCameraDevice; if (object->mDeviceCallback == nullptr) { ALOGE("%s: camera HAL request memory while camera is not opened!", __FUNCTION__); return nullptr; @@ -403,18 +406,18 @@ void CameraDevice::sPutMemory(camera_memory_t *data) { } // Callback forwarding methods -void CameraDevice::sNotifyCb(int32_t msg_type, int32_t ext1, int32_t ext2, void *user) { +void CameraDevice::sNotifyCb(int32_t msg_type, int32_t ext1, int32_t ext2, void *user __unused) { ALOGV("%s", __FUNCTION__); - CameraDevice* object = static_cast<CameraDevice*>(user); + CameraDevice* object = sCameraDevice; if (object->mDeviceCallback != nullptr) { object->mDeviceCallback->notifyCallback((NotifyCallbackMsg) msg_type, ext1, ext2); } } void CameraDevice::sDataCb(int32_t msg_type, const camera_memory_t *data, unsigned int index, - camera_frame_metadata_t *metadata, void *user) { + camera_frame_metadata_t *metadata, void *user __unused) { ALOGV("%s", __FUNCTION__); - CameraDevice* object = static_cast<CameraDevice*>(user); + CameraDevice* object = sCameraDevice; sp<CameraHeapMemory> mem(static_cast<CameraHeapMemory*>(data->handle)); if (index >= mem->mNumBufs) { ALOGE("%s: invalid buffer index %d, max allowed is %d", __FUNCTION__, @@ -482,9 +485,9 @@ void CameraDevice::handleCallbackTimestamp( } void CameraDevice::sDataCbTimestamp(nsecs_t timestamp, int32_t msg_type, - const camera_memory_t *data, unsigned index, void *user) { + const camera_memory_t *data, unsigned index, void *user __unused) { ALOGV("%s", __FUNCTION__); - CameraDevice* object = static_cast<CameraDevice*>(user); + CameraDevice* object = sCameraDevice; // Start refcounting the heap object from here on. When the clients // drop all references, it will be destroyed (as well as the enclosed // MemoryHeapBase. @@ -660,6 +663,7 @@ Return<Status> CameraDevice::open(const sp<ICameraDeviceCallback>& callback) { initHalPreviewWindow(); mDeviceCallback = callback; + sCameraDevice = this; if (mDevice->ops->set_callbacks) { mDevice->ops->set_callbacks(mDevice, diff --git a/camera/device/1.0/CameraDevice_1_0.h b/camera/device/1.0-legacy/CameraDevice_1_0.h index c078596..c078596 100644 --- a/camera/device/1.0/CameraDevice_1_0.h +++ b/camera/device/1.0-legacy/CameraDevice_1_0.h diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4-legacy/Android.bp index 26b1e94..bbf04b1 100644 --- a/camera/provider/2.4/Android.bp +++ b/camera/provider/2.4-legacy/Android.bp @@ -1,5 +1,5 @@ cc_library_shared { - name: "android.hardware.camera.provider@2.4-impl", + name: "android.hardware.camera.provider@2.4-impl-legacy", defaults: ["hidl_defaults"], proprietary: true, relative_install_path: "hw", @@ -10,7 +10,7 @@ cc_library_shared { "libutils", "libcutils", "android.hardware.camera.device@1.0", - "camera.device@1.0-impl", + "camera.device@1.0-impl-legacy", "camera.device@3.2-impl", "android.hardware.camera.provider@2.4", "android.hardware.camera.common@1.0", diff --git a/camera/provider/2.4/CameraProvider.cpp b/camera/provider/2.4-legacy/CameraProvider.cpp index 19f7bdd..374ff7b 100644 --- a/camera/provider/2.4/CameraProvider.cpp +++ b/camera/provider/2.4-legacy/CameraProvider.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "CamProvider@2.4-impl" +#define LOG_TAG "CamProvider@2.4-impl.legacy" #include <android/log.h> #include "CameraProvider.h" diff --git a/camera/provider/2.4/CameraProvider.h b/camera/provider/2.4-legacy/CameraProvider.h index 75971fa..75971fa 100644 --- a/camera/provider/2.4/CameraProvider.h +++ b/camera/provider/2.4-legacy/CameraProvider.h |
