Camera: ProCamera - implement onResultReceived callback for metadata callbacks

Change-Id: I46775402b007244bc383d6343a620eebbd492aad
diff --git a/include/camera/IProCameraCallbacks.h b/include/camera/IProCameraCallbacks.h
index e5be099..fc24026 100644
--- a/include/camera/IProCameraCallbacks.h
+++ b/include/camera/IProCameraCallbacks.h
@@ -24,6 +24,8 @@
 #include <utils/Timers.h>
 #include <system/camera.h>
 
+struct camera_metadata;
+
 namespace android {
 
 class IProCameraCallbacks: public IInterface
@@ -47,6 +49,11 @@
     };
 
     virtual void            onLockStatusChanged(LockStatus newLockStatus) = 0;
+
+    /** Missing by design: implementation is client-side in ProCamera.cpp **/
+    // virtual void onBufferReceived(int streamId,
+    //                               const CpuConsumer::LockedBufer& buf);
+    virtual void onResultReceived(int32_t frameId, camera_metadata* result) = 0;
 };
 
 // ----------------------------------------------------------------------------
diff --git a/include/camera/ProCamera.h b/include/camera/ProCamera.h
index 4dda533..7cd9138 100644
--- a/include/camera/ProCamera.h
+++ b/include/camera/ProCamera.h
@@ -49,17 +49,19 @@
     // OnBufferReceived and OnRequestReceived can come in with any order,
     // use android.sensor.timestamp and LockedBuffer.timestamp to correlate them
 
-    // TODO: implement in IProCameraCallbacks, ProCamera2Client
-
     // A new frame buffer has been received for this stream.
     // -- This callback only fires for createStreamCpu streams
+    // -- Use buf.timestamp to correlate with metadata's
+    //    android.sensor.timestamp
     // -- The buffer must not be accessed after this function call completes
     virtual void onBufferReceived(int streamId,
                                   const CpuConsumer::LockedBuffer& buf) = 0;
-    // A new metadata buffer has been received.
-    // -- Ownership of request passes on to the callee,
-    //    free with free_camera_metadata.
-    virtual void onRequestReceived(camera_metadata* request) = 0;
+    /**
+      * A new metadata buffer has been received.
+      * -- Ownership of request passes on to the callee, free with
+      *    free_camera_metadata.
+      */
+    virtual void onResultReceived(int32_t frameId, camera_metadata* result) = 0;
 };
 
 class ProCamera : public BnProCameraCallbacks, public IBinder::DeathRecipient
@@ -189,6 +191,9 @@
     virtual void        onLockStatusChanged(
                                 IProCameraCallbacks::LockStatus newLockStatus);
 
+    virtual void        onResultReceived(int32_t frameId,
+                                         camera_metadata* result);
+
     class DeathNotifier: public IBinder::DeathRecipient
     {
     public: