diff options
author | Igor Murashkin <iam@google.com> | 2013-02-21 13:49:26 -0800 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-02-22 10:50:15 -0800 |
commit | 7b33a74bbc514b99c16be7fff9a34e892bc19264 (patch) | |
tree | a3c2e719aebc4dc486312970b57c588cba8f5ce9 /camera/IProCameraUser.cpp | |
parent | a91537e268f2b35f9f0dfdc0c4f84655c93285ae (diff) | |
download | frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.zip frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.tar.gz frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.tar.bz2 |
ProCamera: Add getInfo for getting static metadata (and a test)
Change-Id: I3b87dfbc621d98bf41f37a892a1012baf85b5166
Diffstat (limited to 'camera/IProCameraUser.cpp')
-rw-r--r-- | camera/IProCameraUser.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/camera/IProCameraUser.cpp b/camera/IProCameraUser.cpp index e60cfe5..c9d98aa 100644 --- a/camera/IProCameraUser.cpp +++ b/camera/IProCameraUser.cpp @@ -44,6 +44,7 @@ enum { CANCEL_STREAM, CREATE_STREAM, CREATE_DEFAULT_REQUEST, + GET_CAMERA_INFO, }; /** @@ -255,6 +256,17 @@ public: } + virtual status_t getCameraInfo(int cameraId, camera_metadata** info) + { + Parcel data, reply; + data.writeInterfaceToken(IProCameraUser::getInterfaceDescriptor()); + data.writeInt32(cameraId); + remote()->transact(GET_CAMERA_INFO, data, &reply); + readMetadata(reply, /*out*/info); + return reply.readInt32(); + } + + private: @@ -367,6 +379,24 @@ status_t BnProCameraUser::onTransact( writeMetadata(*reply, request); reply->writeInt32(ret); + free_camera_metadata(request); + + return NO_ERROR; + } break; + case GET_CAMERA_INFO: { + CHECK_INTERFACE(IProCameraUser, data, reply); + + int cameraId = data.readInt32(); + + camera_metadata_t* info = NULL; + status_t ret; + ret = getCameraInfo(cameraId, &info); + + writeMetadata(*reply, info); + reply->writeInt32(ret); + + free_camera_metadata(info); + return NO_ERROR; } break; default: |