diff options
author | Igor Murashkin <iam@google.com> | 2013-02-21 12:02:29 -0800 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-02-22 10:50:15 -0800 |
commit | a91537e268f2b35f9f0dfdc0c4f84655c93285ae (patch) | |
tree | 114691436e16b7c8dfc5929d922712edd2c41aff /camera/ProCamera.cpp | |
parent | eb72e1796b3af548e87891a6d2b73b0567807f25 (diff) | |
download | frameworks_av-a91537e268f2b35f9f0dfdc0c4f84655c93285ae.zip frameworks_av-a91537e268f2b35f9f0dfdc0c4f84655c93285ae.tar.gz frameworks_av-a91537e268f2b35f9f0dfdc0c4f84655c93285ae.tar.bz2 |
Camera: ProCamera - implement onResultReceived callback for metadata callbacks
Change-Id: I46775402b007244bc383d6343a620eebbd492aad
Diffstat (limited to 'camera/ProCamera.cpp')
-rw-r--r-- | camera/ProCamera.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/camera/ProCamera.cpp b/camera/ProCamera.cpp index 5ee0e4d..142c03b 100644 --- a/camera/ProCamera.cpp +++ b/camera/ProCamera.cpp @@ -33,6 +33,8 @@ #include <gui/IGraphicBufferProducer.h> #include <gui/Surface.h> +#include <system/camera_metadata.h> + namespace android { // client singleton for camera service binder interface @@ -198,6 +200,22 @@ void ProCamera::onLockStatusChanged( } } +void ProCamera::onResultReceived(int32_t frameId, camera_metadata* result) { + ALOGV("%s: frameId = %d, result = %p", __FUNCTION__, frameId, result); + + sp<ProCameraListener> listener; + { + Mutex::Autolock _l(mLock); + listener = mListener; + } + if (listener != NULL) { + listener->onResultReceived(frameId, result); + } else { + free_camera_metadata(result); + } + +} + status_t ProCamera::exclusiveTryLock() { sp <IProCameraUser> c = mCamera; |