From b2119af7f4ced0ecfefd4c7388f86b4e3a3ea7d8 Mon Sep 17 00:00:00 2001 From: Ruben Brunk Date: Fri, 9 May 2014 19:57:56 -0700 Subject: camera2: Update CameraService for HAL1 shim. Updates the camera service to handle shim connections. Changes include: - Adds begin/end configure binder calls. - Adds cache for shim client static camera metadata. - Implements basic getCameraCharacteristic functionality for shim clients. Bug: 15116722 Bug: 15117269 Change-Id: I510c5888ca15f8e7d3b8ed1680ff1c7f8f514744 --- camera/camera2/ICameraDeviceUser.cpp | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'camera/camera2') diff --git a/camera/camera2/ICameraDeviceUser.cpp b/camera/camera2/ICameraDeviceUser.cpp index ad65955..89ea46d 100644 --- a/camera/camera2/ICameraDeviceUser.cpp +++ b/camera/camera2/ICameraDeviceUser.cpp @@ -42,7 +42,9 @@ enum { CREATE_DEFAULT_REQUEST, GET_CAMERA_INFO, WAIT_UNTIL_IDLE, - FLUSH + FLUSH, + BEGIN_CONFIGURE, + END_CONFIGURE }; namespace { @@ -283,6 +285,26 @@ public: return res; } + virtual status_t beginConfigure() + { + ALOGV("beginConfigure"); + Parcel data, reply; + data.writeInterfaceToken(ICameraDeviceUser::getInterfaceDescriptor()); + remote()->transact(BEGIN_CONFIGURE, data, &reply); + reply.readExceptionCode(); + return reply.readInt32(); + } + + virtual status_t endConfigure() + { + ALOGV("endConfigure"); + Parcel data, reply; + data.writeInterfaceToken(ICameraDeviceUser::getInterfaceDescriptor()); + remote()->transact(END_CONFIGURE, data, &reply); + reply.readExceptionCode(); + return reply.readInt32(); + } + private: @@ -456,6 +478,18 @@ status_t BnCameraDeviceUser::onTransact( reply->writeInt64(lastFrameNumber); return NO_ERROR; } + case BEGIN_CONFIGURE: { + CHECK_INTERFACE(ICameraDeviceUser, data, reply); + reply->writeNoException(); + reply->writeInt32(beginConfigure()); + return NO_ERROR; + } break; + case END_CONFIGURE: { + CHECK_INTERFACE(ICameraDeviceUser, data, reply); + reply->writeNoException(); + reply->writeInt32(endConfigure()); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); } -- cgit v1.1