diff options
| author | Hemant Sharma <hemantbeast@gmail.com> | 2017-12-17 22:20:48 +0530 |
|---|---|---|
| committer | Hemant Sharma <hemantbeast@gmail.com> | 2018-01-14 15:56:57 +0000 |
| commit | b390f06e55551a166058dc2f25d85cb7d18c7c8c (patch) | |
| tree | 71a5921938fd159d8cd77129242d028d626179d2 | |
| parent | 6190bcce07de1362d8a147113efbf602c8a2c8bc (diff) | |
armani: camera: Update CameraWrapper
Change-Id: Idb4efac3ecc15122a89d06b8d73a2266c9ceaf18
| -rw-r--r-- | camera/Android.mk | 9 | ||||
| -rw-r--r-- | camera/CameraWrapper.cpp | 37 |
2 files changed, 41 insertions, 5 deletions
diff --git a/camera/Android.mk b/camera/Android.mk index 3b29510..7d79191 100644 --- a/camera/Android.mk +++ b/camera/Android.mk @@ -13,14 +13,19 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ libcutils \ libgui \ - android.hidl.token@1.0-utils + libdl \ + android.hidl.token@1.0-utils \ + android.hardware.graphics.bufferqueue@1.0 LOCAL_C_INCLUDES += \ framework/native/include \ system/media/camera/include LOCAL_STATIC_LIBRARIES := \ - libarect + libarect \ + libbase + +LOCAL_HEADER_LIBRARIES := libnativebase_headers LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_PROPRIETARY_MODULE := true diff --git a/camera/CameraWrapper.cpp b/camera/CameraWrapper.cpp index 4d7b13f..dda46ea 100644 --- a/camera/CameraWrapper.cpp +++ b/camera/CameraWrapper.cpp @@ -39,6 +39,12 @@ static android::Mutex gCameraWrapperLock; static camera_module_t *gVendorModule = 0; +static camera_notify_callback gUserNotifyCb = NULL; +static camera_data_callback gUserDataCb = NULL; +static camera_data_timestamp_callback gUserDataCbTimestamp = NULL; +static camera_request_memory gUserGetMemory = NULL; +static void *gUserCameraDevice = NULL; + static char **fixed_set_params = NULL; static int camera_device_open(const hw_module_t *module, const char *name, @@ -207,6 +213,25 @@ static int camera_set_preview_window(struct camera_device *device, return VENDOR_CALL(device, set_preview_window, window); } +void camera_notify_cb(int32_t msg_type, int32_t ext1, int32_t ext2, void *user) { + gUserNotifyCb(msg_type, ext1, ext2, gUserCameraDevice); +} + +void camera_data_cb(int32_t msg_type, const camera_memory_t *data, unsigned int index, + camera_frame_metadata_t *metadata, void *user) { + gUserDataCb(msg_type, data, index, metadata, gUserCameraDevice); +} + +void camera_data_cb_timestamp(nsecs_t timestamp, int32_t msg_type, + const camera_memory_t *data, unsigned index, void *user) { + gUserDataCbTimestamp(timestamp, msg_type, data, index, gUserCameraDevice); +} + +camera_memory_t* camera_get_memory(int fd, size_t buf_size, + uint_t num_bufs, void *user) { + return gUserGetMemory(fd, buf_size, num_bufs, gUserCameraDevice); +} + static void camera_set_callbacks(struct camera_device *device, camera_notify_callback notify_cb, camera_data_callback data_cb, @@ -220,8 +245,14 @@ static void camera_set_callbacks(struct camera_device *device, ALOGV("%s->%08X->%08X", __FUNCTION__, (uintptr_t)device, (uintptr_t)(((wrapper_camera_device_t*)device)->vendor)); - VENDOR_CALL(device, set_callbacks, notify_cb, data_cb, data_cb_timestamp, - get_memory, user); + gUserNotifyCb = notify_cb; + gUserDataCb = data_cb; + gUserDataCbTimestamp = data_cb_timestamp; + gUserGetMemory = get_memory; + gUserCameraDevice = user; + + VENDOR_CALL(device, set_callbacks, camera_notify_cb, camera_data_cb, + camera_data_cb_timestamp, camera_get_memory, user); } static void camera_enable_msg_type(struct camera_device *device, @@ -427,7 +458,7 @@ static char *camera_get_parameters(struct camera_device *device) return params; } -static void camera_put_parameters(struct camera_device *device, char *params) +static void camera_put_parameters(struct camera_device *device __unused, char *params) { if (params) free(params); |
