QCamera2: Integrates pipeline events during longshot

- If supported by the camera reprocess events will
  trigger the shutter callback, notifying the camera
  client that it could queue a new buffer via a
  'takePicture()'.

Change-Id: I39f56d08e09599fe2841268d563a123573360198
diff --git a/QCamera2/HAL/QCameraStateMachine.cpp b/QCamera2/HAL/QCameraStateMachine.cpp
index f90e24e..e724d1c 100644
--- a/QCamera2/HAL/QCameraStateMachine.cpp
+++ b/QCamera2/HAL/QCameraStateMachine.cpp
@@ -1664,6 +1664,16 @@
         {
             mm_camera_event_t *cam_evt = (mm_camera_event_t *)payload;
             switch (cam_evt->server_event_type) {
+            case CAM_EVENT_TYPE_REPROCESS_STAGE_DONE:
+                {
+                    if ( m_parent->isLongshotEnabled() ) {
+                        if(!m_parent->m_postprocessor.getMultipleStages()) {
+                            m_parent->m_postprocessor.setMultipleStages(true);
+                        }
+                        m_parent->playShutter();
+                    }
+                }
+                break;
             case CAM_EVENT_TYPE_DAEMON_DIED:
                 {
                     m_parent->sendEvtNotify(CAMERA_MSG_ERROR,
@@ -2752,6 +2762,16 @@
         {
             mm_camera_event_t *cam_evt = (mm_camera_event_t *)payload;
             switch (cam_evt->server_event_type) {
+            case CAM_EVENT_TYPE_REPROCESS_STAGE_DONE:
+                {
+                    if ( m_parent->isLongshotEnabled() ) {
+                        if(!m_parent->m_postprocessor.getMultipleStages()) {
+                            m_parent->m_postprocessor.setMultipleStages(true);
+                        }
+                        m_parent->playShutter();
+                    }
+                }
+                break;
             case CAM_EVENT_TYPE_DAEMON_DIED:
                 {
                     m_parent->sendEvtNotify(CAMERA_MSG_ERROR,