diff options
author | Igor Murashkin <iam@google.com> | 2013-07-12 17:52:16 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-07-15 13:27:08 -0700 |
commit | 099b457f3203fa51387e21bd450495abb973ab31 (patch) | |
tree | 25c6a2d84c5020575cbf2d40f2fbf60107e5c162 /camera | |
parent | ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4 (diff) | |
download | frameworks_av-099b457f3203fa51387e21bd450495abb973ab31.zip frameworks_av-099b457f3203fa51387e21bd450495abb973ab31.tar.gz frameworks_av-099b457f3203fa51387e21bd450495abb973ab31.tar.bz2 |
camera2: Implement ICameraDeviceUser::getCameraInfo
Bug: 9529161
Change-Id: I927e39c124cd5fb19e38423506f4463acc381cb0
Diffstat (limited to 'camera')
-rw-r--r-- | camera/photography/ICameraDeviceUser.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/camera/photography/ICameraDeviceUser.cpp b/camera/photography/ICameraDeviceUser.cpp index 0515bd7..325f94d 100644 --- a/camera/photography/ICameraDeviceUser.cpp +++ b/camera/photography/ICameraDeviceUser.cpp @@ -151,21 +151,22 @@ public: } - virtual status_t getCameraInfo(int cameraId, camera_metadata** info) + virtual status_t getCameraInfo(CameraMetadata* info) { Parcel data, reply; data.writeInterfaceToken(ICameraDeviceUser::getInterfaceDescriptor()); - data.writeInt32(cameraId); remote()->transact(GET_CAMERA_INFO, data, &reply); - reply.readExceptionCode(); status_t result = reply.readInt32(); + CameraMetadata out; if (reply.readInt32() != 0) { - CameraMetadata::readFromParcel(reply, /*out*/info); - } else if (info) { - *info = NULL; + out.readFromParcel(&reply); + } + + if (info != NULL) { + info->swap(out); } return result; @@ -273,6 +274,7 @@ status_t BnCameraDeviceUser::onTransact( reply->writeNoException(); reply->writeInt32(ret); + // out-variables are after exception and return value reply->writeInt32(1); // to mark presence of metadata object request.writeToParcel(const_cast<Parcel*>(reply)); @@ -281,19 +283,16 @@ status_t BnCameraDeviceUser::onTransact( case GET_CAMERA_INFO: { CHECK_INTERFACE(ICameraDeviceUser, data, reply); - int cameraId = data.readInt32(); - - camera_metadata_t* info = NULL; + CameraMetadata info; status_t ret; - ret = getCameraInfo(cameraId, &info); - - reply->writeInt32(1); // to mark presence of metadata object - CameraMetadata::writeToParcel(*reply, info); + ret = getCameraInfo(&info); reply->writeNoException(); reply->writeInt32(ret); - free_camera_metadata(info); + // out-variables are after exception and return value + reply->writeInt32(1); // to mark presence of metadata object + info.writeToParcel(reply); return NO_ERROR; } break; |