summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemant Sharma <hemantbeast@gmail.com>2017-12-17 22:20:48 +0530
committerHemant Sharma <hemantbeast@gmail.com>2018-01-14 15:56:57 +0000
commitb390f06e55551a166058dc2f25d85cb7d18c7c8c (patch)
tree71a5921938fd159d8cd77129242d028d626179d2
parent6190bcce07de1362d8a147113efbf602c8a2c8bc (diff)
armani: camera: Update CameraWrapper
Change-Id: Idb4efac3ecc15122a89d06b8d73a2266c9ceaf18
-rw-r--r--camera/Android.mk9
-rw-r--r--camera/CameraWrapper.cpp37
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);