summaryrefslogtreecommitdiffstats
path: root/camera/ProCamera.cpp
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2013-02-21 12:02:29 -0800
committerIgor Murashkin <iam@google.com>2013-02-22 10:50:15 -0800
commita91537e268f2b35f9f0dfdc0c4f84655c93285ae (patch)
tree114691436e16b7c8dfc5929d922712edd2c41aff /camera/ProCamera.cpp
parenteb72e1796b3af548e87891a6d2b73b0567807f25 (diff)
downloadframeworks_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.cpp18
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;